Don't allow removing a window from maximized or fullscreened state to

2005-11-22  Elijah Newren  <newren@gmail.com>

	Don't allow removing a window from maximized or fullscreened state
	to place the titlebar under the top panel.  Fixes #322075.

	* src/display.c (handle_net_moveresize_window): fix up previous
	comments now that I know a little more, modify the code just
	slightly to clarify that this is NOT a manual user move/resize
	operation

	* src/window.c (meta_window_unmaximize,
	  meta_window_unmake_fullscreen,
	  meta_window_shove_titlebar_onscreen):
	don't claim that these are manual user move/resize operations
This commit is contained in:
Elijah Newren 2005-11-22 15:48:30 +00:00 committed by Elijah Newren
parent 65168cf8c9
commit ca2fe384bc
3 changed files with 27 additions and 14 deletions

View File

@ -1,3 +1,18 @@
2005-11-22 Elijah Newren <newren@gmail.com>
Don't allow removing a window from maximized or fullscreened state
to place the titlebar under the top panel. Fixes #322075.
* src/display.c (handle_net_moveresize_window): fix up previous
comments now that I know a little more, modify the code just
slightly to clarify that this is NOT a manual user move/resize
operation
* src/window.c (meta_window_unmaximize,
meta_window_unmake_fullscreen,
meta_window_shove_titlebar_onscreen):
don't claim that these are manual user move/resize operations
2005-11-21 Elijah Newren <newren@gmail.com> 2005-11-21 Elijah Newren <newren@gmail.com>
* src/constraints.c (constrain_partially_onscreen): Relax the * src/constraints.c (constrain_partially_onscreen): Relax the

View File

@ -1338,14 +1338,12 @@ handle_net_moveresize_window (MetaDisplay* display,
if (window) if (window)
{ {
/* FIXME!!!! I'm pretty sure this is wrong except _maybe_ for the /* FIXME!!!! This function is _wrong_ except for the resize-only
* resize-only case; see comment at beginning of * case. Even then, it sucks to special case the code instead of
* meta_window_move_resize_internal(). Basically, this should act * factoring out common functionality with the configure reqest
* like a configure request--meaning that it should count as an app * handling, especially since the EWMH says this message should be
* specified change instead of a user one, and the position needs to * treated identically to a configure request with the exception of
* be fixed up with adjust_for_gravity(). In particular, * having a special gravity specified.
* meta_window_resize_with_gravity(), meta_window_resize(), and
* meta_window_move_resize() should probably NOT be called.
*/ */
meta_window_get_gravity_position (window, &x, &y); meta_window_get_gravity_position (window, &x, &y);
width = window->rect.width; width = window->rect.width;
@ -1369,20 +1367,20 @@ handle_net_moveresize_window (MetaDisplay* display,
{ {
if (gravity) if (gravity)
meta_window_resize_with_gravity (window, meta_window_resize_with_gravity (window,
TRUE, FALSE,
width, width,
height, height,
gravity); gravity);
else else
meta_window_resize (window, meta_window_resize (window,
TRUE, FALSE,
width, width,
height); height);
} }
else else
{ {
meta_window_move_resize (window, meta_window_move_resize (window,
TRUE, FALSE,
x, x,
y, y,
width, width,

View File

@ -2138,7 +2138,7 @@ meta_window_unmaximize (MetaWindow *window,
} }
meta_window_move_resize (window, meta_window_move_resize (window,
TRUE, FALSE,
window->saved_rect.x, window->saved_rect.x,
window->saved_rect.y, window->saved_rect.y,
window->saved_rect.width, window->saved_rect.width,
@ -2213,7 +2213,7 @@ meta_window_unmake_fullscreen (MetaWindow *window)
window->fullscreen = FALSE; window->fullscreen = FALSE;
meta_window_move_resize (window, meta_window_move_resize (window,
TRUE, FALSE,
window->saved_rect.x, window->saved_rect.x,
window->saved_rect.y, window->saved_rect.y,
window->saved_rect.width, window->saved_rect.width,
@ -6345,7 +6345,7 @@ meta_window_shove_titlebar_onscreen (MetaWindow *window)
newx = outer_rect.x + window->frame->child_x; newx = outer_rect.x + window->frame->child_x;
newy = outer_rect.y + window->frame->child_y; newy = outer_rect.y + window->frame->child_y;
meta_window_move_resize (window, meta_window_move_resize (window,
TRUE, FALSE,
newx, newx,
newy, newy,
window->rect.width, window->rect.width,