diff options
author | Elijah Newren <newren@math.utah.edu> | 2004-08-02 19:23:03 +0000 |
---|---|---|
committer | Elijah Newren <newren@src.gnome.org> | 2004-08-02 19:23:03 +0000 |
commit | cd09a27aa64590219fdfedee0df6f61befb6eee7 (patch) | |
tree | 4b29a8712918ee12a529c1f45336a15c651da566 | |
parent | 38d02fff262382b4e5e020fabc991253747464bc (diff) | |
download | metacity-cd09a27aa64590219fdfedee0df6f61befb6eee7.tar.gz |
Fix some bugs (reported in #120100) regarding the focus window when using
2004-08-02 Elijah Newren <newren@math.utah.edu>
Fix some bugs (reported in #120100) regarding the focus window
when using the workspace switcher.
* src/display.c (event_callback): When switching workspaces due to
a _NET_CURRENT_DESKTOP message, make sure to focus the default
window as well.
* src/workspace.c (meta_workspace_focus_default_window,
meta_workspace_focus_mru_window): Make DOCK or DESKTOP windows
have lower priority than others when choosing a window to focus.
(For the former function, this means don't focus them at all; for
the latter, this means only focus them (via the
meta_workspace_focus_top_window call) if no other mru window can
be found.)
-rw-r--r-- | ChangeLog | 17 | ||||
-rw-r--r-- | src/display.c | 5 | ||||
-rw-r--r-- | src/workspace.c | 10 |
3 files changed, 29 insertions, 3 deletions
@@ -1,3 +1,20 @@ +2004-08-02 Elijah Newren <newren@math.utah.edu> + + Fix some bugs (reported in #120100) regarding the focus window + when using the workspace switcher. + + * src/display.c (event_callback): When switching workspaces due to + a _NET_CURRENT_DESKTOP message, make sure to focus the default + window as well. + + * src/workspace.c (meta_workspace_focus_default_window, + meta_workspace_focus_mru_window): Make DOCK or DESKTOP windows + have lower priority than others when choosing a window to focus. + (For the former function, this means don't focus them at all; for + the latter, this means only focus them (via the + meta_workspace_focus_top_window call) if no other mru window can + be found.) + 2004-07-31 Rob Adams <readams@readams.net> Fix bug that caused windows to not be focused on unminimizing diff --git a/src/display.c b/src/display.c index 4949ba04..6b0174c5 100644 --- a/src/display.c +++ b/src/display.c @@ -2056,7 +2056,10 @@ event_callback (XEvent *event, space); if (workspace) - meta_workspace_activate (workspace); + { + meta_workspace_activate (workspace); + meta_workspace_focus_default_window (workspace, NULL); + } else meta_verbose ("Don't know about workspace %d\n", space); } diff --git a/src/workspace.c b/src/workspace.c index 095d162c..a0c2a11e 100644 --- a/src/workspace.c +++ b/src/workspace.c @@ -787,7 +787,9 @@ meta_workspace_focus_default_window (MetaWorkspace *workspace, { MetaWindow * window; window = meta_screen_get_mouse_window (workspace->screen, not_this_one); - if (window) + if (window && + window->type != META_WINDOW_DOCK && + window->type != META_WINDOW_DESKTOP) { meta_topic (META_DEBUG_FOCUS, "Focusing mouse window %s\n", window->desc); @@ -817,7 +819,11 @@ meta_workspace_focus_mru_window (MetaWorkspace *workspace, while (tmp) { - if (((MetaWindow*) tmp->data) != not_this_one) + MetaWindow* tmp_window; + tmp_window = ((MetaWindow*) tmp->data); + if (tmp_window != not_this_one && + tmp_window->type != META_WINDOW_DOCK && + tmp_window->type != META_WINDOW_DESKTOP) { window = tmp->data; break; |