]> code.delx.au - gnu-emacs/commitdiff
In w32fns.c's Fx_frame_geometry rewrite check whether frame has a titlebar
authorMartin Rudalics <rudalics@gmx.at>
Thu, 20 Aug 2015 06:22:53 +0000 (08:22 +0200)
committerMartin Rudalics <rudalics@gmx.at>
Thu, 20 Aug 2015 06:22:53 +0000 (08:22 +0200)
* src/w32fns.c (Fx_frame_geometry): Use title_bar.rgstate[0] to
determine whether frame has a titlebar.
Suggested by Eli Zaretskii <eliz@gnu.org>

src/w32fns.c

index e91097ba20e7a1b544cd1630f4b669ef3db7b73d..a47f3f9a8dc1c61a4d74cb5407236e54e29fc50a 100644 (file)
@@ -8065,24 +8065,26 @@ and width values are in pixels.
   external_border_width = window.cxWindowBorders;
   external_border_height = window.cyWindowBorders;
   /* Title bar.  */
-  if ((window.dwStyle & WS_CAPTION) == WS_CAPTION)
+  if (get_title_bar_info_fn)
     {
-      if (get_title_bar_info_fn)
-       {
-         TITLEBAR_INFO title_bar;
+      TITLEBAR_INFO title_bar;
 
-         title_bar.cbSize = sizeof (title_bar);
-         title_bar.rcTitleBar.left = title_bar.rcTitleBar.right = 0;
-         title_bar.rcTitleBar.top = title_bar.rcTitleBar.bottom = 0;
-         get_title_bar_info_fn (FRAME_W32_WINDOW (f), &title_bar);
-          title_bar_width
+      title_bar.cbSize = sizeof (title_bar);
+      title_bar.rcTitleBar.left = title_bar.rcTitleBar.right = 0;
+      title_bar.rcTitleBar.top = title_bar.rcTitleBar.bottom = 0;
+      for (int i = 0; i < 6; i++)
+       title_bar.rgstate[i] = 0;
+      if (get_title_bar_info_fn (FRAME_W32_WINDOW (f), &title_bar)
+         && !(title_bar.rgstate[0] & 0x00008001))
+       {
+         title_bar_width
            = title_bar.rcTitleBar.right - title_bar.rcTitleBar.left;
          title_bar_height
            = title_bar.rcTitleBar.bottom - title_bar.rcTitleBar.top;
        }
-      else
-       title_bar_height = GetSystemMetrics (SM_CYCAPTION);
     }
+  else if ((window.dwStyle & WS_CAPTION) == WS_CAPTION)
+    title_bar_height = GetSystemMetrics (SM_CYCAPTION);
   /* Menu bar.  */
   menu_bar.cbSize = sizeof (menu_bar);
   menu_bar.rcBar.right = menu_bar.rcBar.left = 0;