don't allow inventive users to open the menu while in an interactive grab (ie changing focus or desktop)
This commit is contained in:
parent
5b288939ab
commit
1ffd89672f
3 changed files with 9 additions and 1 deletions
|
@ -288,6 +288,11 @@ void keyboard_event(ObClient *client, const XEvent *e)
|
|||
}
|
||||
}
|
||||
|
||||
gboolean keyboard_interactively_grabbed()
|
||||
{
|
||||
return !!interactive_states;
|
||||
}
|
||||
|
||||
void keyboard_startup(gboolean reconfig)
|
||||
{
|
||||
grab_keys(TRUE);
|
||||
|
|
|
@ -43,6 +43,7 @@ gboolean keyboard_interactive_grab(guint state, struct _ObClient *client,
|
|||
struct _ObAction *action);
|
||||
gboolean keyboard_process_interactive_grab(const XEvent *e,
|
||||
struct _ObClient **client);
|
||||
gboolean keyboard_interactively_grabbed();
|
||||
|
||||
void keyboard_grab_for_client(struct _ObClient *c, gboolean grab);
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include "config.h"
|
||||
#include "screen.h"
|
||||
#include "menuframe.h"
|
||||
#include "keyboard.h"
|
||||
#include "geom.h"
|
||||
#include "misc.h"
|
||||
#include "client_menu.h"
|
||||
|
@ -286,7 +287,8 @@ void menu_show(gchar *name, gint x, gint y, ObClient *client)
|
|||
ObMenuFrame *frame;
|
||||
guint i;
|
||||
|
||||
if (!(self = menu_from_name(name))) return;
|
||||
if (!(self = menu_from_name(name))
|
||||
|| keyboard_interactively_grabbed()) return;
|
||||
|
||||
/* if the requested menu is already the top visible menu, then don't
|
||||
bother */
|
||||
|
|
Loading…
Reference in a new issue