Fix edge snapping for multi-screen (non-xinerama) setups. #319425

2005-10-23  Elijah Newren  <newren@gmail.com>

	Fix edge snapping for multi-screen (non-xinerama) setups.  #319425

	* src/place.c (get_windows_showing_on_same_screen,
	get_vertical_edges, get_horizontal_edges): rename
	get_windows_on_same_workspace() to
	get_windows_showing_on_same_screen()

	* src/place.c (get_windows_showing_on_same_screen): exclude windows
	in the list that are on a different screen
This commit is contained in:
Elijah Newren 2005-10-23 21:19:22 +00:00 committed by Elijah Newren
parent 7c70749ae8
commit f2acdda740
2 changed files with 19 additions and 5 deletions

View File

@ -1,3 +1,15 @@
2005-10-23 Elijah Newren <newren@gmail.com>
Fix edge snapping for multi-screen (non-xinerama) setups. #319425
* src/place.c (get_windows_showing_on_same_screen,
get_vertical_edges, get_horizontal_edges): rename
get_windows_on_same_workspace() to
get_windows_showing_on_same_screen()
* src/place.c (get_windows_showing_on_same_screen): exclude windows
in the list that are on a different screen
2005-10-20 Elijah Newren <newren@gmail.com>
* HACKING: Clarify why METACITY_VERBOSE=1 is bad without

View File

@ -1057,8 +1057,8 @@ meta_window_place (MetaWindow *window,
* would be weird otherwise.
*/
static GSList*
get_windows_on_same_workspace (MetaWindow *window,
int *n_windows)
get_windows_showing_on_same_screen (MetaWindow *window,
int *n_windows)
{
GSList *windows;
GSList *all_windows;
@ -1075,7 +1075,9 @@ get_windows_on_same_workspace (MetaWindow *window,
{
MetaWindow *w = tmp->data;
if (meta_window_should_be_showing (w) && w != window)
if (meta_window_should_be_showing (w) &&
w->screen == window->screen &&
w != window)
{
windows = g_slist_prepend (windows, w);
++i;
@ -1132,7 +1134,7 @@ get_vertical_edges (MetaWindow *window,
MetaRectangle rect;
MetaRectangle work_area;
windows = get_windows_on_same_workspace (window, &n_windows);
windows = get_windows_showing_on_same_screen (window, &n_windows);
edges = g_array_sized_new (FALSE, FALSE, sizeof (int),
n_windows * 2 + 4 /* 4 = workspace/screen edges */
@ -1214,7 +1216,7 @@ get_horizontal_edges (MetaWindow *window,
MetaRectangle rect;
MetaRectangle work_area;
windows = get_windows_on_same_workspace (window, &n_windows);
windows = get_windows_showing_on_same_screen (window, &n_windows);
edges = g_array_sized_new (FALSE, FALSE, sizeof (int),
n_windows * 2 + 4 /* 4 = workspace/screen edges */