summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHavoc Pennington <hp@pobox.com>2003-02-22 20:31:51 +0000
committerHavoc Pennington <hp@src.gnome.org>2003-02-22 20:31:51 +0000
commitfb9ad1eb1314bada8f051d6dc368625aae6245e5 (patch)
tree8ae29bbfbdb8c3698b6c5bc01bba03a7330ff121 /src
parent8764b89942e80d1c6a301c04f5a802396466625a (diff)
downloadmetacity-fb9ad1eb1314bada8f051d6dc368625aae6245e5.tar.gz
when tabbing backward, we are still tabbing *from* the most recently used
2003-02-22 Havoc Pennington <hp@pobox.com> * src/display.c (meta_display_get_tab_next): when tabbing backward, we are still tabbing *from* the most recently used window, not from the least recently used window. * src/keybindings.c (struct _MetaKeyBinding): make keycode unsigned to match XEvent Patch for #84999 based on patch from Mark McLoughlin * src/prefs.c: add an add_shift field to MetaKeyPref to add shift when grabbing the given keybinding. * src/keybindings.c (rebuild_screen_binding_table) (rebuild_window_binding_table): refactor to share code, and honor add_shift field in MetaKeyPref
Diffstat (limited to 'src')
-rw-r--r--src/display.c2
-rw-r--r--src/display.h4
-rw-r--r--src/keybindings.c163
-rw-r--r--src/prefs.c182
-rw-r--r--src/prefs.h2
5 files changed, 205 insertions, 148 deletions
diff --git a/src/display.c b/src/display.c
index 36971cc9..9213c8c4 100644
--- a/src/display.c
+++ b/src/display.c
@@ -3541,7 +3541,7 @@ meta_display_get_tab_next (MetaDisplay *display,
if (backward)
return find_tab_backward (display, type, screen, workspace,
- g_list_last (display->mru_list));
+ display->mru_list);
else
return find_tab_forward (display, type, screen, workspace,
display->mru_list);
diff --git a/src/display.h b/src/display.h
index c5dae68a..44381b90 100644
--- a/src/display.h
+++ b/src/display.h
@@ -259,8 +259,8 @@ struct _MetaDisplay
int n_screen_bindings;
MetaKeyBinding *window_bindings;
int n_window_bindings;
- int min_keycode;
- int max_keycode;
+ unsigned int min_keycode;
+ unsigned int max_keycode;
KeySym *keymap;
int keysyms_per_keycode;
XModifierKeymap *modmap;
diff --git a/src/keybindings.c b/src/keybindings.c
index 2190091e..713e4242 100644
--- a/src/keybindings.c
+++ b/src/keybindings.c
@@ -209,7 +209,7 @@ struct _MetaKeyBinding
const char *name;
KeySym keysym;
unsigned int mask;
- int keycode;
+ unsigned int keycode;
MetaVirtualModifier modifiers;
const MetaKeyHandler *handler;
};
@@ -429,7 +429,7 @@ reload_modmap (MetaDisplay *display)
/* get the key code at this point in the map,
* see if its keysym is one we're interested in
*/
- int keycode = modmap->modifiermap[i];
+ unsigned int keycode = modmap->modifiermap[i];
if (keycode >= display->min_keycode &&
keycode <= display->max_keycode)
@@ -512,7 +512,7 @@ reload_keycodes (MetaDisplay *display)
int i;
i = 0;
- while (display->screen_bindings[i].keysym != None)
+ while (i < display->n_screen_bindings)
{
display->screen_bindings[i].keycode = XKeysymToKeycode (display->xdisplay,
display->screen_bindings[i].keysym);
@@ -526,7 +526,7 @@ reload_keycodes (MetaDisplay *display)
int i;
i = 0;
- while (display->window_bindings[i].keysym != None)
+ while (i < display->n_window_bindings)
{
display->window_bindings[i].keycode = XKeysymToKeycode (display->xdisplay,
display->window_bindings[i].keysym);
@@ -547,11 +547,17 @@ reload_modifiers (MetaDisplay *display)
int i;
i = 0;
- while (display->screen_bindings[i].keysym != None)
+ while (i < display->n_screen_bindings)
{
meta_display_devirtualize_modifiers (display,
display->screen_bindings[i].modifiers,
&display->screen_bindings[i].mask);
+
+ meta_topic (META_DEBUG_KEYBINDINGS,
+ " Devirtualized mods 0x%x -> 0x%x (%s)\n",
+ display->screen_bindings[i].modifiers,
+ display->screen_bindings[i].mask,
+ display->screen_bindings[i].name);
++i;
}
@@ -562,93 +568,137 @@ reload_modifiers (MetaDisplay *display)
int i;
i = 0;
- while (display->window_bindings[i].keysym != None)
+ while (i < display->n_window_bindings)
{
meta_display_devirtualize_modifiers (display,
display->window_bindings[i].modifiers,
&display->window_bindings[i].mask);
+
+ meta_topic (META_DEBUG_KEYBINDINGS,
+ " Devirtualized mods 0x%x -> 0x%x (%s)\n",
+ display->window_bindings[i].modifiers,
+ display->window_bindings[i].mask,
+ display->window_bindings[i].name);
++i;
}
}
}
-static void
-rebuild_screen_binding_table (MetaDisplay *display)
+static int
+count_bindings (const MetaKeyPref *prefs,
+ int n_prefs)
{
- const MetaKeyPref *prefs;
- int n_bindings;
- int src, dest;
-
- meta_topic (META_DEBUG_KEYBINDINGS,
- "Rebuilding screen binding table from preferences\n");
-
- meta_prefs_get_screen_bindings (&prefs, &n_bindings);
- g_free (display->screen_bindings);
- display->screen_bindings = g_new0 (MetaKeyBinding, n_bindings);
+ int i;
+ int count;
- src = 0;
- dest = 0;
- while (src < n_bindings)
+ count = 0;
+ i = 0;
+ while (i < n_prefs)
{
- if (prefs[src].keysym != None)
+ if (prefs[i].keysym != None)
{
- display->screen_bindings[dest].name = prefs[src].name;
- display->screen_bindings[dest].keysym = prefs[src].keysym;
- display->screen_bindings[dest].modifiers = prefs[src].modifiers;
- display->screen_bindings[dest].mask = 0;
- display->screen_bindings[dest].keycode = 0;
-
- ++dest;
+ count += 1;
+
+ if (prefs[i].add_shift &&
+ (prefs[i].modifiers & META_VIRTUAL_SHIFT_MASK) == 0)
+ count += 1;
}
- ++src;
+ ++i;
}
- display->n_screen_bindings = dest;
-
- meta_topic (META_DEBUG_KEYBINDINGS,
- "%d screen bindings in table\n",
- display->n_screen_bindings);
+ return count;
}
static void
-rebuild_window_binding_table (MetaDisplay *display)
+rebuild_binding_table (MetaDisplay *display,
+ MetaKeyBinding **bindings_p,
+ int *n_bindings_p,
+ const MetaKeyPref *prefs,
+ int n_prefs)
{
- const MetaKeyPref *prefs;
int n_bindings;
int src, dest;
- meta_topic (META_DEBUG_KEYBINDINGS,
- "Rebuilding window binding table from preferences\n");
-
- meta_prefs_get_window_bindings (&prefs, &n_bindings);
- g_free (display->window_bindings);
- display->window_bindings = g_new0 (MetaKeyBinding, n_bindings);
+ n_bindings = count_bindings (prefs, n_prefs);
+ g_free (*bindings_p);
+ *bindings_p = g_new0 (MetaKeyBinding, n_bindings);
src = 0;
dest = 0;
- while (src < n_bindings)
+ while (src < n_prefs)
{
if (prefs[src].keysym != None)
{
- display->window_bindings[dest].name = prefs[src].name;
- display->window_bindings[dest].keysym = prefs[src].keysym;
- display->window_bindings[dest].modifiers = prefs[src].modifiers;
- display->window_bindings[dest].mask = 0;
- display->window_bindings[dest].keycode = 0;
+ (*bindings_p)[dest].name = prefs[src].name;
+ (*bindings_p)[dest].keysym = prefs[src].keysym;
+ (*bindings_p)[dest].modifiers = prefs[src].modifiers;
+ (*bindings_p)[dest].mask = 0;
+ (*bindings_p)[dest].keycode = 0;
++dest;
+
+ if (prefs[src].add_shift &&
+ (prefs[src].modifiers & META_VIRTUAL_SHIFT_MASK) == 0)
+ {
+ meta_topic (META_DEBUG_KEYBINDINGS,
+ "Binding %s also needs Shift grabbed\n",
+ prefs[src].name);
+
+ (*bindings_p)[dest].name = prefs[src].name;
+ (*bindings_p)[dest].keysym = prefs[src].keysym;
+ (*bindings_p)[dest].modifiers = prefs[src].modifiers |
+ META_VIRTUAL_SHIFT_MASK;
+ (*bindings_p)[dest].mask = 0;
+ (*bindings_p)[dest].keycode = 0;
+
+ ++dest;
+ }
}
++src;
}
- display->n_window_bindings = dest;
+ g_assert (dest == n_bindings);
+
+ *n_bindings_p = dest;
+
+ meta_topic (META_DEBUG_KEYBINDINGS,
+ " %d bindings in table\n",
+ *n_bindings_p);
+}
+
+static void
+rebuild_screen_binding_table (MetaDisplay *display)
+{
+ const MetaKeyPref *prefs;
+ int n_prefs;
+
+ meta_topic (META_DEBUG_KEYBINDINGS,
+ "Rebuilding screen binding table from preferences\n");
+
+ meta_prefs_get_screen_bindings (&prefs, &n_prefs);
+ rebuild_binding_table (display,
+ &display->screen_bindings,
+ &display->n_screen_bindings,
+ prefs, n_prefs);
+}
+static void
+rebuild_window_binding_table (MetaDisplay *display)
+{
+ const MetaKeyPref *prefs;
+ int n_prefs;
+
meta_topic (META_DEBUG_KEYBINDINGS,
- "%d window bindings in table\n",
- display->n_window_bindings);
+ "Rebuilding window binding table from preferences\n");
+
+ meta_prefs_get_window_bindings (&prefs, &n_prefs);
+ rebuild_binding_table (display,
+ &display->window_bindings,
+ &display->n_window_bindings,
+ prefs, n_prefs);
}
static void
@@ -854,7 +904,7 @@ meta_change_keygrab (MetaDisplay *display,
Window xwindow,
gboolean grab,
int keysym,
- int keycode,
+ unsigned int keycode,
int modmask)
{
int ignored_mask;
@@ -925,7 +975,7 @@ static void
meta_grab_key (MetaDisplay *display,
Window xwindow,
int keysym,
- int keycode,
+ unsigned int keycode,
int modmask)
{
meta_change_keygrab (display, xwindow, TRUE, keysym, keycode, modmask);
@@ -1422,6 +1472,11 @@ process_event (MetaKeyBinding *bindings,
{
const MetaKeyHandler *handler;
+ meta_topic (META_DEBUG_KEYBINDINGS,
+ "Binding keycode 0x%x mask 0x%x matches event 0x%x state 0x%x\n",
+ bindings[i].keycode, bindings[i].mask,
+ event->xkey.keycode, event->xkey.state);
+
if (bindings[i].handler)
handler = bindings[i].handler;
else
diff --git a/src/prefs.c b/src/prefs.c
index 512a555b..88e273a6 100644
--- a/src/prefs.c
+++ b/src/prefs.c
@@ -1338,100 +1338,100 @@ meta_prefs_set_num_workspaces (int n_workspaces)
/* Indexes must correspond to MetaKeybindingAction */
static MetaKeyPref screen_bindings[] = {
- { META_KEYBINDING_WORKSPACE_1, 0, 0 },
- { META_KEYBINDING_WORKSPACE_2, 0, 0 },
- { META_KEYBINDING_WORKSPACE_3, 0, 0 },
- { META_KEYBINDING_WORKSPACE_4, 0, 0 },
- { META_KEYBINDING_WORKSPACE_5, 0, 0 },
- { META_KEYBINDING_WORKSPACE_6, 0, 0 },
- { META_KEYBINDING_WORKSPACE_7, 0, 0 },
- { META_KEYBINDING_WORKSPACE_8, 0, 0 },
- { META_KEYBINDING_WORKSPACE_9, 0, 0 },
- { META_KEYBINDING_WORKSPACE_10, 0, 0 },
- { META_KEYBINDING_WORKSPACE_11, 0, 0 },
- { META_KEYBINDING_WORKSPACE_12, 0, 0 },
- { META_KEYBINDING_WORKSPACE_LEFT, 0, 0 },
- { META_KEYBINDING_WORKSPACE_RIGHT, 0, 0 },
- { META_KEYBINDING_WORKSPACE_UP, 0, 0 },
- { META_KEYBINDING_WORKSPACE_DOWN, 0, 0 },
- { META_KEYBINDING_SWITCH_WINDOWS, 0, 0 },
- { META_KEYBINDING_SWITCH_WINDOWS_BACKWARD, 0, 0 },
- { META_KEYBINDING_SWITCH_PANELS, 0, 0 },
- { META_KEYBINDING_SWITCH_PANELS_BACKWARD, 0, 0 },
- { META_KEYBINDING_CYCLE_WINDOWS, 0, 0 },
- { META_KEYBINDING_CYCLE_WINDOWS_BACKWARD, 0, 0 },
- { META_KEYBINDING_CYCLE_PANELS, 0, 0 },
- { META_KEYBINDING_CYCLE_PANELS_BACKWARD, 0, 0 },
- { META_KEYBINDING_SHOW_DESKTOP, 0, 0 },
- { META_KEYBINDING_COMMAND_1, 0, 0 },
- { META_KEYBINDING_COMMAND_2, 0, 0 },
- { META_KEYBINDING_COMMAND_3, 0, 0 },
- { META_KEYBINDING_COMMAND_4, 0, 0 },
- { META_KEYBINDING_COMMAND_5, 0, 0 },
- { META_KEYBINDING_COMMAND_6, 0, 0 },
- { META_KEYBINDING_COMMAND_7, 0, 0 },
- { META_KEYBINDING_COMMAND_8, 0, 0 },
- { META_KEYBINDING_COMMAND_9, 0, 0 },
- { META_KEYBINDING_COMMAND_10, 0, 0 },
- { META_KEYBINDING_COMMAND_11, 0, 0 },
- { META_KEYBINDING_COMMAND_12, 0, 0 },
- { META_KEYBINDING_COMMAND_13, 0, 0 },
- { META_KEYBINDING_COMMAND_14, 0, 0 },
- { META_KEYBINDING_COMMAND_15, 0, 0 },
- { META_KEYBINDING_COMMAND_16, 0, 0 },
- { META_KEYBINDING_COMMAND_17, 0, 0 },
- { META_KEYBINDING_COMMAND_18, 0, 0 },
- { META_KEYBINDING_COMMAND_19, 0, 0 },
- { META_KEYBINDING_COMMAND_20, 0, 0 },
- { META_KEYBINDING_COMMAND_21, 0, 0 },
- { META_KEYBINDING_COMMAND_22, 0, 0 },
- { META_KEYBINDING_COMMAND_23, 0, 0 },
- { META_KEYBINDING_COMMAND_24, 0, 0 },
- { META_KEYBINDING_COMMAND_25, 0, 0 },
- { META_KEYBINDING_COMMAND_26, 0, 0 },
- { META_KEYBINDING_COMMAND_27, 0, 0 },
- { META_KEYBINDING_COMMAND_28, 0, 0 },
- { META_KEYBINDING_COMMAND_29, 0, 0 },
- { META_KEYBINDING_COMMAND_30, 0, 0 },
- { META_KEYBINDING_COMMAND_31, 0, 0 },
- { META_KEYBINDING_COMMAND_32, 0, 0 },
- { NULL, 0, 0 }
+ { META_KEYBINDING_WORKSPACE_1, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_2, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_3, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_4, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_5, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_6, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_7, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_8, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_9, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_10, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_11, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_12, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_LEFT, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_RIGHT, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_UP, 0, 0, FALSE },
+ { META_KEYBINDING_WORKSPACE_DOWN, 0, 0, FALSE },
+ { META_KEYBINDING_SWITCH_WINDOWS, 0, 0, TRUE },
+ { META_KEYBINDING_SWITCH_WINDOWS_BACKWARD, 0, 0, TRUE },
+ { META_KEYBINDING_SWITCH_PANELS, 0, 0, TRUE },
+ { META_KEYBINDING_SWITCH_PANELS_BACKWARD, 0, 0, TRUE },
+ { META_KEYBINDING_CYCLE_WINDOWS, 0, 0, TRUE },
+ { META_KEYBINDING_CYCLE_WINDOWS_BACKWARD, 0, 0, TRUE },
+ { META_KEYBINDING_CYCLE_PANELS, 0, 0, TRUE },
+ { META_KEYBINDING_CYCLE_PANELS_BACKWARD, 0, 0, TRUE },
+ { META_KEYBINDING_SHOW_DESKTOP, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_1, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_2, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_3, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_4, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_5, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_6, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_7, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_8, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_9, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_10, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_11, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_12, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_13, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_14, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_15, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_16, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_17, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_18, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_19, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_20, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_21, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_22, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_23, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_24, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_25, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_26, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_27, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_28, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_29, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_30, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_31, 0, 0, FALSE },
+ { META_KEYBINDING_COMMAND_32, 0, 0, FALSE },
+ { NULL, 0, 0, FALSE}
};
static MetaKeyPref window_bindings[] = {
- { META_KEYBINDING_WINDOW_MENU, 0, 0 },
- { META_KEYBINDING_TOGGLE_FULLSCREEN, 0, 0 },
- { META_KEYBINDING_TOGGLE_MAXIMIZE, 0, 0 },
- { META_KEYBINDING_MAXIMIZE, 0, 0 },
- { META_KEYBINDING_UNMAXIMIZE, 0, 0 },
- { META_KEYBINDING_TOGGLE_SHADE, 0, 0 },
- { META_KEYBINDING_MINIMIZE, 0, 0 },
- { META_KEYBINDING_CLOSE, 0, 0 },
- { META_KEYBINDING_BEGIN_MOVE, 0, 0 },
- { META_KEYBINDING_BEGIN_RESIZE, 0, 0 },
- { META_KEYBINDING_TOGGLE_STICKY, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_1, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_2, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_3, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_4, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_5, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_6, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_7, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_8, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_9, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_10, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_11, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_12, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_LEFT, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_RIGHT, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_UP, 0, 0 },
- { META_KEYBINDING_MOVE_WORKSPACE_DOWN, 0, 0 },
- { META_KEYBINDING_RAISE_OR_LOWER, 0, 0 },
- { META_KEYBINDING_RAISE, 0, 0 },
- { META_KEYBINDING_LOWER, 0, 0 },
- { META_KEYBINDING_MAXIMIZE_VERTICALLY, 0, 0 },
- { META_KEYBINDING_MAXIMIZE_HORIZONTALLY, 0, 0 },
- { NULL, 0, 0 }
+ { META_KEYBINDING_WINDOW_MENU, 0, 0, FALSE },
+ { META_KEYBINDING_TOGGLE_FULLSCREEN, 0, 0, FALSE },
+ { META_KEYBINDING_TOGGLE_MAXIMIZE, 0, 0, FALSE },
+ { META_KEYBINDING_MAXIMIZE, 0, 0, FALSE },
+ { META_KEYBINDING_UNMAXIMIZE, 0, 0, FALSE },
+ { META_KEYBINDING_TOGGLE_SHADE, 0, 0, FALSE },
+ { META_KEYBINDING_MINIMIZE, 0, 0, FALSE },
+ { META_KEYBINDING_CLOSE, 0, 0, FALSE },
+ { META_KEYBINDING_BEGIN_MOVE, 0, 0, FALSE },
+ { META_KEYBINDING_BEGIN_RESIZE, 0, 0, FALSE },
+ { META_KEYBINDING_TOGGLE_STICKY, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_1, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_2, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_3, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_4, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_5, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_6, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_7, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_8, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_9, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_10, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_11, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_12, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_LEFT, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_RIGHT, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_UP, 0, 0, FALSE },
+ { META_KEYBINDING_MOVE_WORKSPACE_DOWN, 0, 0, FALSE },
+ { META_KEYBINDING_RAISE_OR_LOWER, 0, 0, FALSE },
+ { META_KEYBINDING_RAISE, 0, 0, FALSE },
+ { META_KEYBINDING_LOWER, 0, 0, FALSE },
+ { META_KEYBINDING_MAXIMIZE_VERTICALLY, 0, 0, FALSE },
+ { META_KEYBINDING_MAXIMIZE_HORIZONTALLY, 0, 0, FALSE },
+ { NULL, 0, 0, FALSE }
};
static void
diff --git a/src/prefs.h b/src/prefs.h
index 45e9d7fe..8a607f69 100644
--- a/src/prefs.h
+++ b/src/prefs.h
@@ -223,6 +223,8 @@ typedef struct
const char *name;
unsigned int keysym;
MetaVirtualModifier modifiers;
+ /* for keybindings that can have shift or not like Alt+Tab */
+ gboolean add_shift;
} MetaKeyPref;
void meta_prefs_get_screen_bindings (const MetaKeyPref **bindings,