diff options
author | Elijah Newren <newren@math.utah.edu> | 2004-09-15 16:42:52 +0000 |
---|---|---|
committer | Elijah Newren <newren@src.gnome.org> | 2004-09-15 16:42:52 +0000 |
commit | 101a097f029f2c6e88106f7ff9d91f52cc9069f7 (patch) | |
tree | 5bef6ba5422941bb8a0b4c02c55300919998b871 | |
parent | 5ac6fcad730679e8f3b6fc41b501ef8b53bb06a8 (diff) | |
download | metacity-101a097f029f2c6e88106f7ff9d91f52cc9069f7.tar.gz |
Prevent focus inconsistencies by only providing one focus method (fixes
2004-09-15 Elijah Newren <newren@math.utah.edu>
Prevent focus inconsistencies by only providing one focus method
(fixes #151990)
* src/screen.c (meta_screen_show_desktop): remove call to
meta_workspace_focus_top_window (it was merely focusing a window
that was going to be hidden anyway, and likely the one that
already had focus)
* src/workspace.[hc]: remove meta_workspace_focus_mru_window and
meta_workspace_focus_top_window from workspace.h, make them static
functions in workspace.c
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | src/screen.c | 2 | ||||
-rw-r--r-- | src/workspace.c | 9 | ||||
-rw-r--r-- | src/workspace.h | 4 |
4 files changed, 14 insertions, 10 deletions
@@ -1,8 +1,15 @@ 2004-09-15 Elijah Newren <newren@math.utah.edu> + Prevent focus inconsistencies by only providing one focus method + (fixes #151990) + + * + +2004-09-15 Elijah Newren <newren@math.utah.edu> + Remove race condition for focus window choice on window close followed by rapid mouse movement in sloppy and mouse focus modes - (fixes #152000) + (partially fixes #152000) * src/window.c (meta_window_free): Don't increment the focus sentinel for windows being freed, (idle_calc_showing): don't diff --git a/src/screen.c b/src/screen.c index 1f19641f..695c335b 100644 --- a/src/screen.c +++ b/src/screen.c @@ -2239,8 +2239,6 @@ meta_screen_show_desktop (MetaScreen *screen) queue_windows_showing (screen); update_showing_desktop_hint (screen); - - meta_workspace_focus_top_window (screen->active_workspace, NULL); } void diff --git a/src/workspace.c b/src/workspace.c index 04f374c8..912a41bd 100644 --- a/src/workspace.c +++ b/src/workspace.c @@ -27,9 +27,12 @@ #include <X11/Xatom.h> #include <string.h> -void meta_workspace_queue_calc_showing (MetaWorkspace *workspace); - -static void set_active_space_hint (MetaScreen *screen); +void meta_workspace_queue_calc_showing (MetaWorkspace *workspace); +static void set_active_space_hint (MetaScreen *screen); +static void meta_workspace_focus_mru_window (MetaWorkspace *workspace, + MetaWindow *not_this_one); +static void meta_workspace_focus_top_window (MetaWorkspace *workspace, + MetaWindow *not_this_one); static void maybe_add_to_list (MetaScreen *screen, MetaWindow *window, gpointer data) diff --git a/src/workspace.h b/src/workspace.h index 5a45c60c..4dc0df9d 100644 --- a/src/workspace.h +++ b/src/workspace.h @@ -77,12 +77,8 @@ void meta_workspace_get_work_area_for_xinerama (MetaWorkspace *workspace, void meta_workspace_get_work_area_all_xineramas (MetaWorkspace *workspace, MetaRectangle *area); -void meta_workspace_focus_mru_window (MetaWorkspace *workspace, - MetaWindow *not_this_one); void meta_workspace_focus_default_window (MetaWorkspace *workspace, MetaWindow *not_this_one); -void meta_workspace_focus_top_window (MetaWorkspace *workspace, - MetaWindow *not_this_one); MetaWorkspace* meta_workspace_get_neighbor (MetaWorkspace *workspace, MetaMotionDirection direction); |