diff --git a/ChangeLog b/ChangeLog index 5056fd0b0..b168d0e69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2002-10-18 Havoc Pennington + + * src/keybindings.c (do_choose_window): don't start the cycle + process if the binding for switching windows has no modifier bits, + just focus the window immediately. + + * src/prefs.c, src/keybindings.c: add a keybinding to move between + windows that goes in the opposite direction. This is mostly + useful if you want to bind unmodified keys to the switch windows + functions, e.g. if you have "Forward" and "Back" keys on your + keyboard. Patch from Shilad Sen + 2002-10-18 Havoc Pennington * src/prefs.c, src/frames.c: add "what happens when you double diff --git a/src/keybindings.c b/src/keybindings.c index 541504874..badc1520a 100644 --- a/src/keybindings.c +++ b/src/keybindings.c @@ -54,11 +54,21 @@ static void handle_tab_forward (MetaDisplay *display, MetaWindow *window, XEvent *event, MetaKeyBinding *binding); +static void handle_tab_backward (MetaDisplay *display, + MetaScreen *screen, + MetaWindow *window, + XEvent *event, + MetaKeyBinding *binding); static void handle_cycle_forward (MetaDisplay *display, MetaScreen *screen, MetaWindow *window, XEvent *event, MetaKeyBinding *binding); +static void handle_cycle_backward (MetaDisplay *display, + MetaScreen *screen, + MetaWindow *window, + XEvent *event, + MetaKeyBinding *binding); static void handle_toggle_fullscreen (MetaDisplay *display, MetaScreen *screen, MetaWindow *window, @@ -229,12 +239,20 @@ static const MetaKeyHandler screen_handlers[] = { GINT_TO_POINTER (META_MOTION_DOWN) }, { META_KEYBINDING_SWITCH_WINDOWS, handle_tab_forward, GINT_TO_POINTER (META_TAB_LIST_NORMAL) }, + { META_KEYBINDING_SWITCH_WINDOWS_BACKWARD, handle_tab_backward, + GINT_TO_POINTER (META_TAB_LIST_NORMAL) }, { META_KEYBINDING_SWITCH_PANELS, handle_tab_forward, GINT_TO_POINTER (META_TAB_LIST_DOCKS) }, + { META_KEYBINDING_SWITCH_PANELS_BACKWARD, handle_tab_backward, + GINT_TO_POINTER (META_TAB_LIST_DOCKS) }, { META_KEYBINDING_CYCLE_WINDOWS, handle_cycle_forward, GINT_TO_POINTER (META_TAB_LIST_NORMAL) }, + { META_KEYBINDING_CYCLE_WINDOWS_BACKWARD, handle_cycle_backward, + GINT_TO_POINTER (META_TAB_LIST_NORMAL) }, { META_KEYBINDING_CYCLE_PANELS, handle_cycle_forward, GINT_TO_POINTER (META_TAB_LIST_DOCKS) }, + { META_KEYBINDING_CYCLE_PANELS_BACKWARD, handle_cycle_backward, + GINT_TO_POINTER (META_TAB_LIST_DOCKS) }, { META_KEYBINDING_SHOW_DESKTOP, handle_toggle_desktop, NULL }, { META_KEYBINDING_COMMAND_1, handle_run_command, @@ -1903,6 +1921,8 @@ process_tab_grab (MetaDisplay *display, { MetaKeyBindingAction action; gboolean popup_not_showing; + gboolean backward; + gboolean key_used; if (screen != display->grab_screen) return FALSE; @@ -1961,22 +1981,48 @@ process_tab_grab (MetaDisplay *display, */ popup_not_showing = FALSE; + key_used = FALSE; + backward = FALSE; + switch (action) { case META_KEYBINDING_ACTION_CYCLE_PANELS: case META_KEYBINDING_ACTION_CYCLE_WINDOWS: popup_not_showing = TRUE; - /* FALL THRU */ + key_used = TRUE; + break; + case META_KEYBINDING_ACTION_CYCLE_PANELS_BACKWARD: + case META_KEYBINDING_ACTION_CYCLE_WINDOWS_BACKWARD: + popup_not_showing = TRUE; + key_used = TRUE; + backward = TRUE; + break; case META_KEYBINDING_ACTION_SWITCH_PANELS: case META_KEYBINDING_ACTION_SWITCH_WINDOWS: + key_used = TRUE; + break; + case META_KEYBINDING_ACTION_SWITCH_PANELS_BACKWARD: + case META_KEYBINDING_ACTION_SWITCH_WINDOWS_BACKWARD: + key_used = TRUE; + backward = TRUE; + break; + default: + break; + } + + if (key_used) + { meta_topic (META_DEBUG_KEYBINDINGS, "Key pressed, moving tab focus in popup\n"); if (event->xkey.state & ShiftMask) + backward = !backward; + + if (backward) meta_ui_tab_popup_backward (screen->tab_popup); else meta_ui_tab_popup_forward (screen->tab_popup); - + if (popup_not_showing) { /* We can't actually change window focus, due to the grab. @@ -1995,17 +2041,15 @@ process_tab_grab (MetaDisplay *display, meta_window_raise (target_window); } } - return TRUE; - break; - - default: - break; } - - /* end grab */ - meta_topic (META_DEBUG_KEYBINDINGS, - "Ending tabbing/cycling, uninteresting key pressed\n"); - return FALSE; + else + { + /* end grab */ + meta_topic (META_DEBUG_KEYBINDINGS, + "Ending tabbing/cycling, uninteresting key pressed\n"); + } + + return key_used; } static void @@ -2344,10 +2388,10 @@ do_choose_window (MetaDisplay *display, MetaWindow *event_window, XEvent *event, MetaKeyBinding *binding, + gboolean backward, gboolean show_popup) { MetaTabList type; - gboolean backward; MetaWindow *initial_selection; type = GPOINTER_TO_INT (binding->handler->data); @@ -2355,9 +2399,10 @@ do_choose_window (MetaDisplay *display, meta_topic (META_DEBUG_KEYBINDINGS, "Tab list = %d show_popup = %d\n", type, show_popup); - /* backward if shift is down, this isn't configurable */ - backward = (event->xkey.state & ShiftMask) != 0; - + /* reverse direction if shift is down */ + if (event->xkey.state & ShiftMask) + backward = !backward; + initial_selection = meta_display_get_tab_next (display, type, screen, @@ -2374,28 +2419,39 @@ do_choose_window (MetaDisplay *display, meta_topic (META_DEBUG_KEYBINDINGS, "Initially selecting window %s\n", initial_selection ? initial_selection->desc : "(none)"); - - if (initial_selection != NULL && - meta_display_begin_grab_op (display, - screen, - NULL, - show_popup ? - tab_op_from_tab_type (type) : - cycle_op_from_tab_type (type), - FALSE, - 0, - event->xkey.state & ~(display->ignored_modifier_mask), - event->xkey.time, - 0, 0)) - { - meta_ui_tab_popup_select (screen->tab_popup, - (MetaTabEntryKey) initial_selection->xwindow); - if (show_popup) - meta_ui_tab_popup_set_showing (screen->tab_popup, - TRUE); - else - meta_window_raise (initial_selection); + if (initial_selection != NULL) + { + if (binding->mask == 0) + { + /* If no modifiers, we can't do the "hold down modifier to keep + * moving" thing, so we just instaswitch by one window. + */ + meta_topic (META_DEBUG_FOCUS, "Activating %s due to switch/cycle windows with no modifiers\n", + initial_selection->desc); + meta_window_activate (initial_selection, event->xkey.time); + } + else if (meta_display_begin_grab_op (display, + screen, + NULL, + show_popup ? + tab_op_from_tab_type (type) : + cycle_op_from_tab_type (type), + FALSE, + 0, + binding->mask, + event->xkey.time, + 0, 0)) + { + meta_ui_tab_popup_select (screen->tab_popup, + (MetaTabEntryKey) initial_selection->xwindow); + + if (show_popup) + meta_ui_tab_popup_set_showing (screen->tab_popup, + TRUE); + else + meta_window_raise (initial_selection); + } } } @@ -2407,7 +2463,18 @@ handle_tab_forward (MetaDisplay *display, MetaKeyBinding *binding) { do_choose_window (display, screen, - event_window, event, binding, TRUE); + event_window, event, binding, FALSE, TRUE); +} + +static void +handle_tab_backward (MetaDisplay *display, + MetaScreen *screen, + MetaWindow *event_window, + XEvent *event, + MetaKeyBinding *binding) +{ + do_choose_window (display, screen, + event_window, event, binding, TRUE, TRUE); } static void @@ -2418,7 +2485,18 @@ handle_cycle_forward (MetaDisplay *display, MetaKeyBinding *binding) { do_choose_window (display, screen, - event_window, event, binding, FALSE); + event_window, event, binding, FALSE, FALSE); +} + +static void +handle_cycle_backward (MetaDisplay *display, + MetaScreen *screen, + MetaWindow *event_window, + XEvent *event, + MetaKeyBinding *binding) +{ + do_choose_window (display, screen, + event_window, event, binding, TRUE, FALSE); } static void diff --git a/src/metacity.schemas.in b/src/metacity.schemas.in index 1cf1b5079..b64b7e86e 100644 --- a/src/metacity.schemas.in +++ b/src/metacity.schemas.in @@ -874,7 +874,8 @@ you set The keybinding used to move focus between windows, using a popup window. - (Traditionally <Alt>Tab) + (Traditionally <Alt>Tab) Holding the "shift" key + while using this binding reverses the direction of movement. The format looks like "<Control>a" or "<Shift><Alt>F1. @@ -887,7 +888,32 @@ you set - + + + /schemas/apps/metacity/global_keybindings/switch_windows_backward + /apps/metacity/global_keybindings/switch_windows_backward + metacity + string + disabled + + Move focus backwards between windows using popup display + + The keybinding used to move focus backwards between windows, using + a popup window. Holding "shift" together with this + binding makes the direction go forward again. + + The format looks like "<Control>a" or + "<Shift><Alt>F1. + + The parser is fairly liberal and allows lower or upper case, + and also abbreviations such as "<Ctl>" and + "<Ctrl>". If you set the option to the special string + "disabled", then there will be no keybinding for this + action. + + + + /schemas/apps/metacity/global_keybindings/switch_panels /apps/metacity/global_keybindings/switch_panels @@ -913,17 +939,16 @@ you set - /schemas/apps/metacity/global_keybindings/cycle_windows - /apps/metacity/global_keybindings/cycle_windows + /schemas/apps/metacity/global_keybindings/switch_panels_backward + /apps/metacity/global_keybindings/switch_panels_backward metacity string - <Alt>Escape + disabled - Move focus between windows immediately + Move focus backwards between panels and the desktop using popup display - The keybinding used to move focus between windows without - a popup window. - (Traditionally <Alt>Escape) + The keybinding used to move focus backwards between panels + and the desktop, using a popup window. The format looks like "<Control>a" or "<Shift><Alt>F1. @@ -936,7 +961,58 @@ you set - + + + /schemas/apps/metacity/global_keybindings/cycle_windows + /apps/metacity/global_keybindings/cycle_windows + metacity + string + <Alt>Escape + + Move focus between windows immediately + + The keybinding used to move focus between windows without + a popup window. + (Traditionally <Alt>Escape) Holding the "shift" key + while using this binding reverses the direction of movement. + + The format looks like "<Control>a" or + "<Shift><Alt>F1. + + The parser is fairly liberal and allows lower or upper case, + and also abbreviations such as "<Ctl>" and + "<Ctrl>". If you set the option to the special string + "disabled", then there will be no keybinding for this + action. + + + + + + /schemas/apps/metacity/global_keybindings/cycle_windows_backward + /apps/metacity/global_keybindings/cycle_windows_backward + metacity + string + disabled + + Move focus backwards between windows immediately + + The keybinding used to move focus backwards between windows + without a popup window. Holding "shift" together with this + binding makes the direction go forward again. + + The format looks like "<Control>a" or + "<Shift><Alt>F1. + + The parser is fairly liberal and allows lower or upper case, + and also abbreviations such as "<Ctl>" and + "<Ctrl>". If you set the option to the special string + "disabled", then there will be no keybinding for this + action. + + + + /schemas/apps/metacity/global_keybindings/cycle_panels /apps/metacity/global_keybindings/cycle_panels @@ -961,6 +1037,30 @@ you set + + /schemas/apps/metacity/global_keybindings/cycle_panels_backward + /apps/metacity/global_keybindings/cycle_panels_backward + metacity + string + <Control><Alt>Escape + + Move focus backward between panels and the desktop immediately + + The keybinding used to move focus backwards between panels and + the desktop, without a popup window. + + The format looks like "<Control>a" or + "<Shift><Alt>F1. + + The parser is fairly liberal and allows lower or upper case, + and also abbreviations such as "<Ctl>" and + "<Ctrl>". If you set the option to the special string + "disabled", then there will be no keybinding for this + action. + + + + /schemas/apps/metacity/global_keybindings/show_desktop /apps/metacity/global_keybindings/show_desktop diff --git a/src/prefs.c b/src/prefs.c index efae54cf2..99a1c5df5 100644 --- a/src/prefs.c +++ b/src/prefs.c @@ -1164,9 +1164,13 @@ static MetaKeyPref screen_bindings[] = { { 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 }, diff --git a/src/prefs.h b/src/prefs.h index 0731a0209..d074ddbf7 100644 --- a/src/prefs.h +++ b/src/prefs.h @@ -76,71 +76,75 @@ MetaActionDoubleClickTitlebar meta_prefs_get_action_double_click_titlebar (void) void meta_prefs_set_num_workspaces (int n_workspaces); /* Screen bindings */ -#define META_KEYBINDING_WORKSPACE_1 "switch_to_workspace_1" -#define META_KEYBINDING_WORKSPACE_2 "switch_to_workspace_2" -#define META_KEYBINDING_WORKSPACE_3 "switch_to_workspace_3" -#define META_KEYBINDING_WORKSPACE_4 "switch_to_workspace_4" -#define META_KEYBINDING_WORKSPACE_5 "switch_to_workspace_5" -#define META_KEYBINDING_WORKSPACE_6 "switch_to_workspace_6" -#define META_KEYBINDING_WORKSPACE_7 "switch_to_workspace_7" -#define META_KEYBINDING_WORKSPACE_8 "switch_to_workspace_8" -#define META_KEYBINDING_WORKSPACE_9 "switch_to_workspace_9" -#define META_KEYBINDING_WORKSPACE_10 "switch_to_workspace_10" -#define META_KEYBINDING_WORKSPACE_11 "switch_to_workspace_11" -#define META_KEYBINDING_WORKSPACE_12 "switch_to_workspace_12" -#define META_KEYBINDING_WORKSPACE_LEFT "switch_to_workspace_left" -#define META_KEYBINDING_WORKSPACE_RIGHT "switch_to_workspace_right" -#define META_KEYBINDING_WORKSPACE_UP "switch_to_workspace_up" -#define META_KEYBINDING_WORKSPACE_DOWN "switch_to_workspace_down" -#define META_KEYBINDING_SWITCH_WINDOWS "switch_windows" -#define META_KEYBINDING_SWITCH_PANELS "switch_panels" -#define META_KEYBINDING_CYCLE_WINDOWS "cycle_windows" -#define META_KEYBINDING_CYCLE_PANELS "cycle_panels" -#define META_KEYBINDING_SHOW_DESKTOP "show_desktop" -#define META_KEYBINDING_COMMAND_1 "run_command_1" -#define META_KEYBINDING_COMMAND_2 "run_command_2" -#define META_KEYBINDING_COMMAND_3 "run_command_3" -#define META_KEYBINDING_COMMAND_4 "run_command_4" -#define META_KEYBINDING_COMMAND_5 "run_command_5" -#define META_KEYBINDING_COMMAND_6 "run_command_6" -#define META_KEYBINDING_COMMAND_7 "run_command_7" -#define META_KEYBINDING_COMMAND_8 "run_command_8" -#define META_KEYBINDING_COMMAND_9 "run_command_9" -#define META_KEYBINDING_COMMAND_10 "run_command_10" -#define META_KEYBINDING_COMMAND_11 "run_command_11" -#define META_KEYBINDING_COMMAND_12 "run_command_12" +#define META_KEYBINDING_WORKSPACE_1 "switch_to_workspace_1" +#define META_KEYBINDING_WORKSPACE_2 "switch_to_workspace_2" +#define META_KEYBINDING_WORKSPACE_3 "switch_to_workspace_3" +#define META_KEYBINDING_WORKSPACE_4 "switch_to_workspace_4" +#define META_KEYBINDING_WORKSPACE_5 "switch_to_workspace_5" +#define META_KEYBINDING_WORKSPACE_6 "switch_to_workspace_6" +#define META_KEYBINDING_WORKSPACE_7 "switch_to_workspace_7" +#define META_KEYBINDING_WORKSPACE_8 "switch_to_workspace_8" +#define META_KEYBINDING_WORKSPACE_9 "switch_to_workspace_9" +#define META_KEYBINDING_WORKSPACE_10 "switch_to_workspace_10" +#define META_KEYBINDING_WORKSPACE_11 "switch_to_workspace_11" +#define META_KEYBINDING_WORKSPACE_12 "switch_to_workspace_12" +#define META_KEYBINDING_WORKSPACE_LEFT "switch_to_workspace_left" +#define META_KEYBINDING_WORKSPACE_RIGHT "switch_to_workspace_right" +#define META_KEYBINDING_WORKSPACE_UP "switch_to_workspace_up" +#define META_KEYBINDING_WORKSPACE_DOWN "switch_to_workspace_down" +#define META_KEYBINDING_SWITCH_WINDOWS "switch_windows" +#define META_KEYBINDING_SWITCH_WINDOWS_BACKWARD "switch_windows_backward" +#define META_KEYBINDING_SWITCH_PANELS "switch_panels" +#define META_KEYBINDING_SWITCH_PANELS_BACKWARD "switch_panels_backward" +#define META_KEYBINDING_CYCLE_WINDOWS "cycle_windows" +#define META_KEYBINDING_CYCLE_WINDOWS_BACKWARD "cycle_windows_backward" +#define META_KEYBINDING_CYCLE_PANELS "cycle_panels" +#define META_KEYBINDING_CYCLE_PANELS_BACKWARD "cycle_panels_backward" +#define META_KEYBINDING_SHOW_DESKTOP "show_desktop" +#define META_KEYBINDING_COMMAND_1 "run_command_1" +#define META_KEYBINDING_COMMAND_2 "run_command_2" +#define META_KEYBINDING_COMMAND_3 "run_command_3" +#define META_KEYBINDING_COMMAND_4 "run_command_4" +#define META_KEYBINDING_COMMAND_5 "run_command_5" +#define META_KEYBINDING_COMMAND_6 "run_command_6" +#define META_KEYBINDING_COMMAND_7 "run_command_7" +#define META_KEYBINDING_COMMAND_8 "run_command_8" +#define META_KEYBINDING_COMMAND_9 "run_command_9" +#define META_KEYBINDING_COMMAND_10 "run_command_10" +#define META_KEYBINDING_COMMAND_11 "run_command_11" +#define META_KEYBINDING_COMMAND_12 "run_command_12" /* Window bindings */ -#define META_KEYBINDING_WINDOW_MENU "activate_window_menu" -#define META_KEYBINDING_TOGGLE_FULLSCREEN "toggle_fullscreen" -#define META_KEYBINDING_TOGGLE_MAXIMIZE "toggle_maximized" -#define META_KEYBINDING_MAXIMIZE "maximize" -#define META_KEYBINDING_UNMAXIMIZE "unmaximize" -#define META_KEYBINDING_TOGGLE_SHADE "toggle_shaded" -#define META_KEYBINDING_MINIMIZE "minimize" -#define META_KEYBINDING_CLOSE "close" -#define META_KEYBINDING_BEGIN_MOVE "begin_move" -#define META_KEYBINDING_BEGIN_RESIZE "begin_resize" -#define META_KEYBINDING_TOGGLE_STICKY "toggle_on_all_workspaces" -#define META_KEYBINDING_MOVE_WORKSPACE_1 "move_to_workspace_1" -#define META_KEYBINDING_MOVE_WORKSPACE_2 "move_to_workspace_2" -#define META_KEYBINDING_MOVE_WORKSPACE_3 "move_to_workspace_3" -#define META_KEYBINDING_MOVE_WORKSPACE_4 "move_to_workspace_4" -#define META_KEYBINDING_MOVE_WORKSPACE_5 "move_to_workspace_5" -#define META_KEYBINDING_MOVE_WORKSPACE_6 "move_to_workspace_6" -#define META_KEYBINDING_MOVE_WORKSPACE_7 "move_to_workspace_7" -#define META_KEYBINDING_MOVE_WORKSPACE_8 "move_to_workspace_8" -#define META_KEYBINDING_MOVE_WORKSPACE_9 "move_to_workspace_9" -#define META_KEYBINDING_MOVE_WORKSPACE_10 "move_to_workspace_10" -#define META_KEYBINDING_MOVE_WORKSPACE_11 "move_to_workspace_11" -#define META_KEYBINDING_MOVE_WORKSPACE_12 "move_to_workspace_12" -#define META_KEYBINDING_MOVE_WORKSPACE_LEFT "move_to_workspace_left" -#define META_KEYBINDING_MOVE_WORKSPACE_RIGHT "move_to_workspace_right" -#define META_KEYBINDING_MOVE_WORKSPACE_UP "move_to_workspace_up" -#define META_KEYBINDING_MOVE_WORKSPACE_DOWN "move_to_workspace_down" -#define META_KEYBINDING_RAISE_OR_LOWER "raise_or_lower" -#define META_KEYBINDING_RAISE "raise" -#define META_KEYBINDING_LOWER "lower" +#define META_KEYBINDING_WINDOW_MENU "activate_window_menu" +#define META_KEYBINDING_TOGGLE_FULLSCREEN "toggle_fullscreen" +#define META_KEYBINDING_TOGGLE_MAXIMIZE "toggle_maximized" +#define META_KEYBINDING_MAXIMIZE "maximize" +#define META_KEYBINDING_UNMAXIMIZE "unmaximize" +#define META_KEYBINDING_TOGGLE_SHADE "toggle_shaded" +#define META_KEYBINDING_MINIMIZE "minimize" +#define META_KEYBINDING_CLOSE "close" +#define META_KEYBINDING_BEGIN_MOVE "begin_move" +#define META_KEYBINDING_BEGIN_RESIZE "begin_resize" +#define META_KEYBINDING_TOGGLE_STICKY "toggle_on_all_workspaces" +#define META_KEYBINDING_MOVE_WORKSPACE_1 "move_to_workspace_1" +#define META_KEYBINDING_MOVE_WORKSPACE_2 "move_to_workspace_2" +#define META_KEYBINDING_MOVE_WORKSPACE_3 "move_to_workspace_3" +#define META_KEYBINDING_MOVE_WORKSPACE_4 "move_to_workspace_4" +#define META_KEYBINDING_MOVE_WORKSPACE_5 "move_to_workspace_5" +#define META_KEYBINDING_MOVE_WORKSPACE_6 "move_to_workspace_6" +#define META_KEYBINDING_MOVE_WORKSPACE_7 "move_to_workspace_7" +#define META_KEYBINDING_MOVE_WORKSPACE_8 "move_to_workspace_8" +#define META_KEYBINDING_MOVE_WORKSPACE_9 "move_to_workspace_9" +#define META_KEYBINDING_MOVE_WORKSPACE_10 "move_to_workspace_10" +#define META_KEYBINDING_MOVE_WORKSPACE_11 "move_to_workspace_11" +#define META_KEYBINDING_MOVE_WORKSPACE_12 "move_to_workspace_12" +#define META_KEYBINDING_MOVE_WORKSPACE_LEFT "move_to_workspace_left" +#define META_KEYBINDING_MOVE_WORKSPACE_RIGHT "move_to_workspace_right" +#define META_KEYBINDING_MOVE_WORKSPACE_UP "move_to_workspace_up" +#define META_KEYBINDING_MOVE_WORKSPACE_DOWN "move_to_workspace_down" +#define META_KEYBINDING_RAISE_OR_LOWER "raise_or_lower" +#define META_KEYBINDING_RAISE "raise" +#define META_KEYBINDING_LOWER "lower" typedef enum _MetaKeyBindingAction { @@ -162,9 +166,13 @@ typedef enum _MetaKeyBindingAction META_KEYBINDING_ACTION_WORKSPACE_UP, META_KEYBINDING_ACTION_WORKSPACE_DOWN, META_KEYBINDING_ACTION_SWITCH_WINDOWS, + META_KEYBINDING_ACTION_SWITCH_WINDOWS_BACKWARD, META_KEYBINDING_ACTION_SWITCH_PANELS, + META_KEYBINDING_ACTION_SWITCH_PANELS_BACKWARD, META_KEYBINDING_ACTION_CYCLE_WINDOWS, + META_KEYBINDING_ACTION_CYCLE_WINDOWS_BACKWARD, META_KEYBINDING_ACTION_CYCLE_PANELS, + META_KEYBINDING_ACTION_CYCLE_PANELS_BACKWARD, META_KEYBINDING_ACTION_SHOW_DESKTOP, META_KEYBINDING_ACTION_COMMAND_1, META_KEYBINDING_ACTION_COMMAND_2,