summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElijah Newren <newren@math.utah.edu>2004-08-02 19:23:03 +0000
committerElijah Newren <newren@src.gnome.org>2004-08-02 19:23:03 +0000
commitcd09a27aa64590219fdfedee0df6f61befb6eee7 (patch)
tree4b29a8712918ee12a529c1f45336a15c651da566
parent38d02fff262382b4e5e020fabc991253747464bc (diff)
downloadmetacity-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--ChangeLog17
-rw-r--r--src/display.c5
-rw-r--r--src/workspace.c10
3 files changed, 29 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 1a72b326..5f2cf7ed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;