diff --git a/ChangeLog b/ChangeLog index 32214b782..903bd3ac4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2002-01-15 Havoc Pennington + + * src/keybindings.c (handle_tab_backward): fix crash + when grab failed due to another operation in progress + (handle_tab_forward): fix crash when grab failed + 2002-01-10 Havoc Pennington * src/frame.c (meta_window_destroy_frame): only bump diff --git a/src/keybindings.c b/src/keybindings.c index 8d2ce2a6e..c1b0f9a08 100644 --- a/src/keybindings.c +++ b/src/keybindings.c @@ -980,20 +980,21 @@ handle_tab_forward (MetaDisplay *display, { meta_verbose ("Starting tab forward, showing popup\n"); - meta_display_begin_grab_op (window->display, - display->focus_window ? - display->focus_window : window, - META_GRAB_OP_KEYBOARD_TABBING, - FALSE, - 0, 0, - event->xkey.time, - 0, 0); - - meta_ui_tab_popup_select (window->screen->tab_popup, - window->xwindow); - /* only after selecting proper window */ - meta_ui_tab_popup_set_showing (window->screen->tab_popup, - TRUE); + if (meta_display_begin_grab_op (window->display, + display->focus_window ? + display->focus_window : window, + META_GRAB_OP_KEYBOARD_TABBING, + FALSE, + 0, 0, + event->xkey.time, + 0, 0)) + { + meta_ui_tab_popup_select (window->screen->tab_popup, + window->xwindow); + /* only after selecting proper window */ + meta_ui_tab_popup_set_showing (window->screen->tab_popup, + TRUE); + } } } @@ -1040,20 +1041,21 @@ handle_tab_backward (MetaDisplay *display, { meta_verbose ("Starting tab backward, showing popup\n"); - meta_display_begin_grab_op (window->display, - display->focus_window ? - display->focus_window : window, - META_GRAB_OP_KEYBOARD_TABBING, - FALSE, - 0, 0, - event->xkey.time, - 0, 0); - - meta_ui_tab_popup_select (window->screen->tab_popup, - window->xwindow); - /* only after selecting proper window */ - meta_ui_tab_popup_set_showing (window->screen->tab_popup, - TRUE); + if (meta_display_begin_grab_op (window->display, + display->focus_window ? + display->focus_window : window, + META_GRAB_OP_KEYBOARD_TABBING, + FALSE, + 0, 0, + event->xkey.time, + 0, 0)) + { + meta_ui_tab_popup_select (window->screen->tab_popup, + window->xwindow); + /* only after selecting proper window */ + meta_ui_tab_popup_set_showing (window->screen->tab_popup, + TRUE); + } } }