use client_can_focus from client_focus to always get the same result
This commit is contained in:
parent
4cb48bebb5
commit
c6fd3aa890
1 changed files with 17 additions and 25 deletions
|
@ -2241,7 +2241,7 @@ Client *client_focus_target(Client *self)
|
|||
|
||||
gboolean client_can_focus(Client *self)
|
||||
{
|
||||
/* same code as in client_focus */
|
||||
XEvent ev;
|
||||
|
||||
/* choose the correct target */
|
||||
self = client_focus_target(self);
|
||||
|
@ -2249,30 +2249,6 @@ gboolean client_can_focus(Client *self)
|
|||
if (!self->frame->visible)
|
||||
return FALSE;
|
||||
|
||||
if (!((self->can_focus || self->focus_notify) &&
|
||||
(self->desktop == screen_desktop ||
|
||||
self->desktop == DESKTOP_ALL) &&
|
||||
!self->iconic))
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean client_focus(Client *self)
|
||||
{
|
||||
XEvent ev;
|
||||
|
||||
/* same code as in client_can_focus */
|
||||
|
||||
/* choose the correct target */
|
||||
self = client_focus_target(self);
|
||||
|
||||
if (!self->frame->visible) {
|
||||
/* update the focus lists */
|
||||
focus_order_to_top(self);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!((self->can_focus || self->focus_notify) &&
|
||||
(self->desktop == screen_desktop ||
|
||||
self->desktop == DESKTOP_ALL) &&
|
||||
|
@ -2297,6 +2273,22 @@ gboolean client_focus(Client *self)
|
|||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean client_focus(Client *self)
|
||||
{
|
||||
/* choose the correct target */
|
||||
self = client_focus_target(self);
|
||||
|
||||
if (!client_can_focus(self)) {
|
||||
if (!self->frame->visible) {
|
||||
/* update the focus lists */
|
||||
focus_order_to_top(self);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (self->can_focus)
|
||||
/* RevertToPointerRoot causes much more headache than RevertToNone, so
|
||||
I choose to use it always, hopefully to find errors quicker, if any
|
||||
|
|
Loading…
Reference in a new issue