Fix system metrics 2

Francois Gouget fgouget at free.fr
Thu Oct 31 20:19:16 CST 2002


Currently SM_CYMAXIMIZED is computed as 'height of screen -45'.
Now, why -45?

The reason is that this value is based on a default Win95 installation
which has the 'start menu' at the bottom. But even on Windows the size
of this menu bar can vary (the user can resize it), and I have even seen
users put it on the side! On Linux it may be there or not be there
depending on the Windows manager/desktop (Gnome/KDE). Similarly its size
changes from distribution to distribution. So until we can query the
window manager/desktop as to the actual size of the reserved area I
think we should just hard-code SM_CYMAXIMIZED at 'height of screen + 2
borders', just like for SM_CXMAXIMIZED.


 Changelog:

 * windows/sysmetrics.c

   Compute SM_CYMAXIMIZED purely based on the screen height until we
know how to take into account 'start menus' correctly.


-- 
Francois Gouget         fgouget at free.fr        http://fgouget.free.fr/
              Linux: Because rebooting is for adding new hardware


Index: windows/sysmetrics.c
===================================================================
RCS file: /home/wine/wine/windows/sysmetrics.c,v
retrieving revision 1.30
diff -u -r1.30 sysmetrics.c
--- windows/sysmetrics.c	28 Aug 2002 00:54:53 -0000	1.30
+++ windows/sysmetrics.c	1 Nov 2002 01:50:35 -0000
@@ -231,14 +231,10 @@
     sysMetrics[SM_CYMINIMIZED] = 24;

     /* FIXME: How do I calculate these? */
-    sysMetrics[SM_CXMAXTRACK] =
-	sysMetrics[SM_CXSCREEN] + 4 + 2 * sysMetrics[SM_CXFRAME];
-    sysMetrics[SM_CYMAXTRACK] =
-	sysMetrics[SM_CYSCREEN] + 4 + 2 * sysMetrics[SM_CYFRAME];
-    sysMetrics[SM_CXMAXIMIZED] =
-	sysMetrics[SM_CXSCREEN] + 2 * sysMetrics[SM_CXFRAME];
-    sysMetrics[SM_CYMAXIMIZED] =
-	sysMetrics[SM_CYSCREEN] - 45;
+    sysMetrics[SM_CXMAXTRACK] = sysMetrics[SM_CXSCREEN] + 4 + 2 * sysMetrics[SM_CXFRAME];
+    sysMetrics[SM_CYMAXTRACK] = sysMetrics[SM_CYSCREEN] + 4 + 2 * sysMetrics[SM_CYFRAME];
+    sysMetrics[SM_CXMAXIMIZED] = sysMetrics[SM_CXSCREEN] + 2 * sysMetrics[SM_CXFRAME];
+    sysMetrics[SM_CYMAXIMIZED] = sysMetrics[SM_CYSCREEN] + 2 * sysMetrics[SM_CXFRAME];
     sysMetrics[SM_NETWORK] = 3;

     /* For the following: 0 = ok, 1 = failsafe, 2 = failsafe + network */




More information about the wine-patches mailing list