r36553 - in /desktop/unstable/gtk+3.0/debian: changelog libgtk-3-0.symbols patches/075_gtkplug-fix-handling-of-key-events-for-layouts.patch patches/series rules
sebastien at users.alioth.debian.org
sebastien at users.alioth.debian.org
Wed Jan 9 09:59:23 UTC 2013
Author: sebastien
Date: Wed Jan 9 09:59:22 2013
New Revision: 36553
URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=36553
Log:
* 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.
Added:
desktop/unstable/gtk+3.0/debian/patches/075_gtkplug-fix-handling-of-key-events-for-layouts.patch
Modified:
desktop/unstable/gtk+3.0/debian/changelog
desktop/unstable/gtk+3.0/debian/libgtk-3-0.symbols
desktop/unstable/gtk+3.0/debian/patches/series
desktop/unstable/gtk+3.0/debian/rules
Modified: desktop/unstable/gtk+3.0/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gtk%2B3.0/debian/changelog?rev=36553&op=diff
==============================================================================
--- desktop/unstable/gtk+3.0/debian/changelog [utf-8] (original)
+++ desktop/unstable/gtk+3.0/debian/changelog [utf-8] Wed Jan 9 09:59:22 2013
@@ -1,3 +1,17 @@
+gtk+3.0 (3.4.2-5) UNRELEASED; 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 <sebastien at debian.org> Wed, 09 Jan 2013 10:05:43 +0100
+
gtk+3.0 (3.4.2-4) unstable; urgency=low
* debian/patches/074_try-harder-to-discriminate-Shift-F10-and-F10.patch:
Modified: desktop/unstable/gtk+3.0/debian/libgtk-3-0.symbols
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gtk%2B3.0/debian/libgtk-3-0.symbols?rev=36553&op=diff
==============================================================================
--- desktop/unstable/gtk+3.0/debian/libgtk-3-0.symbols [utf-8] (original)
+++ desktop/unstable/gtk+3.0/debian/libgtk-3-0.symbols [utf-8] Wed Jan 9 09:59:22 2013
@@ -542,7 +542,9 @@
gdk_x11_get_xatom_name at Base 3.0.0
gdk_x11_get_xatom_name_for_display at Base 3.0.0
gdk_x11_grab_server at Base 3.0.0
+ gdk_x11_keymap_get_group_for_state at Base 3.4.2-5~
gdk_x11_keymap_get_type at Base 3.0.0
+ gdk_x11_keymap_key_is_modifier at Base 3.4.2-5~
gdk_x11_lookup_xdisplay at Base 3.0.0
gdk_x11_register_standard_event_type at Base 3.0.0
gdk_x11_screen_get_monitor_output at Base 3.0.0
Added: desktop/unstable/gtk+3.0/debian/patches/075_gtkplug-fix-handling-of-key-events-for-layouts.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gtk%2B3.0/debian/patches/075_gtkplug-fix-handling-of-key-events-for-layouts.patch?rev=36553&op=file
==============================================================================
--- desktop/unstable/gtk+3.0/debian/patches/075_gtkplug-fix-handling-of-key-events-for-layouts.patch (added)
+++ desktop/unstable/gtk+3.0/debian/patches/075_gtkplug-fix-handling-of-key-events-for-layouts.patch [utf-8] Wed Jan 9 09:59:22 2013
@@ -1,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;
+ }
+ }
Modified: desktop/unstable/gtk+3.0/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gtk%2B3.0/debian/patches/series?rev=36553&op=diff
==============================================================================
--- desktop/unstable/gtk+3.0/debian/patches/series [utf-8] (original)
+++ desktop/unstable/gtk+3.0/debian/patches/series [utf-8] Wed Jan 9 09:59:22 2013
@@ -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
Modified: desktop/unstable/gtk+3.0/debian/rules
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gtk%2B3.0/debian/rules?rev=36553&op=diff
==============================================================================
--- desktop/unstable/gtk+3.0/debian/rules [utf-8] (original)
+++ desktop/unstable/gtk+3.0/debian/rules [utf-8] Wed Jan 9 09:59:22 2013
@@ -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))
More information about the pkg-gnome-commits
mailing list