[Mono-winforms-list] PATCH: Correct layouting of child controls on windows with menus

Rafael Teixeira monoman at gmail.com
Fri Aug 19 00:43:05 EDT 2005


I've spent the whole day chasing why my StatusBar, docked at the
bottom of my form, was nearly out-of-sight on MWF. The problem was
that the ClientSize wasn't being correctly adjusted by subtracting the
Menu height. The attached diff corrects the two problems leading to
this and some other bits, with the Changelog entry:

2005-08-19  Rafael Teixeira <rafaelteixeirabr at hotmail.com> 
	-- Making Windows with Menus layout correctly --
	* XplatUI.cs : Just an updated console reminder
	* Form.cs : The first leg of the fix
		Menu setter - adjust Client Size as needed to make space for the menu
		SetClientSizeCore - doesn't call base version to be able to pass the 
			menu handle to XplatUI.CalculateWindowRect
	* Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
	* XplatUIX11.cs: The critical second leg of the fix
		GetWindowPos needs to use a recalculated client_rect
		so that resizing the window doesn't break layout of child controls. 
		Also a more complete rule to avoid X Server roundtrips in SetWindowPos


May I commit?

-- 
Rafael "Monoman" Teixeira
---------------------------------------
I'm trying to become a "Rosh Gadol" before my own eyes. 
See http://www.joelonsoftware.com/items/2004/12/06.html for enlightment.
It hurts!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mwfmenuxlayout.diff
Type: text/x-patch
Size: 6750 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-winforms-list/attachments/20050819/57851785/mwfmenuxlayout.bin


More information about the Mono-winforms-list mailing list