summaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2002-06-04 22:26:52 +0000
committerHavoc Pennington <hp@src.gnome.org>2002-06-04 22:26:52 +0000
commit7fea25030431aba7a64816972b915446e3828dde (patch)
treed96d94948b95321c9344cab2ad350f0e29285f59 /src/window.c
parent6617781f4fc0f264a4a476a19e0e47e60895fe92 (diff)
downloadmetacity-7fea25030431aba7a64816972b915446e3828dde.tar.gz
metacity-7fea25030431aba7a64816972b915446e3828dde.tar.bz2
fix for how we read the input hint, from Hidetoshi Tajima
2002-06-04 Havoc Pennington <hp@redhat.com> * src/window.c (update_wm_hints): fix for how we read the input hint, from Hidetoshi Tajima (meta_window_show): from Hidetoshi, don't autofocus windows with input = FALSE wm_take_focus = FALSE when they first appear. We do allow these windows to be focused (so keynav works), but they don't get focused automatically. Now how do we keep them out of the task list?
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);