diff options
| author | Dana Jansens <danakj@orodu.net> | 2008-01-25 10:20:21 -0500 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2008-01-25 10:21:24 -0500 |
| commit | 41aeb42af13774c11e5a23e51bf56fa053678b5a (patch) | |
| tree | ab9f02fd6856207aa7cd20a10671c8ef0f25aaa7 | |
| parent | 1d9991a0cd9b04dfa96a19bc73b40f01651de478 (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.c | 7 | ||||
| -rw-r--r-- | openbox/event.c | 8 |
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) |
