summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElijah Newren <newren@math.utah.edu>2004-08-06 18:13:55 +0000
committerElijah Newren <newren@src.gnome.org>2004-08-06 18:13:55 +0000
commit385248044d4c0641db6646f505e9ac563d24f9c4 (patch)
tree6967124380123f9532b3bbfb17509c134c41aa5f
parent731ac41cd7336b706ffeb980b0f56df2b54bf706 (diff)
downloadmetacity-385248044d4c0641db6646f505e9ac563d24f9c4.tar.gz
prevent keyboard from "getting locked" upon workspace switch, by making
2004-08-06 Elijah Newren <newren@math.utah.edu> * src/workspace.c (meta_workspace_focus_default_window): prevent keyboard from "getting locked" upon workspace switch, by making sure that the no_focus_window has focus if no other window does. (fixes #147475)
-rw-r--r--ChangeLog7
-rw-r--r--src/workspace.c10
2 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 6c02f68e..265cf69e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2004-08-06 Elijah Newren <newren@math.utah.edu>
+
+ * src/workspace.c (meta_workspace_focus_default_window): prevent
+ keyboard from "getting locked" upon workspace switch, by making
+ sure that the no_focus_window has focus if no other window does.
+ (fixes #147475)
+
2004-08-05 Elijah Newren <newren@math.utah.edu>
Have newly mapped windows that are denied focus appear after the
diff --git a/src/workspace.c b/src/workspace.c
index a0c2a11e..d7010985 100644
--- a/src/workspace.c
+++ b/src/workspace.c
@@ -799,7 +799,15 @@ meta_workspace_focus_default_window (MetaWorkspace *workspace,
else if (meta_prefs_get_focus_mode () == META_FOCUS_MODE_SLOPPY)
meta_workspace_focus_mru_window (workspace, not_this_one);
else if (meta_prefs_get_focus_mode () == META_FOCUS_MODE_MOUSE)
- meta_topic (META_DEBUG_FOCUS, "No mouse window to focus found\n");
+ {
+ meta_topic (META_DEBUG_FOCUS,
+ "Setting focus to no_focus_window, since no valid "
+ "window to focus found.\n");
+ XSetInputFocus (workspace->screen->display->xdisplay,
+ workspace->screen->display->no_focus_window,
+ RevertToPointerRoot,
+ meta_display_get_current_time (workspace->screen->display));
+ }
}
}