[gnome-settings-daemon] keyboard: Add more modifiers only combinations



commit ca32b782eda8b636e604119edc49b7da785ca40d
Author: Rui Matos <tiagomatos gmail com>
Date:   Mon Oct 8 14:53:02 2012 +0200

    keyboard: Add more modifiers only combinations
    
    https://bugzilla.gnome.org/show_bug.cgi?id=685718

 data/gsd-enums.h                              |    8 ++-
 plugins/keyboard/gsd-input-sources-switcher.c |   88 +++++++++++++++++++++++++
 2 files changed, 95 insertions(+), 1 deletions(-)
---
diff --git a/data/gsd-enums.h b/data/gsd-enums.h
index 6c4edd4..49e07db 100644
--- a/data/gsd-enums.h
+++ b/data/gsd-enums.h
@@ -133,7 +133,13 @@ typedef enum
   GSD_INPUT_SOURCES_SWITCHER_ALT_SHIFT_L,
   GSD_INPUT_SOURCES_SWITCHER_ALT_SHIFT_R,
   GSD_INPUT_SOURCES_SWITCHER_CTRL_SHIFT_L,
-  GSD_INPUT_SOURCES_SWITCHER_CTRL_SHIFT_R
+  GSD_INPUT_SOURCES_SWITCHER_CTRL_SHIFT_R,
+  GSD_INPUT_SOURCES_SWITCHER_SHIFT_L_SHIFT_R,
+  GSD_INPUT_SOURCES_SWITCHER_ALT_L_ALT_R,
+  GSD_INPUT_SOURCES_SWITCHER_CTRL_L_CTRL_R,
+  GSD_INPUT_SOURCES_SWITCHER_ALT_SHIFT,
+  GSD_INPUT_SOURCES_SWITCHER_CTRL_SHIFT,
+  GSD_INPUT_SOURCES_SWITCHER_ALT_CTRL,
 } GsdInputSourcesSwitcher;
 
 #endif /* __gsd_enums_h__ */
diff --git a/plugins/keyboard/gsd-input-sources-switcher.c b/plugins/keyboard/gsd-input-sources-switcher.c
index 75b0111..fd891cc 100644
--- a/plugins/keyboard/gsd-input-sources-switcher.c
+++ b/plugins/keyboard/gsd-input-sources-switcher.c
@@ -164,6 +164,94 @@ init_keys (void)
       the_keys[1].keysym = GDK_KEY_Control_R;
       the_keys[1].state = GDK_SHIFT_MASK;
       break;
+
+    case GSD_INPUT_SOURCES_SWITCHER_SHIFT_L_SHIFT_R:
+      n_keys = 2;
+      the_keys = g_new0 (Key, n_keys);
+
+      the_keys[0].keysym = GDK_KEY_Shift_L;
+      the_keys[0].state = GDK_SHIFT_MASK;
+      the_keys[1].keysym = GDK_KEY_Shift_R;
+      the_keys[1].state = GDK_SHIFT_MASK;
+      break;
+
+    case GSD_INPUT_SOURCES_SWITCHER_ALT_L_ALT_R:
+      n_keys = 4;
+      the_keys = g_new0 (Key, n_keys);
+
+      the_keys[0].keysym = GDK_KEY_Alt_L;
+      the_keys[0].state = GDK_MOD1_MASK;
+      the_keys[1].keysym = GDK_KEY_Alt_R;
+      the_keys[1].state = GDK_MOD1_MASK;
+      the_keys[2].keysym = GDK_KEY_Alt_L;
+      the_keys[2].state = GDK_MOD5_MASK;
+      the_keys[3].keysym = GDK_KEY_ISO_Level3_Shift;
+      the_keys[3].state = GDK_MOD1_MASK;
+      break;
+
+    case GSD_INPUT_SOURCES_SWITCHER_CTRL_L_CTRL_R:
+      n_keys = 2;
+      the_keys = g_new0 (Key, n_keys);
+
+      the_keys[0].keysym = GDK_KEY_Control_L;
+      the_keys[0].state = GDK_CONTROL_MASK;
+      the_keys[1].keysym = GDK_KEY_Control_R;
+      the_keys[1].state = GDK_CONTROL_MASK;
+      break;
+
+    case GSD_INPUT_SOURCES_SWITCHER_ALT_SHIFT:
+      n_keys = 7;
+      the_keys = g_new0 (Key, n_keys);
+
+      the_keys[0].keysym = GDK_KEY_Shift_L;
+      the_keys[0].state = GDK_MOD1_MASK;
+      the_keys[1].keysym = GDK_KEY_Shift_L;
+      the_keys[1].state = GDK_MOD5_MASK;
+      the_keys[2].keysym = GDK_KEY_Shift_R;
+      the_keys[2].state = GDK_MOD1_MASK;
+      the_keys[3].keysym = GDK_KEY_Shift_R;
+      the_keys[3].state = GDK_MOD5_MASK;
+      the_keys[4].keysym = GDK_KEY_Alt_L;
+      the_keys[4].state = GDK_SHIFT_MASK;
+      the_keys[5].keysym = GDK_KEY_Alt_R;
+      the_keys[5].state = GDK_SHIFT_MASK;
+      the_keys[6].keysym = GDK_KEY_ISO_Level3_Shift;
+      the_keys[6].state = GDK_SHIFT_MASK;
+      break;
+
+    case GSD_INPUT_SOURCES_SWITCHER_CTRL_SHIFT:
+      n_keys = 4;
+      the_keys = g_new0 (Key, n_keys);
+
+      the_keys[0].keysym = GDK_KEY_Shift_L;
+      the_keys[0].state = GDK_CONTROL_MASK;
+      the_keys[1].keysym = GDK_KEY_Shift_R;
+      the_keys[1].state = GDK_CONTROL_MASK;
+      the_keys[2].keysym = GDK_KEY_Control_L;
+      the_keys[2].state = GDK_SHIFT_MASK;
+      the_keys[3].keysym = GDK_KEY_Control_R;
+      the_keys[3].state = GDK_SHIFT_MASK;
+      break;
+
+    case GSD_INPUT_SOURCES_SWITCHER_ALT_CTRL:
+      n_keys = 7;
+      the_keys = g_new0 (Key, n_keys);
+
+      the_keys[0].keysym = GDK_KEY_Control_L;
+      the_keys[0].state = GDK_MOD1_MASK;
+      the_keys[1].keysym = GDK_KEY_Control_L;
+      the_keys[1].state = GDK_MOD5_MASK;
+      the_keys[2].keysym = GDK_KEY_Control_R;
+      the_keys[2].state = GDK_MOD1_MASK;
+      the_keys[3].keysym = GDK_KEY_Control_R;
+      the_keys[3].state = GDK_MOD5_MASK;
+      the_keys[4].keysym = GDK_KEY_Alt_L;
+      the_keys[4].state = GDK_CONTROL_MASK;
+      the_keys[5].keysym = GDK_KEY_Alt_R;
+      the_keys[5].state = GDK_CONTROL_MASK;
+      the_keys[6].keysym = GDK_KEY_ISO_Level3_Shift;
+      the_keys[6].state = GDK_CONTROL_MASK;
+      break;
     }
 
   g_object_unref (settings);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]