Patch 7.4b.018 (after 7.4b.001)
Problem:    Win32: Dialog can still be too big.
Solution:   Move the check for height further down. (Andrei Olsen)
Files:      src/gui_w32.c


*** ../vim-7.4b.017/src/gui_w32.c       2013-08-01 13:20:23.000000000 +0200
--- src/gui_w32.c       2013-08-04 16:15:37.000000000 +0200
***************
*** 3184,3192 ****
      }
      else
      {
!       /* Use our own window's client area for the size, unless it's very
!        * small. */
!       GetClientRect(s_hwnd, &rect);
        maxDialogWidth = rect.right - rect.left
                                   - (GetSystemMetrics(SM_CXFRAME) +
                                        GetSystemMetrics(SM_CXPADDEDBORDER)) * 
2;
--- 3184,3191 ----
      }
      else
      {
!       /* Use our own window for the size, unless it's very small. */
!       GetWindowRect(s_hwnd, &rect);
        maxDialogWidth = rect.right - rect.left
                                   - (GetSystemMetrics(SM_CXFRAME) +
                                        GetSystemMetrics(SM_CXPADDEDBORDER)) * 
2;
***************
*** 3195,3201 ****
  
        maxDialogHeight = rect.bottom - rect.top
                                   - (GetSystemMetrics(SM_CYFRAME) +
!                                       GetSystemMetrics(SM_CXPADDEDBORDER)) * 
4;
        if (maxDialogHeight < DLG_MIN_MAX_HEIGHT)
            maxDialogHeight = DLG_MIN_MAX_HEIGHT;
      }
--- 3194,3201 ----
  
        maxDialogHeight = rect.bottom - rect.top
                                   - (GetSystemMetrics(SM_CYFRAME) +
!                                       GetSystemMetrics(SM_CXPADDEDBORDER)) * 4
!                                  - GetSystemMetrics(SM_CYCAPTION);
        if (maxDialogHeight < DLG_MIN_MAX_HEIGHT)
            maxDialogHeight = DLG_MIN_MAX_HEIGHT;
      }
***************
*** 3262,3277 ****
  
      messageWidth += 10;               /* roundoff space */
  
-     /* Restrict the size to a maximum.  Causes a scrollbar to show up. */
-     if (msgheight > maxDialogHeight)
-     {
-       msgheight = maxDialogHeight;
-       scroll_flag = WS_VSCROLL;
-       messageWidth += GetSystemMetrics(SM_CXVSCROLL);
-     }
- 
      /* Add width of icon to dlgwidth, and some space */
!     dlgwidth = messageWidth + DLG_ICON_WIDTH + 3 * dlgPaddingX;
  
      if (msgheight < DLG_ICON_HEIGHT)
        msgheight = DLG_ICON_HEIGHT;
--- 3262,3270 ----
  
      messageWidth += 10;               /* roundoff space */
  
      /* Add width of icon to dlgwidth, and some space */
!     dlgwidth = messageWidth + DLG_ICON_WIDTH + 3 * dlgPaddingX
!                                            + GetSystemMetrics(SM_CXVSCROLL);
  
      if (msgheight < DLG_ICON_HEIGHT)
        msgheight = DLG_ICON_HEIGHT;
***************
*** 3345,3352 ****
  
      // Dialog height.
      if (vertical)
!       dlgheight = msgheight + 2 * dlgPaddingY +
!                             DLG_VERT_PADDING_Y + 2 * fontHeight * numButtons;
      else
        dlgheight = msgheight + 3 * dlgPaddingY + 2 * fontHeight;
  
--- 3338,3345 ----
  
      // Dialog height.
      if (vertical)
!       dlgheight = msgheight + 2 * dlgPaddingY
!                          + DLG_VERT_PADDING_Y + 2 * fontHeight * numButtons;
      else
        dlgheight = msgheight + 3 * dlgPaddingY + 2 * fontHeight;
  
***************
*** 3355,3360 ****
--- 3348,3363 ----
      if (textfield != NULL)
        dlgheight += editboxheight;
  
+     /* Restrict the size to a maximum.  Causes a scrollbar to show up. */
+     if (dlgheight > maxDialogHeight)
+     {
+         msgheight = msgheight - (dlgheight - maxDialogHeight);
+         dlgheight = maxDialogHeight;
+         scroll_flag = WS_VSCROLL;
+         /* Make sure scrollbar doesn't appear in the middle of the dialog */
+         messageWidth = dlgwidth - DLG_ICON_WIDTH - 3 * dlgPaddingX;
+     }
+ 
      add_word(PixelToDialogY(dlgheight));
  
      add_word(0);      // Menu
*** ../vim-7.4b.017/src/version.c       2013-08-07 15:24:36.000000000 +0200
--- src/version.c       2013-08-07 15:25:41.000000000 +0200
***************
*** 729,730 ****
--- 729,732 ----
  {   /* Add new patch number below this line */
+ /**/
+     18,
  /**/

-- 
Over the years, I've developed my sense of deja vu so acutely that now
I can remember things that *have* happened before ...

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Raspunde prin e-mail lui