summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/stack.c2
-rw-r--r--src/core/window-private.h2
-rw-r--r--src/core/window.c10
3 files changed, 11 insertions, 3 deletions
diff --git a/src/core/stack.c b/src/core/stack.c
index e16014d1..bc0fa9d3 100644
--- a/src/core/stack.c
+++ b/src/core/stack.c
@@ -1243,7 +1243,7 @@ get_default_focus_window (MetaStack *stack,
if (window->unmanaging)
continue;
- if (!(window->input || window->take_focus))
+ if (!meta_window_is_focusable (window))
continue;
if (!meta_window_should_be_showing_on_workspace (window, workspace))
diff --git a/src/core/window-private.h b/src/core/window-private.h
index ff1a606c..61cef633 100644
--- a/src/core/window-private.h
+++ b/src/core/window-private.h
@@ -593,6 +593,8 @@ gboolean meta_window_client_message (MetaWindow *window,
void meta_window_set_focused_internal (MetaWindow *window,
gboolean focused);
+gboolean meta_window_is_focusable (MetaWindow *self);
+
void meta_window_set_current_workspace_hint (MetaWindow *window);
unsigned long meta_window_get_net_wm_desktop (MetaWindow *window);
diff --git a/src/core/window.c b/src/core/window.c
index 194f42b7..07886fb5 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -2044,7 +2044,7 @@ window_state_on_map (MetaWindow *window,
/* don't initially focus windows that are intended to not accept
* focus
*/
- if (!(window->input || window->take_focus))
+ if (!meta_window_is_focusable (window))
{
*takes_focus = FALSE;
return;
@@ -4418,7 +4418,7 @@ meta_window_focus (MetaWindow *window,
*/
if (window->frame &&
(window->shaded ||
- !(window->input || window->take_focus)))
+ !meta_window_is_focusable (window)))
{
if (window->frame)
{
@@ -5903,6 +5903,12 @@ meta_window_set_focused_internal (MetaWindow *window,
}
}
+gboolean
+meta_window_is_focusable (MetaWindow *self)
+{
+ return self->input || self->take_focus;
+}
+
static gboolean
process_property_notify (MetaWindow *window,
XPropertyEvent *event)