summaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/window.c b/src/window.c
index 816952c..d2e9d92 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1298,7 +1298,8 @@ meta_window_show (MetaWindow *window)
meta_display_lookup_x_window (window->display,
window->xtransient_for);
- if (parent && parent->has_focus)
+ if (parent && parent->has_focus &&
+ (window->input || window->take_focus))
{
meta_topic (META_DEBUG_FOCUS,
"Focusing transient window '%s' since parent had focus\n",
@@ -1309,7 +1310,8 @@ meta_window_show (MetaWindow *window)
}
/* Always focus new windows in click-to-focus */
- if (meta_prefs_get_focus_mode () == META_FOCUS_MODE_CLICK)
+ if (meta_prefs_get_focus_mode () == META_FOCUS_MODE_CLICK &&
+ (window->input || window->take_focus))
{
switch (window->type)
{
@@ -4032,7 +4034,7 @@ update_wm_hints (MetaWindow *window)
window->xwindow);
if (hints)
{
- window->input = (hints->flags & InputHint) != 0;
+ window->input = ((hints->flags & InputHint) != 0) && hints->input;
if (hints->flags & StateHint)
window->initially_iconic = (hints->initial_state == IconicState);