Allow a keybinding handler to ignore a keybinding

Previous commit moved policy for keybindings when grabbed down to
the handler, but did not replay the event if it is was not handled.
This commit adds the missing bit.

https://bugzilla.gnome.org/show_bug.cgi?id=613543
This commit is contained in:
Giovanni Campagna
2012-06-23 11:18:30 +02:00
parent fa679976e3
commit 53a17185a0
2 changed files with 143 additions and 83 deletions

View File

@@ -99,12 +99,12 @@ meta_key_binding_get_mask (MetaKeyBinding *binding)
* handler functions and have some kind of flag to say they're unbindable. * handler functions and have some kind of flag to say they're unbindable.
*/ */
static void handle_workspace_switch (MetaDisplay *display, static gboolean handle_workspace_switch (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
XEvent *event, XEvent *event,
MetaKeyBinding *binding, MetaKeyBinding *binding,
gpointer dummy); gpointer dummy);
static gboolean process_mouse_move_resize_grab (MetaDisplay *display, static gboolean process_mouse_move_resize_grab (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
@@ -1392,7 +1392,7 @@ primary_modifier_still_pressed (MetaDisplay *display,
return TRUE; return TRUE;
} }
static void static gboolean
invoke_handler (MetaDisplay *display, invoke_handler (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaKeyHandler *handler, MetaKeyHandler *handler,
@@ -1402,22 +1402,22 @@ invoke_handler (MetaDisplay *display,
{ {
if (handler->func) if (handler->func)
(* handler->func) (display, screen, return (* handler->func) (display, screen,
handler->flags & META_KEY_BINDING_PER_WINDOW ? handler->flags & META_KEY_BINDING_PER_WINDOW ?
window : NULL, window : NULL,
event, event,
binding, binding,
handler->user_data); handler->user_data);
else else
(* handler->default_func) (display, screen, return (* handler->default_func) (display, screen,
handler->flags & META_KEY_BINDING_PER_WINDOW ? handler->flags & META_KEY_BINDING_PER_WINDOW ?
window: NULL, window: NULL,
event, event,
binding, binding,
NULL); NULL);
} }
static void static gboolean
invoke_handler_by_name (MetaDisplay *display, invoke_handler_by_name (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
const char *handler_name, const char *handler_name,
@@ -1428,7 +1428,8 @@ invoke_handler_by_name (MetaDisplay *display,
handler = HANDLER (handler_name); handler = HANDLER (handler_name);
if (handler) if (handler)
invoke_handler (display, screen, handler, window, event, NULL); return invoke_handler (display, screen, handler, window, event, NULL);
return FALSE;
} }
/* now called from only one place, may be worth merging */ /* now called from only one place, may be worth merging */
@@ -1491,9 +1492,7 @@ process_event (MetaKeyBinding *bindings,
*/ */
display->allow_terminal_deactivation = TRUE; display->allow_terminal_deactivation = TRUE;
invoke_handler (display, screen, handler, window, event, &bindings[i]); return invoke_handler (display, screen, handler, window, event, &bindings[i]);
return TRUE;
} }
meta_topic (META_DEBUG_KEYBINDINGS, meta_topic (META_DEBUG_KEYBINDINGS,
@@ -2607,7 +2606,7 @@ process_tab_grab (MetaDisplay *display,
return key_used; return key_used;
} }
static void static gboolean
handle_switch_to_workspace (MetaDisplay *display, handle_switch_to_workspace (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *event_window, MetaWindow *event_window,
@@ -2632,7 +2631,7 @@ handle_switch_to_workspace (MetaDisplay *display,
*/ */
handle_workspace_switch (display, screen, event_window, event, binding, handle_workspace_switch (display, screen, event_window, event, binding,
dummy); dummy);
return; return TRUE;
} }
workspace = meta_screen_get_workspace_by_index (screen, which); workspace = meta_screen_get_workspace_by_index (screen, which);
@@ -2645,10 +2644,12 @@ handle_switch_to_workspace (MetaDisplay *display,
{ {
/* We could offer to create it I suppose */ /* We could offer to create it I suppose */
} }
return TRUE;
} }
static void static gboolean
handle_maximize_vertically (MetaDisplay *display, handle_maximize_vertically (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -2663,9 +2664,11 @@ handle_maximize_vertically (MetaDisplay *display,
else else
meta_window_maximize (window, META_MAXIMIZE_VERTICAL); meta_window_maximize (window, META_MAXIMIZE_VERTICAL);
} }
return TRUE;
} }
static void static gboolean
handle_maximize_horizontally (MetaDisplay *display, handle_maximize_horizontally (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -2680,6 +2683,8 @@ handle_maximize_horizontally (MetaDisplay *display,
else else
meta_window_maximize (window, META_MAXIMIZE_HORIZONTAL); meta_window_maximize (window, META_MAXIMIZE_HORIZONTAL);
} }
return TRUE;
} }
/* Move a window to a corner; to_bottom/to_right are FALSE for the /* Move a window to a corner; to_bottom/to_right are FALSE for the
@@ -2729,7 +2734,7 @@ handle_move_to_corner_backend (MetaDisplay *display,
new_y); new_y);
} }
static void static gboolean
handle_move_to_corner_nw (MetaDisplay *display, handle_move_to_corner_nw (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -2738,9 +2743,10 @@ handle_move_to_corner_nw (MetaDisplay *display,
gpointer dummy) gpointer dummy)
{ {
handle_move_to_corner_backend (display, screen, window, TRUE, TRUE, FALSE, FALSE, dummy); handle_move_to_corner_backend (display, screen, window, TRUE, TRUE, FALSE, FALSE, dummy);
return TRUE;
} }
static void static gboolean
handle_move_to_corner_ne (MetaDisplay *display, handle_move_to_corner_ne (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -2749,9 +2755,10 @@ handle_move_to_corner_ne (MetaDisplay *display,
gpointer dummy) gpointer dummy)
{ {
handle_move_to_corner_backend (display, screen, window, TRUE, TRUE, TRUE, FALSE, dummy); handle_move_to_corner_backend (display, screen, window, TRUE, TRUE, TRUE, FALSE, dummy);
return TRUE;
} }
static void static gboolean
handle_move_to_corner_sw (MetaDisplay *display, handle_move_to_corner_sw (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -2760,9 +2767,10 @@ handle_move_to_corner_sw (MetaDisplay *display,
gpointer dummy) gpointer dummy)
{ {
handle_move_to_corner_backend (display, screen, window, TRUE, TRUE, FALSE, TRUE, dummy); handle_move_to_corner_backend (display, screen, window, TRUE, TRUE, FALSE, TRUE, dummy);
return TRUE;
} }
static void static gboolean
handle_move_to_corner_se (MetaDisplay *display, handle_move_to_corner_se (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -2771,9 +2779,10 @@ handle_move_to_corner_se (MetaDisplay *display,
gpointer dummy) gpointer dummy)
{ {
handle_move_to_corner_backend (display, screen, window, TRUE, TRUE, TRUE, TRUE, dummy); handle_move_to_corner_backend (display, screen, window, TRUE, TRUE, TRUE, TRUE, dummy);
return TRUE;
} }
static void static gboolean
handle_move_to_side_n (MetaDisplay *display, handle_move_to_side_n (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -2782,9 +2791,10 @@ handle_move_to_side_n (MetaDisplay *display,
gpointer dummy) gpointer dummy)
{ {
handle_move_to_corner_backend (display, screen, window, FALSE, TRUE, FALSE, FALSE, dummy); handle_move_to_corner_backend (display, screen, window, FALSE, TRUE, FALSE, FALSE, dummy);
return TRUE;
} }
static void static gboolean
handle_move_to_side_s (MetaDisplay *display, handle_move_to_side_s (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -2793,9 +2803,10 @@ handle_move_to_side_s (MetaDisplay *display,
gpointer dummy) gpointer dummy)
{ {
handle_move_to_corner_backend (display, screen, window, FALSE, TRUE, FALSE, TRUE, dummy); handle_move_to_corner_backend (display, screen, window, FALSE, TRUE, FALSE, TRUE, dummy);
return TRUE;
} }
static void static gboolean
handle_move_to_side_e (MetaDisplay *display, handle_move_to_side_e (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -2804,9 +2815,10 @@ handle_move_to_side_e (MetaDisplay *display,
gpointer dummy) gpointer dummy)
{ {
handle_move_to_corner_backend (display, screen, window, TRUE, FALSE, TRUE, FALSE, dummy); handle_move_to_corner_backend (display, screen, window, TRUE, FALSE, TRUE, FALSE, dummy);
return TRUE;
} }
static void static gboolean
handle_move_to_side_w (MetaDisplay *display, handle_move_to_side_w (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -2815,9 +2827,10 @@ handle_move_to_side_w (MetaDisplay *display,
gpointer dummy) gpointer dummy)
{ {
handle_move_to_corner_backend (display, screen, window, TRUE, FALSE, FALSE, FALSE, dummy); handle_move_to_corner_backend (display, screen, window, TRUE, FALSE, FALSE, FALSE, dummy);
return TRUE;
} }
static void static gboolean
handle_move_to_center (MetaDisplay *display, handle_move_to_center (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -2843,6 +2856,8 @@ handle_move_to_center (MetaDisplay *display,
work_area.y + (work_area.height+frame_height-outer.height)/2, work_area.y + (work_area.height+frame_height-outer.height)/2,
window->rect.width, window->rect.width,
window->rect.height); window->rect.height);
return FALSE;
} }
static gboolean static gboolean
@@ -2959,7 +2974,7 @@ process_workspace_switch_grab (MetaDisplay *display,
return FALSE; return FALSE;
} }
static void static gboolean
handle_show_desktop (MetaDisplay *display, handle_show_desktop (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -2976,9 +2991,11 @@ handle_show_desktop (MetaDisplay *display,
} }
else else
meta_screen_show_desktop (screen, event->xkey.time); meta_screen_show_desktop (screen, event->xkey.time);
return TRUE;
} }
static void static gboolean
handle_panel (MetaDisplay *display, handle_panel (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3001,7 +3018,7 @@ handle_panel (MetaDisplay *display,
action_atom = display->atom__GNOME_PANEL_ACTION_RUN_DIALOG; action_atom = display->atom__GNOME_PANEL_ACTION_RUN_DIALOG;
break; break;
default: default:
return; return FALSE;
} }
ev.type = ClientMessage; ev.type = ClientMessage;
@@ -3028,9 +3045,11 @@ handle_panel (MetaDisplay *display,
(XEvent*) &ev); (XEvent*) &ev);
meta_error_trap_pop (display); meta_error_trap_pop (display);
return TRUE;
} }
static void static gboolean
handle_activate_window_menu (MetaDisplay *display, handle_activate_window_menu (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *event_window, MetaWindow *event_window,
@@ -3053,6 +3072,8 @@ handle_activate_window_menu (MetaDisplay *display,
0, 0,
event->xkey.time); event->xkey.time);
} }
return TRUE;
} }
static MetaGrabOp static MetaGrabOp
@@ -3199,7 +3220,7 @@ do_choose_window (MetaDisplay *display,
} }
} }
static void static gboolean
handle_switch (MetaDisplay *display, handle_switch (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *event_window, MetaWindow *event_window,
@@ -3211,9 +3232,10 @@ handle_switch (MetaDisplay *display,
do_choose_window (display, screen, event_window, event, binding, do_choose_window (display, screen, event_window, event, binding,
backwards, TRUE); backwards, TRUE);
return TRUE;
} }
static void static gboolean
handle_cycle (MetaDisplay *display, handle_cycle (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *event_window, MetaWindow *event_window,
@@ -3225,9 +3247,10 @@ handle_cycle (MetaDisplay *display,
do_choose_window (display, screen, event_window, event, binding, do_choose_window (display, screen, event_window, event, binding,
backwards, FALSE); backwards, FALSE);
return TRUE;
} }
static void static gboolean
handle_tab_popup_select (MetaDisplay *display, handle_tab_popup_select (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3236,9 +3259,10 @@ handle_tab_popup_select (MetaDisplay *display,
gpointer dummy) gpointer dummy)
{ {
/* Stub for custom handlers; no default implementation */ /* Stub for custom handlers; no default implementation */
return FALSE;
} }
static void static gboolean
handle_tab_popup_cancel (MetaDisplay *display, handle_tab_popup_cancel (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3247,9 +3271,10 @@ handle_tab_popup_cancel (MetaDisplay *display,
gpointer dummy) gpointer dummy)
{ {
/* Stub for custom handlers; no default implementation */ /* Stub for custom handlers; no default implementation */
return FALSE;
} }
static void static gboolean
handle_toggle_fullscreen (MetaDisplay *display, handle_toggle_fullscreen (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3261,9 +3286,11 @@ handle_toggle_fullscreen (MetaDisplay *display,
meta_window_unmake_fullscreen (window); meta_window_unmake_fullscreen (window);
else if (window->has_fullscreen_func) else if (window->has_fullscreen_func)
meta_window_make_fullscreen (window); meta_window_make_fullscreen (window);
return TRUE;
} }
static void static gboolean
handle_toggle_above (MetaDisplay *display, handle_toggle_above (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3275,9 +3302,11 @@ handle_toggle_above (MetaDisplay *display,
meta_window_unmake_above (window); meta_window_unmake_above (window);
else else
meta_window_make_above (window); meta_window_make_above (window);
return TRUE;
} }
static void static gboolean
handle_toggle_tiled (MetaDisplay *display, handle_toggle_tiled (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3315,9 +3344,11 @@ handle_toggle_tiled (MetaDisplay *display,
window->maximized_horizontally = FALSE; window->maximized_horizontally = FALSE;
meta_window_tile (window); meta_window_tile (window);
} }
return TRUE;
} }
static void static gboolean
handle_toggle_maximized (MetaDisplay *display, handle_toggle_maximized (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3333,9 +3364,11 @@ handle_toggle_maximized (MetaDisplay *display,
meta_window_maximize (window, meta_window_maximize (window,
META_MAXIMIZE_HORIZONTAL | META_MAXIMIZE_HORIZONTAL |
META_MAXIMIZE_VERTICAL); META_MAXIMIZE_VERTICAL);
return TRUE;
} }
static void static gboolean
handle_maximize (MetaDisplay *display, handle_maximize (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3347,9 +3380,11 @@ handle_maximize (MetaDisplay *display,
meta_window_maximize (window, meta_window_maximize (window,
META_MAXIMIZE_HORIZONTAL | META_MAXIMIZE_HORIZONTAL |
META_MAXIMIZE_VERTICAL); META_MAXIMIZE_VERTICAL);
return TRUE;
} }
static void static gboolean
handle_unmaximize (MetaDisplay *display, handle_unmaximize (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3361,9 +3396,11 @@ handle_unmaximize (MetaDisplay *display,
meta_window_unmaximize (window, meta_window_unmaximize (window,
META_MAXIMIZE_HORIZONTAL | META_MAXIMIZE_HORIZONTAL |
META_MAXIMIZE_VERTICAL); META_MAXIMIZE_VERTICAL);
return TRUE;
} }
static void static gboolean
handle_toggle_shaded (MetaDisplay *display, handle_toggle_shaded (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3375,9 +3412,11 @@ handle_toggle_shaded (MetaDisplay *display,
meta_window_unshade (window, event->xkey.time); meta_window_unshade (window, event->xkey.time);
else if (window->has_shade_func) else if (window->has_shade_func)
meta_window_shade (window, event->xkey.time); meta_window_shade (window, event->xkey.time);
return TRUE;
} }
static void static gboolean
handle_close (MetaDisplay *display, handle_close (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3387,9 +3426,11 @@ handle_close (MetaDisplay *display,
{ {
if (window->has_close_func) if (window->has_close_func)
meta_window_delete (window, event->xkey.time); meta_window_delete (window, event->xkey.time);
return TRUE;
} }
static void static gboolean
handle_minimize (MetaDisplay *display, handle_minimize (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3399,9 +3440,11 @@ handle_minimize (MetaDisplay *display,
{ {
if (window->has_minimize_func) if (window->has_minimize_func)
meta_window_minimize (window); meta_window_minimize (window);
return TRUE;
} }
static void static gboolean
handle_begin_move (MetaDisplay *display, handle_begin_move (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3416,9 +3459,11 @@ handle_begin_move (MetaDisplay *display,
FALSE, FALSE,
event->xkey.time); event->xkey.time);
} }
return TRUE;
} }
static void static gboolean
handle_begin_resize (MetaDisplay *display, handle_begin_resize (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3433,9 +3478,11 @@ handle_begin_resize (MetaDisplay *display,
FALSE, FALSE,
event->xkey.time); event->xkey.time);
} }
return TRUE;
} }
static void static gboolean
handle_toggle_on_all_workspaces (MetaDisplay *display, handle_toggle_on_all_workspaces (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3447,13 +3494,15 @@ handle_toggle_on_all_workspaces (MetaDisplay *display,
meta_window_unstick (window); meta_window_unstick (window);
else else
meta_window_stick (window); meta_window_stick (window);
return TRUE;
} }
static void static gboolean
handle_move_to_workspace (MetaDisplay *display, handle_move_to_workspace (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
XEvent *event, XEvent *event,
MetaKeyBinding *binding, MetaKeyBinding *binding,
gpointer dummy) gpointer dummy)
{ {
@@ -3470,11 +3519,11 @@ handle_move_to_workspace (MetaDisplay *display,
*/ */
if (window->always_sticky) if (window->always_sticky)
return; return FALSE;
workspace = NULL; workspace = NULL;
if (flip) if (flip)
{ {
workspace = meta_workspace_get_neighbor (screen->active_workspace, workspace = meta_workspace_get_neighbor (screen->active_workspace,
which); which);
} }
@@ -3482,7 +3531,7 @@ handle_move_to_workspace (MetaDisplay *display,
{ {
workspace = meta_screen_get_workspace_by_index (screen, which); workspace = meta_screen_get_workspace_by_index (screen, which);
} }
if (workspace) if (workspace)
{ {
/* Activate second, so the window is never unmapped */ /* Activate second, so the window is never unmapped */
@@ -3501,10 +3550,12 @@ handle_move_to_workspace (MetaDisplay *display,
else else
{ {
/* We could offer to create it I suppose */ /* We could offer to create it I suppose */
} }
return TRUE;
} }
static void static gboolean
handle_raise_or_lower (MetaDisplay *display, handle_raise_or_lower (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3520,7 +3571,7 @@ handle_raise_or_lower (MetaDisplay *display,
if (meta_stack_get_top (window->screen->stack) == window) if (meta_stack_get_top (window->screen->stack) == window)
{ {
meta_window_lower (window); meta_window_lower (window);
return; return TRUE;
} }
/* else check if windows in same layer are intersecting it */ /* else check if windows in same layer are intersecting it */
@@ -3540,7 +3591,7 @@ handle_raise_or_lower (MetaDisplay *display,
if (meta_rectangle_intersect (&win_rect, &above_rect, &tmp)) if (meta_rectangle_intersect (&win_rect, &above_rect, &tmp))
{ {
meta_window_raise (window); meta_window_raise (window);
return; return TRUE;
} }
} }
@@ -3549,9 +3600,10 @@ handle_raise_or_lower (MetaDisplay *display,
/* window is not obscured */ /* window is not obscured */
meta_window_lower (window); meta_window_lower (window);
return TRUE;
} }
static void static gboolean
handle_raise (MetaDisplay *display, handle_raise (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3560,9 +3612,11 @@ handle_raise (MetaDisplay *display,
gpointer dummy) gpointer dummy)
{ {
meta_window_raise (window); meta_window_raise (window);
return TRUE;
} }
static void static gboolean
handle_lower (MetaDisplay *display, handle_lower (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3571,9 +3625,11 @@ handle_lower (MetaDisplay *display,
gpointer dummy) gpointer dummy)
{ {
meta_window_lower (window); meta_window_lower (window);
return TRUE;
} }
static void static gboolean
handle_workspace_switch (MetaDisplay *display, handle_workspace_switch (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
@@ -3604,7 +3660,7 @@ handle_workspace_switch (MetaDisplay *display,
grab_mask, grab_mask,
event->xkey.time, event->xkey.time,
0, 0)) 0, 0))
return; return FALSE;
next = meta_workspace_get_neighbor (screen->active_workspace, motion); next = meta_workspace_get_neighbor (screen->active_workspace, motion);
g_assert (next); g_assert (next);
@@ -3627,17 +3683,21 @@ handle_workspace_switch (MetaDisplay *display,
if (grabbed_before_release && !meta_prefs_get_no_tab_popup ()) if (grabbed_before_release && !meta_prefs_get_no_tab_popup ())
meta_screen_workspace_popup_create (screen, next); meta_screen_workspace_popup_create (screen, next);
return TRUE;
} }
static void static gboolean
handle_set_spew_mark (MetaDisplay *display, handle_set_spew_mark (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
XEvent *event, XEvent *event,
MetaKeyBinding *binding, MetaKeyBinding *binding,
gpointer dummy) gpointer dummy)
{ {
meta_verbose ("-- MARK MARK MARK MARK --\n"); meta_verbose ("-- MARK MARK MARK MARK --\n");
return TRUE;
} }
void void

View File

@@ -251,12 +251,12 @@ typedef struct
* @event: (type gpointer): * @event: (type gpointer):
* *
*/ */
typedef void (* MetaKeyHandlerFunc) (MetaDisplay *display, typedef gboolean (* MetaKeyHandlerFunc) (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
MetaWindow *window, MetaWindow *window,
XEvent *event, XEvent *event,
MetaKeyBinding *binding, MetaKeyBinding *binding,
gpointer user_data); gpointer user_data);
typedef struct _MetaKeyHandler MetaKeyHandler; typedef struct _MetaKeyHandler MetaKeyHandler;