Fix a keyboard layout problem

This commit is contained in:
Matthias Clasen 2009-11-25 06:16:45 +00:00
parent b113a9a68b
commit b950738a1d
2 changed files with 47 additions and 1 deletions

View File

@ -0,0 +1,40 @@
From d4b92737abaf1f7d25090cc989846ca130617b73 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Wed, 25 Nov 2009 01:02:40 -0500
Subject: [PATCH] Make level3 keys work again
We were not paying attention to consumed modifiers when adding
virtual modifiers. This fixes RH bug 537567.
---
gdk/x11/gdkevents-x11.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/gdk/x11/gdkevents-x11.c b/gdk/x11/gdkevents-x11.c
index 032f9a5..a9efe76 100644
--- a/gdk/x11/gdkevents-x11.c
+++ b/gdk/x11/gdkevents-x11.c
@@ -618,6 +618,7 @@ translate_key_event (GdkDisplay *display,
GdkKeymap *keymap = gdk_keymap_get_for_display (display);
gunichar c = 0;
gchar buf[7];
+ GdkModifierType consumed, state;
event->key.type = xevent->xany.type == KeyPress ? GDK_KEY_PRESS : GDK_KEY_RELEASE;
event->key.time = xevent->xkey.time;
@@ -633,9 +634,11 @@ translate_key_event (GdkDisplay *display,
event->key.state,
event->key.group,
&event->key.keyval,
- NULL, NULL, NULL);
+ NULL, NULL, &consumed);
+ state = event->key.state & ~consumed;
+ _gdk_keymap_add_virtual_modifiers (keymap, &state);
+ event->key.state |= state;
- _gdk_keymap_add_virtual_modifiers (keymap, &event->key.state);
event->key.is_modifier = _gdk_keymap_key_is_modifier (keymap, event->key.hardware_keycode);
/* Fill in event->string crudely, since various programs
--
1.6.5.2

View File

@ -17,7 +17,7 @@
Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X
Name: gtk2 Name: gtk2
Version: %{base_version} Version: %{base_version}
Release: 21%{?dist} Release: 22%{?dist}
License: LGPLv2+ License: LGPLv2+
Group: System Environment/Libraries Group: System Environment/Libraries
Source: http://download.gnome.org/sources/gtk+/2.18/gtk+-%{version}.tar.bz2 Source: http://download.gnome.org/sources/gtk+/2.18/gtk+-%{version}.tar.bz2
@ -54,6 +54,8 @@ Patch13: gtk2-rotate-layout.patch
Patch14: gtk2-landscape-pdf-print.patch Patch14: gtk2-landscape-pdf-print.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=600992 # https://bugzilla.gnome.org/show_bug.cgi?id=600992
Patch15: filesystemref.patch Patch15: filesystemref.patch
# fixed upstream
Patch16: 0001-Make-level3-keys-work-again.patch
BuildRequires: atk-devel >= %{atk_version} BuildRequires: atk-devel >= %{atk_version}
BuildRequires: pango-devel >= %{pango_version} BuildRequires: pango-devel >= %{pango_version}
@ -180,6 +182,7 @@ This package contains developer documentation for the GTK+ widget toolkit.
%patch13 -p1 -b .rotate-layout %patch13 -p1 -b .rotate-layout
%patch14 -p1 -b .landscape-pdf-print %patch14 -p1 -b .landscape-pdf-print
%patch15 -p1 -b .filesystemref %patch15 -p1 -b .filesystemref
%patch16 -p1 -b .level3
%build %build
libtoolize --force --copy libtoolize --force --copy
@ -417,6 +420,9 @@ fi
%changelog %changelog
* Wed Nov 25 2009 Matthias Clasen <mclasen@redhat.com> - 2.18.3-22
- Make level3 keys work again (#537567)
* Tue Nov 10 2009 Matthias Clasen <mclasen@redhat.com> - 2.18.3-21 * Tue Nov 10 2009 Matthias Clasen <mclasen@redhat.com> - 2.18.3-21
- Fix refcounting issues in the filechooser that lead - Fix refcounting issues in the filechooser that lead
to crashes with device hotplug (gnome #600992) to crashes with device hotplug (gnome #600992)