r35744 - in /desktop/unstable/gtk+3.0/debian: changelog patches/074_try-harder-to-discriminate-Shift-F10-and-F10.patch patches/series

biebl at users.alioth.debian.org biebl at users.alioth.debian.org
Fri Sep 21 16:30:37 UTC 2012


Author: biebl
Date: Fri Sep 21 16:30:36 2012
New Revision: 35744

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=35744
Log:
debian/patches/074_try-harder-to-discriminate-Shift-F10-and-F10.patch:
With xkb-data 2.5.1-2.1 preserving the Shift modifier, GTK+ can properly
map F10 and Shift-F10 to different key bindings. Closes: #658392

Added:
    desktop/unstable/gtk+3.0/debian/patches/074_try-harder-to-discriminate-Shift-F10-and-F10.patch
Modified:
    desktop/unstable/gtk+3.0/debian/changelog
    desktop/unstable/gtk+3.0/debian/patches/series

Modified: desktop/unstable/gtk+3.0/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gtk%2B3.0/debian/changelog?rev=35744&op=diff
==============================================================================
--- desktop/unstable/gtk+3.0/debian/changelog [utf-8] (original)
+++ desktop/unstable/gtk+3.0/debian/changelog [utf-8] Fri Sep 21 16:30:36 2012
@@ -1,3 +1,11 @@
+gtk+3.0 (3.4.2-4) UNRELEASED; urgency=low
+
+  * debian/patches/074_try-harder-to-discriminate-Shift-F10-and-F10.patch:
+    With xkb-data 2.5.1-2.1 preserving the Shift modifier, GTK+ can properly
+    map F10 and Shift-F10 to different key bindings. Closes: #658392
+
+ -- Michael Biebl <biebl at debian.org>  Fri, 21 Sep 2012 18:20:47 +0200
+
 gtk+3.0 (3.4.2-3) unstable; urgency=low
 
   [ Josselin Mouette ]

Added: desktop/unstable/gtk+3.0/debian/patches/074_try-harder-to-discriminate-Shift-F10-and-F10.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gtk%2B3.0/debian/patches/074_try-harder-to-discriminate-Shift-F10-and-F10.patch?rev=35744&op=file
==============================================================================
--- desktop/unstable/gtk+3.0/debian/patches/074_try-harder-to-discriminate-Shift-F10-and-F10.patch (added)
+++ desktop/unstable/gtk+3.0/debian/patches/074_try-harder-to-discriminate-Shift-F10-and-F10.patch [utf-8] Fri Sep 21 16:30:36 2012
@@ -1,0 +1,69 @@
+From 314b6abbe8d8daae1e2de50b15cc9b6553af1f3d Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen at redhat.com>
+Date: Sat, 1 Sep 2012 22:51:18 -0400
+Subject: [PATCH] Try harder to discriminate Shift-F10 and F10
+
+A change in xkeyboard-config 2.4.1 made it so that function keys
+now have a shift level which has the same symbol, but 'eats' the
+shift modifier. This would ordinarily make it impossible for us
+to discriminate between these key combinations.
+
+This commit tries harder to discriminate in 2 ways:
+- XKB has a mechanism to tell us when a modifier should not be
+  consumed even though it was used in determining the level.
+  We now respect such 'preserved' modifiers. This does not fix
+  the Shift-F10 vs F10 problem yet, since xkeyboard-config does
+  not currently mark Shift as preserved for function keys.
+- Don't consume modifiers that do not change the symbol. For
+  the function keys, the symbol on the shift level is the same
+  as the base level, so we don't consider Shift consumed.
+
+For more background on the xkeyboard-config change, see
+https://bugs.freedesktop.org/show_bug.cgi?id=45008
+
+https://bugzilla.gnome.org/show_bug.cgi?id=661973
+---
+ gdk/x11/gdkkeys-x11.c | 20 +++++++++++++++-----
+ 1 file changed, 15 insertions(+), 5 deletions(-)
+
+Index: gtk+-3.4.2/gdk/x11/gdkkeys-x11.c
+===================================================================
+--- gtk+-3.4.2.orig/gdk/x11/gdkkeys-x11.c	2012-05-02 14:05:07.000000000 +0200
++++ gtk+-3.4.2/gdk/x11/gdkkeys-x11.c	2012-09-04 03:05:24.621782410 +0200
+@@ -1113,6 +1113,8 @@
+         int found = 0;
+ 
+         for (i=0,entry=type->map;i<type->map_count;i++,entry++) {
++            if (!entry->active)
++              continue;
+             if (mods_rtrn) {
+                 int bits = 0;
+                 unsigned long tmp = entry->mods.mask;
+@@ -1123,14 +1125,22 @@
+                 }
+                 /* We always add one-modifiers levels to mods_rtrn since
+                  * they can't wipe out bits in the state unless the
+-                 * level would be triggered. But return other modifiers
+-                 *
++                 * level would be triggered. But not if they don't change
++                 * the symbol (otherwise we can't discriminate Shift-F10
++                 * and F10 anymore). And don't add modifiers that are
++                 * explicitly marked as preserved, either.
+                  */
+-                if (bits == 1 || (mods&type->mods.mask)==entry->mods.mask)
+-                    *mods_rtrn |= entry->mods.mask;
++                if ((bits == 1 && syms[col+entry->level] != syms[col]) ||
++                    (mods&type->mods.mask) == entry->mods.mask)
++                  {
++                    if (type->preserve)
++                      *mods_rtrn |= (entry->mods.mask & ~type->preserve[i].mask);
++                    else
++                      *mods_rtrn |= entry->mods.mask;
++                  }
+             }
+ 
+-            if (!found&&entry->active&&((mods&type->mods.mask)==entry->mods.mask)) {
++            if (!found&&((mods&type->mods.mask)==entry->mods.mask)) {
+                 col+= entry->level;
+                 if (type->preserve)
+                     preserve= type->preserve[i].mask;

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=35744&op=diff
==============================================================================
--- desktop/unstable/gtk+3.0/debian/patches/series [utf-8] (original)
+++ desktop/unstable/gtk+3.0/debian/patches/series [utf-8] Fri Sep 21 16:30:36 2012
@@ -11,3 +11,4 @@
 071_fix-installation-of-HTML-images.patch
 072_statusicon_icon_size.patch
 073_transparent_colors.patch
+074_try-harder-to-discriminate-Shift-F10-and-F10.patch




More information about the pkg-gnome-commits mailing list