user32: Restore erroneously removed chunk of code

Dmitry Timoshkov dmitry at codeweavers.com
Thu Mar 15 06:27:15 CDT 2007


Hello,

one of my recent MDI patches has caused a regression in one of applications
I'm working on. This patch should fix it by restoring apparently erroneously
removed chunk of code.

Changelog:
    user32: Restore erroneously removed chunk of code.

---
 dlls/user32/mdi.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/dlls/user32/mdi.c b/dlls/user32/mdi.c
index de43ae3..0ee9a74 100644
--- a/dlls/user32/mdi.c
+++ b/dlls/user32/mdi.c
@@ -910,11 +910,19 @@ static BOOL MDI_RestoreFrameMenu( HWND frame, HWND hChild )
 {
     MENUITEMINFOW menuInfo;
     HMENU menu = GetMenu( frame );
+    INT nItems;
+    UINT iId;
 
     TRACE("frame %p, child %p\n", frame, hChild);
 
     if( !menu ) return 0;
 
+    /* if there is no system buttons then nothing to do */
+    nItems = GetMenuItemCount(menu) - 1;
+    iId = GetMenuItemID(menu, nItems);
+    if ( !(iId == SC_RESTORE || iId == SC_CLOSE) )
+        return 0;
+
     /*
      * Remove the system menu, If that menu is the icon of the window
      * as it is in win95, we have to delete the bitmap.
-- 
1.5.0.2






More information about the wine-patches mailing list