Your message dated Sat, 19 Jan 2013 12:55:18 +0100
with message-id <[email protected]>
and subject line Re: Bug#697749: unblock: gtk+3.0/3.4.2-5
has caused the Debian Bug report #697749,
regarding unblock: gtk+3.0/3.4.2-5
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
697749: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=697749
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: [email protected]
Usertags: unblock
Please unblock package gtk+3.0. Version 3.4.2-5 fixes important bug #692235.
The debdiff is attached.
unblock gtk+3.0/3.4.2-5
Cheers,
--
.''`. Sébastien Villemot
: :' : Debian Developer
`. `' http://www.dynare.org/sebastien
`- GPG Key: 4096R/381A7594
diff -Nru gtk+3.0-3.4.2/debian/changelog gtk+3.0-3.4.2/debian/changelog
--- gtk+3.0-3.4.2/debian/changelog 2012-09-21 18:30:43.000000000 +0200
+++ gtk+3.0-3.4.2/debian/changelog 2013-01-09 11:00:45.000000000 +0100
@@ -1,3 +1,17 @@
+gtk+3.0 (3.4.2-5) unstable; urgency=low
+
+ * debian/patches/075_gtkplug-fix-handling-of-key-events-for-layouts.patch:
+ This patch fixes handling of key events for different layouts in
+ GtkPlug. In particular, it fixes the keyboard layout switching from
+ gnome-screensaver when the screen is locked. Closes: #692235
+ * debian/libgtk-3-0.symbols: add gdk_x11_keymap_get_group_for_state and
+ gdk_x11_keymap_key_is_modifier which are introduced by the above patch
+ (actually backported from the 3.5.2 API).
+ * debian/rules: call dh_makeshlibs with -V 'libgtk-3-0 (>= 3.4.2-5~)',
+ since we introduced new public symbols in this Debian revision.
+
+ -- Sébastien Villemot <[email protected]> Wed, 09 Jan 2013 11:00:22 +0100
+
gtk+3.0 (3.4.2-4) unstable; urgency=low
* debian/patches/074_try-harder-to-discriminate-Shift-F10-and-F10.patch:
diff -Nru gtk+3.0-3.4.2/debian/libgtk-3-0.symbols gtk+3.0-3.4.2/debian/libgtk-3-0.symbols
--- gtk+3.0-3.4.2/debian/libgtk-3-0.symbols 2012-04-19 02:45:51.000000000 +0200
+++ gtk+3.0-3.4.2/debian/libgtk-3-0.symbols 2013-01-09 10:06:40.000000000 +0100
@@ -542,7 +542,9 @@
gdk_x11_get_xatom_name@Base 3.0.0
gdk_x11_get_xatom_name_for_display@Base 3.0.0
gdk_x11_grab_server@Base 3.0.0
+ gdk_x11_keymap_get_group_for_state@Base 3.4.2-5~
gdk_x11_keymap_get_type@Base 3.0.0
+ gdk_x11_keymap_key_is_modifier@Base 3.4.2-5~
gdk_x11_lookup_xdisplay@Base 3.0.0
gdk_x11_register_standard_event_type@Base 3.0.0
gdk_x11_screen_get_monitor_output@Base 3.0.0
diff -Nru gtk+3.0-3.4.2/debian/patches/075_gtkplug-fix-handling-of-key-events-for-layouts.patch gtk+3.0-3.4.2/debian/patches/075_gtkplug-fix-handling-of-key-events-for-layouts.patch
--- gtk+3.0-3.4.2/debian/patches/075_gtkplug-fix-handling-of-key-events-for-layouts.patch 1970-01-01 01:00:00.000000000 +0100
+++ gtk+3.0-3.4.2/debian/patches/075_gtkplug-fix-handling-of-key-events-for-layouts.patch 2013-01-09 10:04:50.000000000 +0100
@@ -0,0 +1,166 @@
+Description: GtkPlug: fix handling of key events for different layouts
+ GtkPlug directly handles X KeyPress/Release events, instead of using
+ translation in GDK (which expects XI2 events for XI2). When this
+ was done, the handling of the group was stubbed out and never replaced.
+ .
+ Export gdk_keymap_x11_group_for_state() and gdk_keymap_x11_is_modifier()
+ so we can fill out the fields correctly.
+Origin: upstream, http://git.gnome.org/browse/gtk+/commit/?id=0aa989ae76d0d080eae16b8a4fde59aca1227cc4
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=675167
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=692235
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/gdk/x11/gdkdevicemanager-core-x11.c
++++ b/gdk/x11/gdkdevicemanager-core-x11.c
+@@ -145,7 +145,7 @@
+ gdk_event_set_device (event, device_manager->core_keyboard);
+
+ event->key.state = (GdkModifierType) xevent->xkey.state;
+- event->key.group = _gdk_x11_get_group_for_state (display, xevent->xkey.state);
++ event->key.group = gdk_x11_keymap_get_group_for_state (keymap, xevent->xkey.state);
+ event->key.hardware_keycode = xevent->xkey.keycode;
+
+ event->key.keyval = GDK_KEY_VoidSymbol;
+@@ -161,7 +161,7 @@
+ _gdk_x11_keymap_add_virt_mods (keymap, &state);
+ event->key.state |= state;
+
+- event->key.is_modifier = _gdk_x11_keymap_key_is_modifier (keymap, event->key.hardware_keycode);
++ event->key.is_modifier = gdk_x11_keymap_key_is_modifier (keymap, event->key.hardware_keycode);
+
+ _gdk_x11_event_translate_keyboard_string (&event->key);
+
+--- a/gdk/x11/gdkdevicemanager-xi2.c
++++ b/gdk/x11/gdkdevicemanager-xi2.c
+@@ -1160,10 +1160,10 @@
+
+ event->key.time = xev->time;
+ event->key.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group);
+- event->key.group = _gdk_x11_get_group_for_state (display, event->key.state);
++ event->key.group = xev->group.effective;
+
+ event->key.hardware_keycode = xev->detail;
+- event->key.is_modifier = _gdk_x11_keymap_key_is_modifier (keymap, event->key.hardware_keycode);
++ event->key.is_modifier = gdk_x11_keymap_key_is_modifier (keymap, event->key.hardware_keycode);
+
+ device = g_hash_table_lookup (device_manager->id_table,
+ GUINT_TO_POINTER (xev->deviceid));
+--- a/gdk/x11/gdkkeys-x11.c
++++ b/gdk/x11/gdkkeys-x11.c
+@@ -1439,11 +1439,28 @@
+ *upper = xupper;
+ }
+
++/**
++ * gdk_x11_keymap_get_group_for_state:
++ * @keymap: a #GdkX11Keymap
++ * @state: raw state returned from X
++ *
++ * Extracts the group from the state field sent in an X Key event.
++ * This is only needed for code processing raw X events, since #GdkEventKey
++ * directly includes an is_modifier field.
++ *
++ * Returns: the index of the active keyboard group for the event
++ */
+ gint
+-_gdk_x11_get_group_for_state (GdkDisplay *display,
+- GdkModifierType state)
++gdk_x11_keymap_get_group_for_state (GdkKeymap *keymap,
++ guint state)
+ {
+- GdkX11Display *display_x11 = GDK_X11_DISPLAY (display);
++ GdkDisplay *display;
++ GdkX11Display *display_x11;
++
++ g_return_val_if_fail (GDK_IS_X11_KEYMAP (keymap), 0);
++
++ display = keymap->display;
++ display_x11 = GDK_X11_DISPLAY (display);
+
+ #ifdef HAVE_XKB
+ if (display_x11->use_xkb)
+@@ -1508,13 +1525,29 @@
+ }
+ }
+
++/**
++ * gdk_x11_keymap_key_is_modifier:
++ * @keymap: a #GdkX11Keymap
++ * @keycode: the hardware keycode from a key event
++ *
++ * Determines whether a particular key code represents a key that
++ * is a modifier. That is, it's a key that normally just affects
++ * the keyboard state and the behavior of other keys rather than
++ * producing a direct effect itself. This is only needed for code
++ * processing raw X events, since #GdkEventKey directly includes
++ * an is_modifier field.
++ *
++ * Returns: %TRUE if the hardware keycode is a modifier key
++ */
+ gboolean
+-_gdk_x11_keymap_key_is_modifier (GdkKeymap *keymap,
+- guint keycode)
++gdk_x11_keymap_key_is_modifier (GdkKeymap *keymap,
++ guint keycode)
+ {
+ GdkX11Keymap *keymap_x11 = GDK_X11_KEYMAP (keymap);
+ gint i;
+
++ g_return_val_if_fail (GDK_IS_X11_KEYMAP (keymap), FALSE);
++
+ update_keyrange (keymap_x11);
+ if (keycode < keymap_x11->min_keycode ||
+ keycode > keymap_x11->max_keycode)
+--- a/gdk/x11/gdkprivate-x11.h
++++ b/gdk/x11/gdkprivate-x11.h
+@@ -155,12 +155,8 @@
+ void _gdk_x11_keymap_state_changed (GdkDisplay *display,
+ XEvent *event);
+ void _gdk_x11_keymap_keys_changed (GdkDisplay *display);
+-gint _gdk_x11_get_group_for_state (GdkDisplay *display,
+- GdkModifierType state);
+ void _gdk_x11_keymap_add_virt_mods (GdkKeymap *keymap,
+ GdkModifierType *modifiers);
+-gboolean _gdk_x11_keymap_key_is_modifier (GdkKeymap *keymap,
+- guint keycode);
+
+ void _gdk_x11_windowing_init (void);
+
+--- a/gdk/x11/gdkx11keys.h
++++ b/gdk/x11/gdkx11keys.h
+@@ -42,6 +42,11 @@
+
+ GType gdk_x11_keymap_get_type (void);
+
++gint gdk_x11_keymap_get_group_for_state (GdkKeymap *keymap,
++ guint state);
++
++gboolean gdk_x11_keymap_key_is_modifier (GdkKeymap *keymap,
++ guint keycode);
+ G_END_DECLS
+
+ #endif /* __GDK_X11_KEYMAP_H__ */
+--- a/gtk/gtkplug.c
++++ b/gtk/gtkplug.c
+@@ -982,6 +982,10 @@
+ gdk_event_set_device (event, keyboard);
+
+ keymap = gdk_keymap_get_for_display (display);
++
++ event->key.group = gdk_x11_keymap_get_group_for_state (keymap, xevent->xkey.state);
++ event->key.is_modifier = gdk_x11_keymap_key_is_modifier (keymap, event->key.hardware_keycode);
++
+ gdk_keymap_translate_keyboard_state (keymap,
+ event->key.hardware_keycode,
+ event->key.state,
+@@ -996,10 +1000,6 @@
+ event->key.length = 0;
+ event->key.string = g_strdup ("");
+
+- /* FIXME: These should be filled in properly */
+- event->key.group = 0;
+- event->key.is_modifier = FALSE;
+-
+ return_val = GDK_FILTER_TRANSLATE;
+ }
+ }
diff -Nru gtk+3.0-3.4.2/debian/patches/series gtk+3.0-3.4.2/debian/patches/series
--- gtk+3.0-3.4.2/debian/patches/series 2012-09-04 03:05:03.000000000 +0200
+++ gtk+3.0-3.4.2/debian/patches/series 2013-01-09 10:04:37.000000000 +0100
@@ -12,3 +12,4 @@
072_statusicon_icon_size.patch
073_transparent_colors.patch
074_try-harder-to-discriminate-Shift-F10-and-F10.patch
+075_gtkplug-fix-handling-of-key-events-for-layouts.patch
diff -Nru gtk+3.0-3.4.2/debian/rules gtk+3.0-3.4.2/debian/rules
--- gtk+3.0-3.4.2/debian/rules 2012-08-06 21:16:26.000000000 +0200
+++ gtk+3.0-3.4.2/debian/rules 2013-01-09 10:06:51.000000000 +0100
@@ -81,7 +81,7 @@
DEB_INSTALL_DOCS_$(COMMON_PKG) = README NEWS
DEB_INSTALL_DOCS_$(DOC_PKG) += -X.in
DEB_DH_MAKESHLIBS_ARGS_ALL += -X$(MODULES_BASE_PATH)
-DEB_DH_MAKESHLIBS_ARGS_$(SHARED_PKG) += -V --add-udeb=$(UDEB_PKG) -- -c4
+DEB_DH_MAKESHLIBS_ARGS_$(SHARED_PKG) += -V 'libgtk-3-0 (>= 3.4.2-5~)' --add-udeb=$(UDEB_PKG) -- -c4
DEB_DH_MAKESHLIBS_ARGS_libgail-3-0 += -V -- -c4
DEB_DH_FIXPERMS_ARGS_ALL += -X$(LIBDIR)/$(SHARED_PKG)
DEB_DH_STRIP_ARGS = --dbg-package=$(if $(findstring libgail,$(cdbs_curpkg)),libgail-3-0-dbg,$(DEBUG_PKG))
signature.asc
Description: Digital signature
--- End Message ---
--- Begin Message ---
On Wed, Jan 9, 2013 at 11:46:54 +0100, Sébastien Villemot wrote:
> Package: release.debian.org
> Severity: normal
> User: [email protected]
> Usertags: unblock
>
> Please unblock package gtk+3.0. Version 3.4.2-5 fixes important bug #692235.
> The debdiff is attached.
>
> unblock gtk+3.0/3.4.2-5
>
Unblocked, thanks.
Cheers,
Julien
signature.asc
Description: Digital signature
--- End Message ---