summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-08-30 05:04:08 +0000
committerDana Jansens <danakj@orodu.net>2003-08-30 05:04:08 +0000
commit3ff8eb037e9a0ea5d4c8ffd65831eb01a00f1de7 (patch)
tree9bf9c8c14ed273c751e775a3759e85f33c5445c3 /openbox
parent8a1e9c64d86b0a21db9edfe6b6a7221f07c1e5f5 (diff)
fix grabbing and not releasing with menus
Diffstat (limited to 'openbox')
-rw-r--r--openbox/menuframe.c17
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);
+ }
}
}
}