mirror of
git://slackware.nl/current.git
synced 2024-12-28 09:59:53 +01:00
9664bee729
Wed Sep 26 01:10:42 UTC 2012 Slackware 14.0 x86_64 stable is released! We're perfectionists here at Slackware, so this release has been a long time a-brewing. But we think you'll agree that it was worth the wait. Slackware 14.0 combines modern components, ease of use, and flexible configuration... our "KISS" philosophy demands it. The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware project by picking up a copy from store.slackware.com. We're taking pre-orders now, and offer a discount if you sign up for a subscription. Thanks to everyone who helped make this happen. The Slackware team, the upstream developers, and (of course) the awesome Slackware user community. Have fun! :-)
74 lines
2.4 KiB
Diff
74 lines
2.4 KiB
Diff
From 180dcc578e13c6096e277fb853e7162db640f207 Mon Sep 17 00:00:00 2001
|
|
From: Alexandre Rostovtsev <tetromino@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
|
|
|