focusins can occur on windows that aren't clients when there's latency involved. wm_torture proved this point. fallback in that situation. also fallback when nothing is focused.
This commit is contained in:
parent
85a1a0cfb3
commit
dc41c78a90
1 changed files with 4 additions and 4 deletions
|
@ -433,7 +433,7 @@ static void event_process(const XEvent *ec, gpointer data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 1 /* focus debugging stuff */
|
#if 0 /* focus debugging stuff */
|
||||||
if (e->type == FocusIn || e->type == FocusOut) {
|
if (e->type == FocusIn || e->type == FocusOut) {
|
||||||
gint mode = e->xfocus.mode;
|
gint mode = e->xfocus.mode;
|
||||||
gint detail = e->xfocus.detail;
|
gint detail = e->xfocus.detail;
|
||||||
|
@ -664,7 +664,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
|
||||||
/* Look for the followup FocusIn */
|
/* Look for the followup FocusIn */
|
||||||
if (!XCheckIfEvent(ob_display, &ce, look_for_focusin, NULL)) {
|
if (!XCheckIfEvent(ob_display, &ce, look_for_focusin, NULL)) {
|
||||||
/* There is no FocusIn, move focus where we can still hear events*/
|
/* There is no FocusIn, move focus where we can still hear events*/
|
||||||
focus_set_client(NULL);
|
focus_fallback(OB_FOCUS_FALLBACK_NOFOCUS);
|
||||||
} else if (ce.xany.window == e->xany.window) {
|
} else if (ce.xany.window == e->xany.window) {
|
||||||
/* If focus didn't actually move anywhere, there is nothing to do*/
|
/* If focus didn't actually move anywhere, there is nothing to do*/
|
||||||
break;
|
break;
|
||||||
|
@ -674,8 +674,8 @@ static void event_handle_client(ObClient *client, XEvent *e)
|
||||||
event_process(&ce, &ed);
|
event_process(&ce, &ed);
|
||||||
if (ed.ignored) {
|
if (ed.ignored) {
|
||||||
/* The FocusIn was ignored, this means it was on a window
|
/* The FocusIn was ignored, this means it was on a window
|
||||||
that isn't a client? How did this happen? */
|
that isn't a client. */
|
||||||
g_assert_not_reached();
|
focus_fallback(OB_FOCUS_FALLBACK_NOFOCUS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue