diff --git a/gnome-shell-fix-recent-clutter.patch b/gnome-shell-fix-recent-clutter.patch new file mode 100644 index 0000000..170cde6 --- /dev/null +++ b/gnome-shell-fix-recent-clutter.patch @@ -0,0 +1,147 @@ +From 3fb7cce80fa18315d81619fa511a057b1c3b6131 Mon Sep 17 00:00:00 2001 +From: Adel Gadllah +Date: Fri, 16 Jul 2010 20:24:22 +0000 +Subject: Drop custom ClutterActor.contains + +Clutter 1.4 does provides a native implementation + +https://bugzilla.gnome.org/show_bug.cgi?id=624571 +--- +diff --git a/js/ui/environment.js b/js/ui/environment.js +index 22f8e19..6bab830 100644 +--- a/js/ui/environment.js ++++ b/js/ui/environment.js +@@ -82,11 +82,6 @@ function init() { + Clutter.Actor.prototype.toString = function() { + return St.describe_actor(this); + }; +- Clutter.Actor.prototype.contains = function(child) { +- while (child != null && child != this) +- child = child.get_parent(); +- return child != null; +- }; + + _blockMethod('Clutter.Event.get_state', 'Shell.get_event_state', + 'gjs\'s handling of Clutter.ModifierType is broken. See bug 597292.'); +-- +cgit v0.8.3.1 +From 766b5b801c1a23d1e8c346f29664f3a68ffe4816 Mon Sep 17 00:00:00 2001 +From: Florian Müllner +Date: Tue, 10 Aug 2010 08:52:18 +0000 +Subject: [St] Remove _st_actor_contains() + +The function has been upstreamed as clutter_actor_contains() - with +the switch to clutter-1.4 it is now available to the Shell, so it +is no longer necessary to keep a copy in-tree. + +https://bugzilla.gnome.org/show_bug.cgi?id=626512 +--- +diff --git a/src/st/st-clickable.c b/src/st/st-clickable.c +index abed5be..38cc41f 100644 +--- a/src/st/st-clickable.c ++++ b/src/st/st-clickable.c +@@ -121,7 +121,7 @@ st_clickable_button_press_event (ClutterActor *actor, + if (self->priv->held) + return TRUE; + +- if (!_st_actor_contains (actor, event->source)) ++ if (!clutter_actor_contains (actor, event->source)) + return FALSE; + + self->priv->held = TRUE; +@@ -148,7 +148,7 @@ st_clickable_button_release_event (ClutterActor *actor, + self->priv->held = FALSE; + clutter_ungrab_pointer (); + +- if (!_st_actor_contains (actor, event->source)) ++ if (!clutter_actor_contains (actor, event->source)) + return FALSE; + + set_pressed (self, FALSE); +diff --git a/src/st/st-entry.c b/src/st/st-entry.c +index 7da2886..7c4170c 100644 +--- a/src/st/st-entry.c ++++ b/src/st/st-entry.c +@@ -584,7 +584,7 @@ st_entry_enter_event (ClutterActor *actor, + { + StEntryPrivate *priv = ST_ENTRY_PRIV (actor); + +- if (_st_actor_contains (actor, event->source) ++ if (clutter_actor_contains (actor, event->source) + && priv->hint && priv->hint_visible) + { + st_widget_set_hover (ST_WIDGET (actor), TRUE); +@@ -597,7 +597,7 @@ static gboolean + st_entry_leave_event (ClutterActor *actor, + ClutterCrossingEvent *event) + { +- if (!_st_actor_contains (actor, event->related)) ++ if (!clutter_actor_contains (actor, event->related)) + st_widget_set_hover (ST_WIDGET (actor), FALSE); + + return CLUTTER_ACTOR_CLASS (st_entry_parent_class)->leave_event (actor, event); +diff --git a/src/st/st-private.c b/src/st/st-private.c +index 248c703..c1614b0 100644 +--- a/src/st/st-private.c ++++ b/src/st/st-private.c +@@ -320,12 +320,3 @@ _st_set_text_from_style (ClutterText *text, + clutter_text_set_line_alignment (text, (PangoAlignment) align); + } + } +- +-gboolean +-_st_actor_contains (ClutterActor *actor, +- ClutterActor *child) +-{ +- while (child != NULL && child != actor) +- child = clutter_actor_get_parent (child); +- return child != NULL; +-} +diff --git a/src/st/st-private.h b/src/st/st-private.h +index eecd7fd..8368665 100644 +--- a/src/st/st-private.h ++++ b/src/st/st-private.h +@@ -72,7 +72,4 @@ void _st_allocate_fill (StWidget *parent, + void _st_set_text_from_style (ClutterText *text, + StThemeNode *theme_node); + +-gboolean _st_actor_contains (ClutterActor *actor, +- ClutterActor *child); +- + #endif /* __ST_PRIVATE_H__ */ +diff --git a/src/st/st-widget.c b/src/st/st-widget.c +index eb976ac..d4850a7 100644 +--- a/src/st/st-widget.c ++++ b/src/st/st-widget.c +@@ -568,7 +568,7 @@ st_widget_enter (ClutterActor *actor, + + if (priv->track_hover) + { +- if (_st_actor_contains (actor, event->source)) ++ if (clutter_actor_contains (actor, event->source)) + st_widget_set_hover (ST_WIDGET (actor), TRUE); + else + { +@@ -594,7 +594,7 @@ st_widget_leave (ClutterActor *actor, + + if (priv->track_hover) + { +- if (!_st_actor_contains (actor, event->related)) ++ if (!clutter_actor_contains (actor, event->related)) + st_widget_set_hover (ST_WIDGET (actor), FALSE); + } + +@@ -1589,7 +1589,10 @@ st_widget_sync_hover (StWidget *widget) + pointer = clutter_device_manager_get_core_device (device_manager, + CLUTTER_POINTER_DEVICE); + pointer_actor = clutter_input_device_get_pointer_actor (pointer); +- st_widget_set_hover (widget, _st_actor_contains (CLUTTER_ACTOR (widget), pointer_actor)); ++ if (pointer_actor) ++ st_widget_set_hover (widget, clutter_actor_contains (CLUTTER_ACTOR (widget), pointer_actor)); ++ else ++ st_widget_set_hover (widget, FALSE); + } + + /** +-- +cgit v0.8.3.1 diff --git a/gnome-shell-fix-recent-gtk3.patch b/gnome-shell-fix-recent-gtk3.patch index 27fe777..b30f3f7 100644 --- a/gnome-shell-fix-recent-gtk3.patch +++ b/gnome-shell-fix-recent-gtk3.patch @@ -25,3 +25,88 @@ index 978880c..067c0bf 100644 colormap = gdk_screen_get_rgba_colormap (screen); else if (visual == gdk_screen_get_system_visual (screen)) colormap = gdk_screen_get_system_colormap (screen); +-- +From 178c8c50a0ad42fd58496fc70ca17597f8c20754 Mon Sep 17 00:00:00 2001 +From: Maxim Ermilov +Date: Thu, 09 Sep 2010 14:25:30 +0000 +Subject: Fix build with recent gtk3 + +use new keysyms names +https://bugzilla.gnome.org/show_bug.cgi?id=629128 +--- +diff --git a/configure.ac b/configure.ac +index d46260a..f3b1a45 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -61,7 +61,7 @@ CLUTTER_MIN_VERSION=1.2.8 + GOBJECT_INTROSPECTION_MIN_VERSION=0.6.11 + GJS_MIN_VERSION=0.7 + MUTTER_MIN_VERSION=2.31.4 +-GTK_MIN_VERSION=2.90.4 ++GTK_MIN_VERSION=2.90.7 + GIO_MIN_VERSION=2.25.9 + + # Collect more than 20 libraries for a prize! +diff --git a/src/st/st-im-text.c b/src/st/st-im-text.c +index 29fd71e..23657ae 100644 +--- a/src/st/st-im-text.c ++++ b/src/st/st-im-text.c +@@ -231,31 +231,31 @@ key_is_modifier (guint16 keyval) + + switch (keyval) + { +- case GDK_Shift_L: +- case GDK_Shift_R: +- case GDK_Control_L: +- case GDK_Control_R: +- case GDK_Caps_Lock: +- case GDK_Shift_Lock: +- case GDK_Meta_L: +- case GDK_Meta_R: +- case GDK_Alt_L: +- case GDK_Alt_R: +- case GDK_Super_L: +- case GDK_Super_R: +- case GDK_Hyper_L: +- case GDK_Hyper_R: +- case GDK_ISO_Lock: +- case GDK_ISO_Level2_Latch: +- case GDK_ISO_Level3_Shift: +- case GDK_ISO_Level3_Latch: +- case GDK_ISO_Level3_Lock: +- case GDK_ISO_Level5_Shift: +- case GDK_ISO_Level5_Latch: +- case GDK_ISO_Level5_Lock: +- case GDK_ISO_Group_Shift: +- case GDK_ISO_Group_Latch: +- case GDK_ISO_Group_Lock: ++ case GDK_KEY_Shift_L: ++ case GDK_KEY_Shift_R: ++ case GDK_KEY_Control_L: ++ case GDK_KEY_Control_R: ++ case GDK_KEY_Caps_Lock: ++ case GDK_KEY_Shift_Lock: ++ case GDK_KEY_Meta_L: ++ case GDK_KEY_Meta_R: ++ case GDK_KEY_Alt_L: ++ case GDK_KEY_Alt_R: ++ case GDK_KEY_Super_L: ++ case GDK_KEY_Super_R: ++ case GDK_KEY_Hyper_L: ++ case GDK_KEY_Hyper_R: ++ case GDK_KEY_ISO_Lock: ++ case GDK_KEY_ISO_Level2_Latch: ++ case GDK_KEY_ISO_Level3_Shift: ++ case GDK_KEY_ISO_Level3_Latch: ++ case GDK_KEY_ISO_Level3_Lock: ++ case GDK_KEY_ISO_Level5_Shift: ++ case GDK_KEY_ISO_Level5_Latch: ++ case GDK_KEY_ISO_Level5_Lock: ++ case GDK_KEY_ISO_Group_Shift: ++ case GDK_KEY_ISO_Group_Latch: ++ case GDK_KEY_ISO_Group_Lock: + return TRUE; + default: + return FALSE; +-- +cgit v0.8.3.1 diff --git a/gnome-shell.changes b/gnome-shell.changes index 2aa8223..ed6345c 100644 --- a/gnome-shell.changes +++ b/gnome-shell.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Mon Sep 20 13:01:39 CEST 2010 - vuntz@opensuse.org + +- Add gnome-shell-fix-recent-clutter.patch: gnome-shell failed to + run because it was using some API gone in clutter 1.3.14. + +------------------------------------------------------------------- +Sat Sep 18 13:30:33 CEST 2010 - vuntz@opensuse.org + +- Drop gir-repository BuildRequires: this was only needed for the + DBusGLib gir, which is now part of gobject-introspection. +- Update gnome-shell-fix-recent-gtk3.patch to fix build with GTK+ + 2.90.7. + ------------------------------------------------------------------- Thu Sep 9 23:24:35 CEST 2010 - vuntz@opensuse.org diff --git a/gnome-shell.spec b/gnome-shell.spec index 5c86ca0..52460ce 100644 --- a/gnome-shell.spec +++ b/gnome-shell.spec @@ -19,7 +19,7 @@ Name: gnome-shell Version: 2.31.5 -Release: 1 +Release: 2 License: GPLv2+ Summary: GNOME Shell Group: System/GUI/GNOME @@ -30,7 +30,8 @@ Source1: gnome-shell-session Source2: gnome3.desktop # PATCH-FIX-UPSTREAM gnome-shell-fix-recent-gtk3.patch vuntz@opensuse.org -- Fix build with recent GTK+ 3, taken from git Patch0: gnome-shell-fix-recent-gtk3.patch -BuildRequires: gir-repository +# PATCH-FIX-UPSTREAM gnome-shell-fix-recent-clutter.patch vuntz@opensuse.org -- Do not use API gone in recent clutter, taken from git +Patch1: gnome-shell-fix-recent-clutter.patch BuildRequires: intltool BuildRequires: update-desktop-files BuildRequires: pkgconfig(clutter-1.0) @@ -65,6 +66,7 @@ documents, and organizing open windows in GNOME. %prep %setup -q %patch0 -p1 +%patch1 -p1 %build %configure \