summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2008-01-25 10:20:21 -0500
committerDana Jansens <danakj@orodu.net>2008-01-25 10:21:24 -0500
commit41aeb42af13774c11e5a23e51bf56fa053678b5a (patch)
treeab9f02fd6856207aa7cd20a10671c8ef0f25aaa7
parent1d9991a0cd9b04dfa96a19bc73b40f01651de478 (diff)
Create fake enter events in fewer situations - avoiding times that you don't actually want them. Ignore event serials without using XSync, so that we aren't doing an XSync 100 times per minute - slow!
-rw-r--r--openbox/actions.c7
-rw-r--r--openbox/event.c8
2 files changed, 6 insertions, 9 deletions
diff --git a/openbox/actions.c b/openbox/actions.c
index 0c84489a..b7f5dc2b 100644
--- a/openbox/actions.c
+++ b/openbox/actions.c
@@ -339,9 +339,7 @@ void actions_client_move(ObActionsData *data, gboolean start)
else if (config_focus_follow &&
data->context != OB_FRAME_CONTEXT_CLIENT)
{
- if (!data->button && data->client && !config_focus_under_mouse)
- event_end_ignore_all_enters(ignore_start);
- else {
+ if (data->button && config_focus_under_mouse) {
struct _ObClient *c;
/* usually this is sorta redundant, but with a press action
@@ -355,6 +353,7 @@ void actions_client_move(ObActionsData *data, gboolean start)
"mouse-event action");
event_enter_client(c);
}
- }
+ } else
+ event_end_ignore_all_enters(ignore_start);
}
}
diff --git a/openbox/event.c b/openbox/event.c
index fba5e86d..7d24640c 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -1928,8 +1928,7 @@ void event_halt_focus_delay(void)
gulong event_start_ignore_all_enters(void)
{
- XSync(ob_display, FALSE);
- return LastKnownRequestProcessed(ob_display);
+ return NextRequest(ob_display);
}
static void event_ignore_enter_range(gulong start, gulong end)
@@ -1948,13 +1947,12 @@ static void event_ignore_enter_range(gulong start, gulong end)
r->start, r->end);
/* increment the serial so we don't ignore events we weren't meant to */
- XSync(ob_display, FALSE);
+ PROP_ERASE(screen_support_win, motif_wm_hints);
}
void event_end_ignore_all_enters(gulong start)
{
- XSync(ob_display, FALSE);
- event_ignore_enter_range(start, LastKnownRequestProcessed(ob_display));
+ event_ignore_enter_range(start, NextRequest(ob_display));
}
static gboolean is_enter_focus_event_ignored(XEvent *e)