[vte/f16] Fix Alt<>Meta problems with recent gtk
Matthias Clasen
mclasen at fedoraproject.org
Mon Dec 12 17:32:33 UTC 2011
commit 849a7f9ff4ca9f27abb254d9ad3014a4a8d1cf42
Author: Matthias Clasen <mclasen at redhat.com>
Date: Mon Dec 12 12:32:06 2011 -0500
Fix Alt<>Meta problems with recent gtk
vte-alt-meta-confusion.patch | 74 ++++++++++++++++++++++++++++++++++++++++++
vte.spec | 8 ++++-
2 files changed, 81 insertions(+), 1 deletions(-)
---
diff --git a/vte-alt-meta-confusion.patch b/vte-alt-meta-confusion.patch
new file mode 100644
index 0000000..bd364be
--- /dev/null
+++ b/vte-alt-meta-confusion.patch
@@ -0,0 +1,74 @@
+From 180dcc578e13c6096e277fb853e7162db640f207 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino at gentoo.org>
+Date: Tue, 15 Nov 2011 03:06:40 -0500
+Subject: [PATCH] Map both gdk's Meta and Alt to vte's Meta for >=gtk+-3.2.2
+ compatibility
+
+Also, since VTE_META_MASK is now a mask with multiple bits set, code that
+compares gdk key modifiers to VTE_META_MASK by numerical equality is no
+longer guaranteed to work. Therefore, for such comparisons a new function,
+vte_keymap_fixup_modifiers, is introduced; it ensures that if any bits
+matching matching VTE_META_MASK are set, then all are set.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=663779
+---
+ src/keymap.c | 15 +++++++++++++--
+ src/keymap.h | 2 +-
+ 2 files changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/src/keymap.c b/src/keymap.c
+index 9a21669..95b4c5b 100644
+--- a/src/keymap.c
++++ b/src/keymap.c
+@@ -990,6 +990,17 @@ static const struct _vte_keymap_group {
+ {GDK_KEY (F35), _vte_keymap_GDK_F35},
+ };
+
++/* Restrict modifiers to the specified mask and ensure that VTE_META_MASK,
++ * despite being a compound mask, is treated as indivisible. */
++GdkModifierType
++_vte_keymap_fixup_modifiers(GdkModifierType modifiers,
++ GdkModifierType mask)
++{
++ if (modifiers & VTE_META_MASK)
++ modifiers |= VTE_META_MASK;
++ return modifiers & mask;
++}
++
+ /* Map the specified keyval/modifier setup, dependent on the mode, to either
+ * a literal string or a capability name. */
+ void
+@@ -1104,7 +1115,7 @@ _vte_keymap_map(guint keyval,
+ } else {
+ fkey_mode = fkey_default;
+ }
+- modifiers &= (GDK_SHIFT_MASK | GDK_CONTROL_MASK | VTE_META_MASK | VTE_NUMLOCK_MASK);
++ modifiers = _vte_keymap_fixup_modifiers(modifiers, GDK_SHIFT_MASK | GDK_CONTROL_MASK | VTE_META_MASK | VTE_NUMLOCK_MASK);
+
+ /* Search for the conditions. */
+ for (i = 0; entries[i].normal_length || entries[i].special[0]; i++)
+@@ -1375,7 +1386,7 @@ _vte_keymap_key_add_key_modifiers(guint keyval,
+ return;
+ }
+
+- switch (modifiers & significant_modifiers) {
++ switch (_vte_keymap_fixup_modifiers(modifiers, significant_modifiers)) {
+ case 0:
+ modifier = 0;
+ break;
+diff --git a/src/keymap.h b/src/keymap.h
+index 243e22e..21d9b8e 100644
+--- a/src/keymap.h
++++ b/src/keymap.h
+@@ -27,7 +27,7 @@
+
+ G_BEGIN_DECLS
+
+-#define VTE_META_MASK GDK_META_MASK
++#define VTE_META_MASK (GDK_META_MASK | GDK_MOD1_MASK)
+ #define VTE_NUMLOCK_MASK GDK_MOD2_MASK
+
+ /* Map the specified keyval/modifier setup, dependent on the mode, to either
+--
+1.7.8.rc3
+
diff --git a/vte.spec b/vte.spec
index 74530e3..821248f 100644
--- a/vte.spec
+++ b/vte.spec
@@ -4,12 +4,14 @@
Name: vte
Version: 0.28.2
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A terminal emulator
License: LGPLv2+
Group: User Interface/X
#VCS: git:git://git.gnome.org/vte
Source: http://download.gnome.org/sources/vte/0.28/%{name}-%{version}.tar.xz
+# https://bugzilla.gnome.org/show_bug.cgi?id=663779
+Patch0: vte-alt-meta-confusion.patch
BuildRequires: gtk2-devel >= %{gtk2_version}
BuildRequires: pango-devel >= %{pango_version}
@@ -43,6 +45,7 @@ vte.
%prep
%setup -q
+%patch0 -p1
%build
PYTHON=%{_bindir}/python`%{__python} -c "import sys ; print sys.version[:3]"`
@@ -94,6 +97,9 @@ rm -f $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/gtk-2.0/*.a
%doc %{_datadir}/gtk-doc/html/vte-0.0
%changelog
+* Mon Dec 12 2011 Matthias Clasen <mclasen at redhat.com> - 0.28.2-2
+- Fix problems with Alt<>Meta with recent gtk
+
* Fri Nov 25 2011 Tomas Bzatek <tbzatek at redhat.com> - 0.28.2-1
- Update to 0.28.2
More information about the scm-commits
mailing list