Patch 7.4a.038
Problem:    When using MSVC 2012 there are various issues, including GUI size
            computations.
Solution:   Use SM_CXPADDEDBORDER. (Mike Williams)
Files:      src/gui_w32.c, src/gui_w48.c, src/os_win32.h


*** ../vim-7.4a.037/src/gui_w32.c       2013-07-21 17:46:38.000000000 +0200
--- src/gui_w32.c       2013-07-21 17:51:37.000000000 +0200
***************
*** 1694,1701 ****
      }
  
      /* compute the size of the outside of the window */
!     win_width = width + GetSystemMetrics(SM_CXFRAME) * 2;
!     win_height = height + GetSystemMetrics(SM_CYFRAME) * 2
                        + GetSystemMetrics(SM_CYCAPTION)
  #ifdef FEAT_MENU
                        + gui_mswin_get_menu_height(FALSE)
--- 1694,1703 ----
      }
  
      /* compute the size of the outside of the window */
!     win_width = width + (GetSystemMetrics(SM_CXFRAME) +
!                          GetSystemMetrics(SM_CXPADDEDBORDER)) * 2;
!     win_height = height + (GetSystemMetrics(SM_CYFRAME) +
!                            GetSystemMetrics(SM_CXPADDEDBORDER)) * 2
                        + GetSystemMetrics(SM_CYCAPTION)
  #ifdef FEAT_MENU
                        + gui_mswin_get_menu_height(FALSE)
***************
*** 2546,2558 ****
      get_work_area(&workarea_rect);
  
      *screen_w = workarea_rect.right - workarea_rect.left
!               - GetSystemMetrics(SM_CXFRAME) * 2;
  
      /* FIXME: dirty trick: Because the gui_get_base_height() doesn't include
       * the menubar for MSwin, we subtract it from the screen height, so that
       * the window size can be made to fit on the screen. */
      *screen_h = workarea_rect.bottom - workarea_rect.top
!               - GetSystemMetrics(SM_CYFRAME) * 2
                - GetSystemMetrics(SM_CYCAPTION)
  #ifdef FEAT_MENU
                - gui_mswin_get_menu_height(FALSE)
--- 2548,2562 ----
      get_work_area(&workarea_rect);
  
      *screen_w = workarea_rect.right - workarea_rect.left
!               - (GetSystemMetrics(SM_CXFRAME) +
!                    GetSystemMetrics(SM_CXPADDEDBORDER)) * 2;
  
      /* FIXME: dirty trick: Because the gui_get_base_height() doesn't include
       * the menubar for MSwin, we subtract it from the screen height, so that
       * the window size can be made to fit on the screen. */
      *screen_h = workarea_rect.bottom - workarea_rect.top
!               - (GetSystemMetrics(SM_CYFRAME) +
!                    GetSystemMetrics(SM_CXPADDEDBORDER)) * 2
                - GetSystemMetrics(SM_CYCAPTION)
  #ifdef FEAT_MENU
                - gui_mswin_get_menu_height(FALSE)
***************
*** 3182,3193 ****
        /* Use our own window for the size, unless it's very small. */
        GetWindowRect(s_hwnd, &rect);
        maxDialogWidth = rect.right - rect.left
!                                          - GetSystemMetrics(SM_CXFRAME) * 2;
        if (maxDialogWidth < DLG_MIN_MAX_WIDTH)
            maxDialogWidth = DLG_MIN_MAX_WIDTH;
  
        maxDialogHeight = rect.bottom - rect.top
!                                          - GetSystemMetrics(SM_CXFRAME) * 2;
        if (maxDialogHeight < DLG_MIN_MAX_HEIGHT)
            maxDialogHeight = DLG_MIN_MAX_HEIGHT;
      }
--- 3186,3199 ----
        /* 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;
        if (maxDialogWidth < DLG_MIN_MAX_WIDTH)
            maxDialogWidth = DLG_MIN_MAX_WIDTH;
  
        maxDialogHeight = rect.bottom - rect.top
!                                  - (GetSystemMetrics(SM_CXFRAME) +
!                                       GetSystemMetrics(SM_CXPADDEDBORDER)) * 
2;
        if (maxDialogHeight < DLG_MIN_MAX_HEIGHT)
            maxDialogHeight = DLG_MIN_MAX_HEIGHT;
      }
*** ../vim-7.4a.037/src/gui_w48.c       2013-07-21 17:46:38.000000000 +0200
--- src/gui_w48.c       2013-07-21 17:51:37.000000000 +0200
***************
*** 2909,2917 ****
      int           base_width, base_height;
  
      base_width = gui_get_base_width()
!       + GetSystemMetrics(SM_CXFRAME) * 2;
      base_height = gui_get_base_height()
!       + GetSystemMetrics(SM_CYFRAME) * 2
        + GetSystemMetrics(SM_CYCAPTION)
  #ifdef FEAT_MENU
        + gui_mswin_get_menu_height(FALSE)
--- 2909,2919 ----
      int           base_width, base_height;
  
      base_width = gui_get_base_width()
!       + (GetSystemMetrics(SM_CXFRAME) +
!            GetSystemMetrics(SM_CXPADDEDBORDER)) * 2;
      base_height = gui_get_base_height()
!       + (GetSystemMetrics(SM_CYFRAME) +
!            GetSystemMetrics(SM_CXPADDEDBORDER)) * 2
        + GetSystemMetrics(SM_CYCAPTION)
  #ifdef FEAT_MENU
        + gui_mswin_get_menu_height(FALSE)
***************
*** 3274,3282 ****
  
      GetWindowRect(s_hwnd, &rect);
      gui_resize_shell(rect.right - rect.left
!                       - GetSystemMetrics(SM_CXFRAME) * 2,
                     rect.bottom - rect.top
!                       - GetSystemMetrics(SM_CYFRAME) * 2
                        - GetSystemMetrics(SM_CYCAPTION)
  #ifdef FEAT_MENU
                        - gui_mswin_get_menu_height(FALSE)
--- 3276,3286 ----
  
      GetWindowRect(s_hwnd, &rect);
      gui_resize_shell(rect.right - rect.left
!                       - (GetSystemMetrics(SM_CXFRAME) +
!                            GetSystemMetrics(SM_CXPADDEDBORDER)) * 2,
                     rect.bottom - rect.top
!                       - (GetSystemMetrics(SM_CYFRAME) +
!                            GetSystemMetrics(SM_CXPADDEDBORDER)) * 2
                        - GetSystemMetrics(SM_CYCAPTION)
  #ifdef FEAT_MENU
                        - gui_mswin_get_menu_height(FALSE)
*** ../vim-7.4a.037/src/os_win32.h      2013-06-29 15:38:50.000000000 +0200
--- src/os_win32.h      2013-07-21 17:53:13.000000000 +0200
***************
*** 102,107 ****
--- 102,110 ----
  #endif
  #ifndef PROTO
  # include <windows.h>
+ # ifndef SM_CXPADDEDBORDER
+ #  define SM_CXPADDEDBORDER     92
+ # endif
  #endif
  
  /*
*** ../vim-7.4a.037/src/version.c       2013-07-21 17:46:38.000000000 +0200
--- src/version.c       2013-07-21 17:52:14.000000000 +0200
***************
*** 729,730 ****
--- 729,732 ----
  {   /* Add new patch number below this line */
+ /**/
+     38,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
5. You find yourself brainstorming for new subjects to search.

 /// 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