When snap-moving, don't snap to transients of minimized windows since they

2004-12-19  Elijah Newren  <newren@gmail.com>

	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
This commit is contained in:
Elijah Newren 2004-12-20 02:53:08 +00:00 committed by Elijah Newren
parent d8d77bd65b
commit d178f5e330
4 changed files with 27 additions and 9 deletions

View File

@ -1,3 +1,22 @@
2004-12-19 Elijah Newren <newren@gmail.com>
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 <newren@gmail.com> 2004-12-19 Elijah Newren <newren@gmail.com>
Focus the desktop when showing it. Fixes #159257. Focus the desktop when showing it. Fixes #159257.

View File

@ -876,10 +876,7 @@ get_windows_on_same_workspace (MetaWindow *window,
{ {
MetaWindow *w = tmp->data; MetaWindow *w = tmp->data;
if (!w->minimized && if (meta_window_should_be_showing (w) && w != window)
w != window &&
meta_window_visible_on_workspace (w,
window->screen->active_workspace))
{ {
windows = g_slist_prepend (windows, w); windows = g_slist_prepend (windows, w);
++i; ++i;

View File

@ -103,7 +103,6 @@ static void ensure_mru_position_after (MetaWindow *window,
void meta_window_move_resize_now (MetaWindow *window); void meta_window_move_resize_now (MetaWindow *window);
static gboolean window_showing_on_its_workspace (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. */ /* FIXME we need an abstraction that covers all these queues. */
@ -1299,8 +1298,8 @@ window_showing_on_its_workspace (MetaWindow *window)
return showing; return showing;
} }
static gboolean gboolean
window_should_be_showing (MetaWindow *window) meta_window_should_be_showing (MetaWindow *window)
{ {
gboolean on_workspace; gboolean on_workspace;
@ -1387,7 +1386,7 @@ implement_showing (MetaWindow *window,
void void
meta_window_calc_showing (MetaWindow *window) 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; static guint calc_showing_idle = 0;
@ -1449,7 +1448,7 @@ idle_calc_showing (gpointer data)
if (!window->placed) if (!window->placed)
unplaced = g_slist_prepend (unplaced, window); 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); should_show = g_slist_prepend (should_show, window);
else else
should_hide = g_slist_prepend (should_hide, window); should_hide = g_slist_prepend (should_hide, window);

View File

@ -385,6 +385,9 @@ void meta_window_resize_with_gravity (MetaWindow *window,
void meta_window_fill_horizontal (MetaWindow *window); void meta_window_fill_horizontal (MetaWindow *window);
void meta_window_fill_vertical (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 /* This recalcs the window/frame size, and recalcs the frame
* size/contents as well. * size/contents as well.
*/ */