Take into account the appropriate list of windows when placing a new one.

2005-01-28  Elijah Newren  <newren@gmail.com>

	Take into account the appropriate list of windows when placing a
	new one.  Fixes #165381.

	* src/place.c: (meta_window_place): use
	meta_window_showing_on_its_workspace(w) instead of !w->minimzed,
	also take into account sticky windows

	* src/window.[ch]: rename window_showing_on_its_workspace to
	meta_window_showing_on_its_workspace and export it
This commit is contained in:
Elijah Newren 2005-01-28 14:48:47 +00:00 committed by Elijah Newren
parent 1e580d1e52
commit 5389f135ce
4 changed files with 22 additions and 8 deletions

View File

@ -1,3 +1,15 @@
2005-01-28 Elijah Newren <newren@gmail.com>
Take into account the appropriate list of windows when placing a
new one. Fixes #165381.
* src/place.c: (meta_window_place): use
meta_window_showing_on_its_workspace(w) instead of !w->minimzed,
also take into account sticky windows
* src/window.[ch]: rename window_showing_on_its_workspace to
meta_window_showing_on_its_workspace and export it
2005-01-27 Elijah Newren <newren@gmail.com>
Plug a pair of leaks. Fixes #165378

View File

@ -748,9 +748,10 @@ meta_window_place (MetaWindow *window,
{
MetaWindow *w = tmp->data;
if (!w->minimized &&
if (meta_window_showing_on_its_workspace (w) &&
w != window &&
window->workspace == w->workspace)
(window->workspace == w->workspace ||
window->on_all_workspaces || w->on_all_workspaces))
windows = g_list_prepend (windows, w);
tmp = tmp->next;

View File

@ -94,8 +94,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);
/* FIXME we need an abstraction that covers all these queues. */
void meta_window_unqueue_calc_showing (MetaWindow *window);
@ -1131,7 +1129,7 @@ set_net_wm_state (MetaWindow *window)
data[i] = window->display->atom_net_wm_state_fullscreen;
++i;
}
if (!window_showing_on_its_workspace (window) || window->shaded)
if (!meta_window_showing_on_its_workspace (window) || window->shaded)
{
data[i] = window->display->atom_net_wm_state_hidden;
++i;
@ -1195,8 +1193,8 @@ ancestor_is_minimized (MetaWindow *window)
return is_minimized;
}
static gboolean
window_showing_on_its_workspace (MetaWindow *window)
gboolean
meta_window_showing_on_its_workspace (MetaWindow *window)
{
gboolean showing;
gboolean is_desktop_or_dock;
@ -1280,7 +1278,7 @@ meta_window_should_be_showing (MetaWindow *window)
if (window->on_all_workspaces)
meta_verbose ("Window %s is on all workspaces\n", window->desc);
return on_workspace && window_showing_on_its_workspace (window);
return on_workspace && meta_window_showing_on_its_workspace (window);
}
static void

View File

@ -388,6 +388,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 would be showing if we were on its workspace */
gboolean meta_window_showing_on_its_workspace (MetaWindow *window);
/* Return whether the window should be currently mapped */
gboolean meta_window_should_be_showing (MetaWindow *window);