From 6bba6147cab9e1a5c995697c128b64a3a302720a Mon Sep 17 00:00:00 2001 From: Juan RP Date: Tue, 19 May 2015 06:53:10 +0200 Subject: [PATCH] clutter: update to 1.20.2. --- .../clutter/patches/closure-annotation.patch | 22 -- .../create-pangocontext-per-actor.patch | 224 ------------------ .../patches/dont-update-pangocontext.patch | 37 --- .../patches/evdev-flush-event-queue.patch | 54 ----- srcpkgs/clutter/template | 6 +- 5 files changed, 3 insertions(+), 340 deletions(-) delete mode 100644 srcpkgs/clutter/patches/closure-annotation.patch delete mode 100644 srcpkgs/clutter/patches/create-pangocontext-per-actor.patch delete mode 100644 srcpkgs/clutter/patches/dont-update-pangocontext.patch delete mode 100644 srcpkgs/clutter/patches/evdev-flush-event-queue.patch diff --git a/srcpkgs/clutter/patches/closure-annotation.patch b/srcpkgs/clutter/patches/closure-annotation.patch deleted file mode 100644 index 30e7b47fe78..00000000000 --- a/srcpkgs/clutter/patches/closure-annotation.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 084dc49a0cdadeed7de896df81e9af536f2ab678 Mon Sep 17 00:00:00 2001 -From: Rico Tzschichholz -Date: Thu, 2 Oct 2014 09:27:36 +0200 -Subject: x11: Add missing closure annotation to ClutterX11FilterFunc - - -diff --git a/clutter/x11/clutter-x11.h b/clutter/x11/clutter-x11.h -index b0ab8a1..285ea51 100644 ---- a/clutter/x11/clutter-x11.h -+++ b/clutter/x11/clutter-x11.h -@@ -85,7 +85,7 @@ typedef struct _ClutterX11XInputDevice ClutterX11XInputDevice; - * ClutterX11FilterFunc: - * @xev: Native X11 event structure - * @cev: Clutter event structure -- * @data: user data passed to the filter function -+ * @data: (closure): user data passed to the filter function - * - * Filter function for X11 native events. - * --- -cgit v0.10.1 - diff --git a/srcpkgs/clutter/patches/create-pangocontext-per-actor.patch b/srcpkgs/clutter/patches/create-pangocontext-per-actor.patch deleted file mode 100644 index 5dbbc2cbcd9..00000000000 --- a/srcpkgs/clutter/patches/create-pangocontext-per-actor.patch +++ /dev/null @@ -1,224 +0,0 @@ -From 46877cc2bd497ec23acfa07fedaf29f45522dc6f Mon Sep 17 00:00:00 2001 -From: "Jasper St. Pierre" -Date: Wed, 22 Oct 2014 18:44:22 -0700 -Subject: actor: Create a PangoContext per actor - -For a variety of complicated reasons, ClutterText currently sets fields -on the PangoContext when creating a layout. This causes ClutterText to -behave somewhat erratically in certain cases, since the PangoContext is -currently shared between all actors. - -GTK+ creates a PangoContext for every single GtkWidget, so it seems like -we should do the same here. - -Move the private code that was previously in clutter-main.c into -clutter-actor.c and clean it up a bit. This gives every actor its own -PangoContext it can mutilate whenever it wants, at its heart's content. - -https://bugzilla.gnome.org/show_bug.cgi?id=739050 - -diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c -index 6a0582a..33fe3e7 100644 ---- a/clutter/clutter-actor.c -+++ b/clutter/clutter-actor.c -@@ -15474,6 +15474,46 @@ clutter_actor_grab_key_focus (ClutterActor *self) - clutter_stage_set_key_focus (CLUTTER_STAGE (stage), self); - } - -+static void -+update_pango_context (ClutterBackend *backend, -+ PangoContext *context) -+{ -+ ClutterSettings *settings; -+ PangoFontDescription *font_desc; -+ const cairo_font_options_t *font_options; -+ gchar *font_name; -+ PangoDirection pango_dir; -+ gdouble resolution; -+ -+ settings = clutter_settings_get_default (); -+ -+ /* update the text direction */ -+ if (clutter_get_default_text_direction () == CLUTTER_TEXT_DIRECTION_RTL) -+ pango_dir = PANGO_DIRECTION_RTL; -+ else -+ pango_dir = PANGO_DIRECTION_LTR; -+ -+ pango_context_set_base_dir (context, pango_dir); -+ -+ g_object_get (settings, "font-name", &font_name, NULL); -+ -+ /* get the configuration for the PangoContext from the backend */ -+ font_options = clutter_backend_get_font_options (backend); -+ resolution = clutter_backend_get_resolution (backend); -+ -+ font_desc = pango_font_description_from_string (font_name); -+ -+ if (resolution < 0) -+ resolution = 96.0; /* fall back */ -+ -+ pango_context_set_font_description (context, font_desc); -+ pango_cairo_context_set_font_options (context, font_options); -+ pango_cairo_context_set_resolution (context, resolution); -+ -+ pango_font_description_free (font_desc); -+ g_free (font_name); -+} -+ - /** - * clutter_actor_get_pango_context: - * @self: a #ClutterActor -@@ -15500,16 +15540,23 @@ PangoContext * - clutter_actor_get_pango_context (ClutterActor *self) - { - ClutterActorPrivate *priv; -+ ClutterBackend *backend = clutter_get_default_backend (); - - g_return_val_if_fail (CLUTTER_IS_ACTOR (self), NULL); - - priv = self->priv; - -- if (priv->pango_context != NULL) -- return priv->pango_context; -+ if (G_UNLIKELY (priv->pango_context == NULL)) -+ { -+ priv->pango_context = clutter_actor_create_pango_context (self); - -- priv->pango_context = _clutter_context_get_pango_context (); -- g_object_ref (priv->pango_context); -+ g_signal_connect_object (backend, "resolution-changed", -+ G_CALLBACK (update_pango_context), priv->pango_context, 0); -+ g_signal_connect_object (backend, "font-changed", -+ G_CALLBACK (update_pango_context), priv->pango_context, 0); -+ } -+ else -+ update_pango_context (backend, priv->pango_context); - - return priv->pango_context; - } -@@ -15533,9 +15580,16 @@ clutter_actor_get_pango_context (ClutterActor *self) - PangoContext * - clutter_actor_create_pango_context (ClutterActor *self) - { -- g_return_val_if_fail (CLUTTER_IS_ACTOR (self), NULL); -+ CoglPangoFontMap *font_map; -+ PangoContext *context; -+ -+ font_map = COGL_PANGO_FONT_MAP (clutter_get_font_map ()); -+ -+ context = cogl_pango_font_map_create_context (font_map); -+ update_pango_context (clutter_get_default_backend (), context); -+ pango_context_set_language (context, pango_language_get_default ()); - -- return _clutter_context_create_pango_context (); -+ return context; - } - - /** -diff --git a/clutter/clutter-main.c b/clutter/clutter-main.c -index 3b9385a..1a337c0 100644 ---- a/clutter/clutter-main.c -+++ b/clutter/clutter-main.c -@@ -764,86 +764,6 @@ clutter_get_text_direction (void) - return dir; - } - --static void --update_pango_context (ClutterBackend *backend, -- PangoContext *context) --{ -- ClutterSettings *settings; -- PangoFontDescription *font_desc; -- const cairo_font_options_t *font_options; -- gchar *font_name; -- PangoDirection pango_dir; -- gdouble resolution; -- -- settings = clutter_settings_get_default (); -- -- /* update the text direction */ -- if (clutter_text_direction == CLUTTER_TEXT_DIRECTION_RTL) -- pango_dir = PANGO_DIRECTION_RTL; -- else -- pango_dir = PANGO_DIRECTION_LTR; -- -- pango_context_set_base_dir (context, pango_dir); -- -- g_object_get (settings, "font-name", &font_name, NULL); -- -- /* get the configuration for the PangoContext from the backend */ -- font_options = clutter_backend_get_font_options (backend); -- resolution = clutter_backend_get_resolution (backend); -- -- font_desc = pango_font_description_from_string (font_name); -- -- if (resolution < 0) -- resolution = 96.0; /* fall back */ -- -- pango_context_set_font_description (context, font_desc); -- pango_cairo_context_set_font_options (context, font_options); -- pango_cairo_context_set_resolution (context, resolution); -- -- pango_font_description_free (font_desc); -- g_free (font_name); --} -- --PangoContext * --_clutter_context_get_pango_context (void) --{ -- ClutterMainContext *self = _clutter_context_get_default (); -- -- if (G_UNLIKELY (self->pango_context == NULL)) -- { -- PangoContext *context; -- -- context = _clutter_context_create_pango_context (); -- self->pango_context = context; -- -- g_signal_connect (self->backend, "resolution-changed", -- G_CALLBACK (update_pango_context), -- self->pango_context); -- g_signal_connect (self->backend, "font-changed", -- G_CALLBACK (update_pango_context), -- self->pango_context); -- } -- else -- update_pango_context (self->backend, self->pango_context); -- -- return self->pango_context; --} -- --PangoContext * --_clutter_context_create_pango_context (void) --{ -- CoglPangoFontMap *font_map; -- PangoContext *context; -- -- font_map = clutter_context_get_pango_fontmap (); -- -- context = cogl_pango_font_map_create_context (font_map); -- update_pango_context (clutter_get_default_backend (), context); -- pango_context_set_language (context, pango_language_get_default ()); -- -- return context; --} -- - /** - * clutter_main_quit: - * -diff --git a/clutter/clutter-private.h b/clutter/clutter-private.h -index bf92626..b714edc 100644 ---- a/clutter/clutter-private.h -+++ b/clutter/clutter-private.h -@@ -198,8 +198,6 @@ ClutterMainContext * _clutter_context_get_default (void); - void _clutter_context_lock (void); - void _clutter_context_unlock (void); - gboolean _clutter_context_is_initialized (void); --PangoContext * _clutter_context_create_pango_context (void); --PangoContext * _clutter_context_get_pango_context (void); - ClutterPickMode _clutter_context_get_pick_mode (void); - void _clutter_context_push_shader_stack (ClutterActor *actor); - ClutterActor * _clutter_context_pop_shader_stack (ClutterActor *actor); --- -cgit v0.10.1 - diff --git a/srcpkgs/clutter/patches/dont-update-pangocontext.patch b/srcpkgs/clutter/patches/dont-update-pangocontext.patch deleted file mode 100644 index 689fb5976c9..00000000000 --- a/srcpkgs/clutter/patches/dont-update-pangocontext.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 14d28e7908d5421f15f9b94f4f37d66f14c4222e Mon Sep 17 00:00:00 2001 -From: "Jasper St. Pierre" -Date: Wed, 22 Oct 2014 18:44:16 -0700 -Subject: main: Don't update the PangoContext in clutter_set_font_flags - -clutter_set_font_flags already calls clutter_backend_set_font_options, -which emits a signal which our PangoContext listens to, so this is just -duplicate and unneeded code. - -https://bugzilla.gnome.org/show_bug.cgi?id=739050 - -diff --git a/clutter/clutter-main.c b/clutter/clutter-main.c -index 444ceba..3b9385a 100644 ---- a/clutter/clutter-main.c -+++ b/clutter/clutter-main.c -@@ -3276,7 +3276,6 @@ clutter_clear_glyph_cache (void) - void - clutter_set_font_flags (ClutterFontFlags flags) - { -- ClutterMainContext *context = _clutter_context_get_default (); - CoglPangoFontMap *font_map; - ClutterFontFlags old_flags, changed_flags; - const cairo_font_options_t *font_options; -@@ -3326,10 +3325,6 @@ clutter_set_font_flags (ClutterFontFlags flags) - clutter_backend_set_font_options (backend, new_font_options); - - cairo_font_options_destroy (new_font_options); -- -- /* update the default pango context, if any */ -- if (context->pango_context != NULL) -- update_pango_context (backend, context->pango_context); - } - - /** --- -cgit v0.10.1 - diff --git a/srcpkgs/clutter/patches/evdev-flush-event-queue.patch b/srcpkgs/clutter/patches/evdev-flush-event-queue.patch deleted file mode 100644 index 2b278b34817..00000000000 --- a/srcpkgs/clutter/patches/evdev-flush-event-queue.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 7764fd2079318fede95b4b96c72d18bd31699270 Mon Sep 17 00:00:00 2001 -From: Carlos Garnacho -Date: Tue, 14 Oct 2014 12:41:10 +0200 -Subject: evdev: Flush event queue before removing an input device - -libinput_suspend() will trigger the removal of input devices, but also -the emission of button/key releases pairing everything that is pressed -at that moment. These events are queued, but the ClutterInputDevice -pointers in these will point to invalid memory at the time these are -processed. - -Fix this by flushing the event queue, in order to ensure there are no -unprocessed input events after libinput_suspend(). - -https://bugzilla.gnome.org/show_bug.cgi?id=738520 - -diff --git a/clutter/evdev/clutter-device-manager-evdev.c b/clutter/evdev/clutter-device-manager-evdev.c -index 77a8ec6..7b48481 100644 ---- a/clutter/evdev/clutter-device-manager-evdev.c -+++ b/clutter/evdev/clutter-device-manager-evdev.c -@@ -1017,6 +1017,18 @@ clutter_seat_evdev_sync_leds (ClutterSeatEvdev *seat) - } - } - -+static void -+flush_event_queue (void) -+{ -+ ClutterEvent *event; -+ -+ while ((event = clutter_event_get ()) != NULL) -+ { -+ _clutter_process_event (event); -+ clutter_event_free (event); -+ } -+} -+ - static gboolean - process_base_event (ClutterDeviceManagerEvdev *manager_evdev, - struct libinput_event *event) -@@ -1034,6 +1046,11 @@ process_base_event (ClutterDeviceManagerEvdev *manager_evdev, - break; - - case LIBINPUT_EVENT_DEVICE_REMOVED: -+ /* Flush all queued events, there -+ * might be some from this device. -+ */ -+ flush_event_queue (); -+ - libinput_device = libinput_event_get_device (event); - - device = libinput_device_get_user_data (libinput_device); --- -cgit v0.10.1 - diff --git a/srcpkgs/clutter/template b/srcpkgs/clutter/template index 492e506948c..51543227738 100644 --- a/srcpkgs/clutter/template +++ b/srcpkgs/clutter/template @@ -1,7 +1,7 @@ # Template file for 'clutter' pkgname=clutter -version=1.20.0 -revision=4 +version=1.20.2 +revision=1 patch_args="-Np1" build_style=gnu-configure build_options="gir" @@ -18,7 +18,7 @@ maintainer="Juan RP " homepage="http://www.clutter-project.org" license="LGPL-2.1" distfiles="${GNOME_SITE}/clutter/${version%.*}/clutter-${version}.tar.xz" -checksum=cc940809e6e1469ce349c4bddb0cbcc2c13c087d4fc15cda9278d855ee2d1293 +checksum=8fa5287e964e1811c339d95252b434a2bc0c60f1f42f1c854f29c71c7efeca94 if [ -z "$CROSS_BUILD" ]; then build_options_default="gir"