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!
This commit is contained in:
parent
1d9991a0cd
commit
41aeb42af1
2 changed files with 6 additions and 9 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue