Allow struts larger than 1/2 the screen width/height, as long as there's a

2004-08-15  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_update_struts): Allow struts larger
	than 1/2 the screen width/height, as long as there's a minimum
	sized gap between them.  Patch from Bill Haneman <billh@gnome.org>
	for bug #144126.
This commit is contained in:
Rob Adams 2004-08-15 15:26:30 +00:00 committed by Rob Adams
parent 8100b93048
commit caaad4449c
2 changed files with 34 additions and 18 deletions

View File

@ -1,3 +1,10 @@
2004-08-15 Rob Adams <readams@readams.net>
* src/window.c (meta_window_update_struts): Allow struts larger
than 1/2 the screen width/height, as long as there's a minimum
sized gap between them. Patch from Bill Haneman <billh@gnome.org>
for bug #144126.
2004-08-13 Gurban M. Tewekgeli <gmtavakkoli@yahoo.com>
* po/tk.po: Added Turkmen translation.
* configure.in: Added "tk" to ALL_LINGUAS.

View File

@ -5248,7 +5248,14 @@ meta_window_update_struts (MetaWindow *window)
MetaRectangle new_top;
MetaRectangle new_bottom;
#define MIN_EMPTY (75)
/**
* This gap must be kept to at least 75 pixels, since otherwise
* struts on opposite sides of the screen left/right could interfere
* in each other in a way that makes it so there is no feasible
* solution to the constraint satisfaction problem. See
* constraints.c.
*/
#define MIN_EMPTY (76)
meta_verbose ("Updating struts for %s\n", window->desc);
@ -5298,15 +5305,16 @@ meta_window_update_struts (MetaWindow *window)
}
else
{
int gap;
gap = window->screen->width - struts[0] - struts[1];
gap -= MIN_EMPTY;
new_has_struts = TRUE;
new_left.width = MIN ((int)struts[0],
window->screen->width/2 - MIN_EMPTY);
new_right.width = MIN ((int)struts[1],
window->screen->width/2 - MIN_EMPTY);
new_top.height = MIN ((int)struts[2],
window->screen->height/2 - MIN_EMPTY);
new_bottom.height = MIN ((int)struts[3],
window->screen->height/2 - MIN_EMPTY);
new_left.width = (int) struts[0] + MIN (0, gap/2);
new_right.width = (int) struts[1] + MIN (0, gap/2);
gap = window->screen->width - struts[0] - struts[1];
gap -= MIN_EMPTY;
new_top.height = (int)struts[2] + MIN (0, gap/2);
new_bottom.height = (int)struts[3] + MIN (0, gap/2);
new_right.x = window->screen->width -
new_right.width;
new_bottom.y = window->screen->height -
@ -5350,22 +5358,23 @@ meta_window_update_struts (MetaWindow *window)
}
else
{
int gap;
gap = window->screen->width - struts[0] - struts[1];
gap -= MIN_EMPTY;
new_has_struts = TRUE;
new_left.width = MIN ((int)struts[0],
window->screen->width/2 - MIN_EMPTY);
new_right.width = MIN ((int)struts[1],
window->screen->width/2 - MIN_EMPTY);
new_top.height = MIN ((int)struts[2],
window->screen->height/2 - MIN_EMPTY);
new_bottom.height = MIN ((int)struts[3],
window->screen->height/2 - MIN_EMPTY);
new_left.width = (int) struts[0] + MIN (0, gap/2);
new_right.width = (int) struts[1] + MIN (0, gap/2);
gap = window->screen->width - struts[0] - struts[1];
gap -= MIN_EMPTY;
new_top.height = (int)struts[2] + MIN (0, gap/2);
new_bottom.height = (int)struts[3] + MIN (0, gap/2);
new_left.x = 0;
new_right.x = window->screen->width -
new_right.width;
new_top.y = 0;
new_bottom.y = window->screen->height -
new_bottom.height;
meta_verbose ("_NET_WM_STRUT struts %d %d %d %d for window %s\n",
new_left.width,
new_right.width,