diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-08-30 05:04:08 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-08-30 05:04:08 +0000 |
| commit | 3ff8eb037e9a0ea5d4c8ffd65831eb01a00f1de7 (patch) | |
| tree | 9bf9c8c14ed273c751e775a3759e85f33c5445c3 | |
| parent | 8a1e9c64d86b0a21db9edfe6b6a7221f07c1e5f5 (diff) | |
fix grabbing and not releasing with menus
| -rw-r--r-- | openbox/menuframe.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/openbox/menuframe.c b/openbox/menuframe.c index 34c7fd85..bfa2b4be 100644 --- a/openbox/menuframe.c +++ b/openbox/menuframe.c @@ -488,14 +488,14 @@ void menu_frame_hide(ObMenuFrame *self) self->parent->child = NULL; self->parent = NULL; + menu_frame_visible = g_list_delete_link(menu_frame_visible, it); + if (menu_frame_visible == NULL) { /* last menu shown */ grab_pointer(FALSE, None); grab_keyboard(FALSE); } - menu_frame_visible = g_list_delete_link(menu_frame_visible, it); - XUnmapWindow(ob_display, self->window); menu_frame_free(self); @@ -623,7 +623,18 @@ void menu_entry_frame_execute(ObMenuEntryFrame *self, gboolean hide) { ObAction *act = it->data; act->data.any.c = client; - act->func(&act->data); + + if (act->func == action_moveresize) + screen_pointer_pos(&act->data.moveresize.x, + &act->data.moveresize.y); + + if (!(act->func == action_cycle_windows || + act->func == action_desktop_dir || + act->func == action_send_to_desktop_dir || + act->func == action_showmenu)) + { + act->func(&act->data); + } } } } |
