[ros-diffs] [fireball] 44800: - Always sync whole window position with SWM (winex11.drv does this way too). The only thing hacked for now is avoiding pos sync when SWP_NOREDRAW flag is passed (otherwise explorer's start menu is drawn cropped). Fixes FF3.5 start up in maximized mode.

fireball at svn.reactos.org fireball at svn.reactos.org
Tue Dec 29 15:57:55 CET 2009


Author: fireball
Date: Tue Dec 29 15:57:54 2009
New Revision: 44800

URL: http://svn.reactos.org/svn/reactos?rev=44800&view=rev
Log:
- Always sync whole window position with SWM (winex11.drv does this way too). The only thing hacked for now is avoiding pos sync when SWP_NOREDRAW flag is passed (otherwise explorer's start menu is drawn cropped). Fixes FF3.5 start up in maximized mode.

Modified:
    branches/arwinss/reactos/dll/win32/winent.drv/userdrv.c

Modified: branches/arwinss/reactos/dll/win32/winent.drv/userdrv.c
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winent.drv/userdrv.c?rev=44800&r1=44799&r2=44800&view=diff
==============================================================================
--- branches/arwinss/reactos/dll/win32/winent.drv/userdrv.c [iso-8859-1] (original)
+++ branches/arwinss/reactos/dll/win32/winent.drv/userdrv.c [iso-8859-1] Tue Dec 29 15:57:54 2009
@@ -899,8 +899,8 @@
 
     if (!data) return;
 
-    //TRACE( "win %x pos changed. new vis rect %s, old whole rect %s, swp_flags %x insert_after %x\n",
-    //       hwnd, wine_dbgstr_rect(visible_rect), wine_dbgstr_rect(&data->whole_rect), swp_flags, insert_after );
+    TRACE( "win %x pos changed. new vis rect %s, old whole rect %s, swp_flags %x insert_after %x\n",
+           hwnd, wine_dbgstr_rect(visible_rect), wine_dbgstr_rect(&data->whole_rect), swp_flags, insert_after );
 
     old_whole_rect  = data->whole_rect;
     old_client_rect = data->client_rect;
@@ -926,19 +926,20 @@
             /* if we have an SWM window the bits will be moved by the SWM */
             if (!data->whole_window)
                 ;//move_window_bits( data, &old_whole_rect, &data->whole_rect, &old_client_rect );
-            else
-                SwmPosChanged(hwnd, &data->whole_rect, &old_whole_rect);
             //FIXME("change1\n");
         }
         else
         {
             //move_window_bits( data, &valid_rects[1], &valid_rects[0], &old_client_rect );
-            //FIXME("change2\n");
-            SwmPosChanged(hwnd, &data->whole_rect, &old_whole_rect);
+            //FIXME("change2, vrects[0] %s, vrects[1] %s\n", wine_dbgstr_rect(&valid_rects[0]), wine_dbgstr_rect(&valid_rects[1]));
         }
     }
 
     if (!data->whole_window) return;
+
+    /* Sync position change */
+    if (!(swp_flags & SWP_NOREDRAW)) // HACK: When removing this explorer's start menu start to appear partially. Investigate!
+        SwmPosChanged(hwnd, &data->whole_rect, &old_whole_rect);
 
     /* Pass show/hide information to the window manager */
     if (swp_flags & SWP_SHOWWINDOW)




More information about the Ros-diffs mailing list