send synthetic configurenotify events also in response to MapRequest

2007-04-04  Elijah Newren  <newren gmail com>

	* src/window.c (meta_window_move_resize_internal): send synthetic
	configurenotify events also in response to MapRequest events when
	the window has a frame and the application specifies PPosition or
	UPosition hints.  I believe they are already sent for all other
	cases.  Should fix #322840.  Fixes the testcase at least.  :)

svn path=/trunk/; revision=3156
This commit is contained in:
Elijah Newren 2007-04-04 23:52:21 +00:00 committed by Elijah Newren
parent 921661e91d
commit dda3c2bee6
2 changed files with 21 additions and 1 deletions

View File

@ -1,4 +1,12 @@
2004-04-04 Elijah Newren <newren gmail com> 2007-04-04 Elijah Newren <newren gmail com>
* src/window.c (meta_window_move_resize_internal): send synthetic
configurenotify events also in response to MapRequest events when
the window has a frame and the application specifies PPosition or
UPosition hints. I believe they are already sent for all other
cases. Should fix #322840. Fixes the testcase at least. :)
2007-04-04 Elijah Newren <newren gmail com>
Fix lots of little issues with min/max constraints and size Fix lots of little issues with min/max constraints and size
increment constraints. Fixes #329152, #418395, and possibly increment constraints. Fixes #329152, #418395, and possibly

View File

@ -3270,6 +3270,18 @@ meta_window_move_resize_internal (MetaWindow *window,
if ((need_move_client || need_move_frame) && if ((need_move_client || need_move_frame) &&
!(need_resize_client || need_resize_frame)) !(need_resize_client || need_resize_frame))
need_configure_notify = TRUE; need_configure_notify = TRUE;
/* MapRequest events with a PPosition or UPosition hint with a frame
* are moved by metacity without resizing; send a configure notify
* in such cases. See #322840. (Note that window->constructing is
* only true iff this call is due to a MapRequest, and when
* PPosition/UPosition hints aren't set, metacity seems to send a
* ConfigureNotify anyway due to the above code.)
*/
if (window->constructing && window->frame &&
((window->size_hints.flags & PPosition) ||
(window->size_hints.flags & USPosition)))
need_configure_notify = TRUE;
/* The rest of this function syncs our new size/pos with X as /* The rest of this function syncs our new size/pos with X as
* efficiently as possible * efficiently as possible