summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-19 00:38:06 +0000
committerDana Jansens <danakj@orodu.net>2007-05-19 00:38:06 +0000
commit9752670920352bdd721d9958370edc569481d9e6 (patch)
tree56b33ac408892a593a30ed9e6a35386bfa5e2a6c
parent7ee54ff106ef190537d194cac331b70d8cc1bc80 (diff)
remove a function that is no longer used. and backwards boolean algebra was causing us to not ignore the right enter events
-rw-r--r--openbox/action.c2
-rw-r--r--openbox/client.c2
-rw-r--r--openbox/client_menu.c4
-rw-r--r--openbox/event.c28
-rw-r--r--openbox/event.h4
5 files changed, 13 insertions, 27 deletions
diff --git a/openbox/action.c b/openbox/action.c
index 2fd0372a..5237936e 100644
--- a/openbox/action.c
+++ b/openbox/action.c
@@ -47,7 +47,7 @@ static void client_action_end(union ActionData *data)
if (config_focus_follow)
if (data->any.context != OB_FRAME_CONTEXT_CLIENT) {
if (!data->any.button && data->any.c) {
- event_ignore_enters_leaving_window(data->any.c);
+ event_ignore_all_queued_enters();
} else {
ObClient *c;
diff --git a/openbox/client.c b/openbox/client.c
index 34af0848..0dd12214 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -565,7 +565,7 @@ void client_unmanage(ObClient *self)
/* ignore enter events from the unmap so it doesnt mess with the
focus */
- event_ignore_enters_leaving_window(self);
+ event_ignore_all_queued_enters();
mouse_grab_for_client(self, FALSE);
diff --git a/openbox/client_menu.c b/openbox/client_menu.c
index db00265c..f538eafd 100644
--- a/openbox/client_menu.c
+++ b/openbox/client_menu.c
@@ -154,8 +154,6 @@ static void client_menu_execute(ObMenuEntry *e, ObMenuFrame *f,
g_assert_not_reached();
}
- /* we have to ignore all queued enters because the menu has a grab, and the
- so the cursor isnt considered inside the client's window */
event_ignore_all_queued_enters();
/* update the menu cuz stuff can have changed */
@@ -217,8 +215,6 @@ static void layer_menu_execute(ObMenuEntry *e, ObMenuFrame *f,
g_assert_not_reached();
}
- /* we have to ignore all queued enters because the menu has a grab, and the
- so the cursor isnt considered inside the client's window */
event_ignore_all_queued_enters();
/* update the menu cuz stuff can have changed */
diff --git a/openbox/event.c b/openbox/event.c
index 0add317a..5175cbfb 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -884,7 +884,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
corresponding enter events. Pretend like the animating window
doesn't even exist..! */
if (frame_iconify_animating(client->frame))
- event_ignore_enters_leaving_window(client);
+ event_ignore_all_queued_enters();
ob_debug_type(OB_DEBUG_FOCUS,
"%sNotify mode %d detail %d on %lx\n",
@@ -1079,7 +1079,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
client_configure(client, x, y, w, h, FALSE, TRUE);
/* ignore enter events caused by these like ob actions do */
- event_ignore_enters_leaving_window(client);
+ event_ignore_all_queued_enters();
}
break;
}
@@ -1175,7 +1175,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
e->xclient.data.l[1], e->xclient.data.l[2]);
/* ignore enter events caused by these like ob actions do */
- event_ignore_enters_leaving_window(client);
+ event_ignore_all_queued_enters();
} else if (msgtype == prop_atoms.net_close_window) {
ob_debug("net_close_window for 0x%lx\n", client->window);
client_close(client);
@@ -1263,7 +1263,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
client_configure(client, x, y, w, h, FALSE, TRUE);
/* ignore enter events caused by these like ob actions do */
- event_ignore_enters_leaving_window(client);
+ event_ignore_all_queued_enters();
} else if (msgtype == prop_atoms.net_restack_window) {
if (e->xclient.data.l[0] != 2) {
ob_debug_type(OB_DEBUG_APP_BUGS,
@@ -1716,10 +1716,9 @@ static Bool event_look_for_enters(Display *d, XEvent *e, XPointer arg)
{
if (e->type == EnterNotify &&
/* these types aren't used for focusing */
- (e->xcrossing.mode == NotifyGrab ||
- e->xcrossing.mode == NotifyUngrab ||
- /*ignore enters when we're already in the window */
- e->xcrossing.detail == NotifyInferior))
+ !(e->xcrossing.mode == NotifyGrab ||
+ e->xcrossing.mode == NotifyUngrab ||
+ e->xcrossing.detail == NotifyInferior))
{
ObWindow *win;
@@ -1734,18 +1733,10 @@ static Bool event_look_for_enters(Display *d, XEvent *e, XPointer arg)
void event_ignore_all_queued_enters()
{
- event_ignore_enters_leaving_window(NULL);
-}
-
-void event_ignore_enters_leaving_window(ObClient *c)
-{
XEvent e;
XSync(ob_display, FALSE);
- ob_debug_type(OB_DEBUG_FOCUS, "want to ignore enters leaving window "
- "%s\n", c?c->title:"(all)");
-
/* count the events without disrupting them */
ignore_enter_focus = 0;
XCheckIfEvent(ob_display, &e, event_look_for_enters, NULL);
@@ -1753,7 +1744,10 @@ void event_ignore_enters_leaving_window(ObClient *c)
static gboolean is_enter_focus_event_ignored(XEvent *e)
{
- g_assert(e->type == EnterNotify);
+ g_assert(e->type == EnterNotify &&
+ !(e->xcrossing.mode == NotifyGrab ||
+ e->xcrossing.mode == NotifyUngrab ||
+ e->xcrossing.detail == NotifyInferior));
ob_debug_type(OB_DEBUG_FOCUS, "# enters ignored: %d\n",
ignore_enter_focus);
diff --git a/openbox/event.h b/openbox/event.h
index f794039d..542115fb 100644
--- a/openbox/event.h
+++ b/openbox/event.h
@@ -39,10 +39,6 @@ void event_shutdown(gboolean reconfig);
follows mouse */
void event_enter_client(struct _ObClient *client);
-/*! Make mouse focus not move if the mouse leaves this client from what
- has just transpired. */
-void event_ignore_enters_leaving_window(struct _ObClient *c);
-
/*! Make mouse focus not move at all from the stuff that has happened up
till now. */
void event_ignore_all_queued_enters();