diff --git a/ChangeLog b/ChangeLog index 9040fbbe1..6fd66aa0b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,22 @@ +2004-12-19 Elijah Newren + + When snap-moving, don't snap to transients of minimized windows + since they are hidden. Fixes #157180 + + * src/place.c (get_windows_on_same_workspace): make the logic to + determine hidden windows more thorough by calling + meta_window_should_be_showing() + + * src/window.c (meta_window_should_be_showing): rename this + function from window_should_be_showing and also export it, + (implement_showing): + s/window_should_be_showing/meta_window_should_be_showing/, + (idle_calc_showing): + s/window_should_be_showing/meta_window_should_be_showing/ + + * src/window.h (meta_window_should_be_showing): Add this function + to the list so that it can be used in src/place.c + 2004-12-19 Elijah Newren Focus the desktop when showing it. Fixes #159257. diff --git a/src/place.c b/src/place.c index 58d962fa4..554fa877c 100644 --- a/src/place.c +++ b/src/place.c @@ -876,10 +876,7 @@ get_windows_on_same_workspace (MetaWindow *window, { MetaWindow *w = tmp->data; - if (!w->minimized && - w != window && - meta_window_visible_on_workspace (w, - window->screen->active_workspace)) + if (meta_window_should_be_showing (w) && w != window) { windows = g_slist_prepend (windows, w); ++i; diff --git a/src/window.c b/src/window.c index 0743160a9..97eea501d 100644 --- a/src/window.c +++ b/src/window.c @@ -103,7 +103,6 @@ static void ensure_mru_position_after (MetaWindow *window, void meta_window_move_resize_now (MetaWindow *window); static gboolean window_showing_on_its_workspace (MetaWindow *window); -static gboolean window_should_be_showing (MetaWindow *window); /* FIXME we need an abstraction that covers all these queues. */ @@ -1299,8 +1298,8 @@ window_showing_on_its_workspace (MetaWindow *window) return showing; } -static gboolean -window_should_be_showing (MetaWindow *window) +gboolean +meta_window_should_be_showing (MetaWindow *window) { gboolean on_workspace; @@ -1387,7 +1386,7 @@ implement_showing (MetaWindow *window, void meta_window_calc_showing (MetaWindow *window) { - implement_showing (window, window_should_be_showing (window)); + implement_showing (window, meta_window_should_be_showing (window)); } static guint calc_showing_idle = 0; @@ -1449,7 +1448,7 @@ idle_calc_showing (gpointer data) if (!window->placed) unplaced = g_slist_prepend (unplaced, window); - else if (window_should_be_showing (window)) + else if (meta_window_should_be_showing (window)) should_show = g_slist_prepend (should_show, window); else should_hide = g_slist_prepend (should_hide, window); diff --git a/src/window.h b/src/window.h index 5a2681aa4..e6fd89f79 100644 --- a/src/window.h +++ b/src/window.h @@ -385,6 +385,9 @@ void meta_window_resize_with_gravity (MetaWindow *window, void meta_window_fill_horizontal (MetaWindow *window); void meta_window_fill_vertical (MetaWindow *window); +/* Return whether the window should be currently mapped */ +gboolean meta_window_should_be_showing (MetaWindow *window); + /* This recalcs the window/frame size, and recalcs the frame * size/contents as well. */