diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-08-07 15:27:11 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-08-07 15:27:11 +0200 |
commit | a95d8235549a91f1ae3381b82c81d6a75f425642 (patch) | |
tree | c04c868a54a0c8a69887bdd6191eed260d444bf1 | |
parent | d82db6046ceab1294c54f93fbe0ea619d87d80be (diff) |
updated for version 7.4b.018v7.4b.018
Problem: Win32: Dialog can still be too big.
Solution: Move the check for height further down. (Andrei Olsen)
-rw-r--r-- | src/gui_w32.c | 33 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 20 insertions, 15 deletions
diff --git a/src/gui_w32.c b/src/gui_w32.c index 1ec5c1d64b..2d57fbb272 100644 --- a/src/gui_w32.c +++ b/src/gui_w32.c @@ -3184,9 +3184,8 @@ gui_mch_dialog( } else { - /* Use our own window's client area for the size, unless it's very - * small. */ - GetClientRect(s_hwnd, &rect); + /* 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,7 +3194,8 @@ gui_mch_dialog( maxDialogHeight = rect.bottom - rect.top - (GetSystemMetrics(SM_CYFRAME) + - GetSystemMetrics(SM_CXPADDEDBORDER)) * 4; + GetSystemMetrics(SM_CXPADDEDBORDER)) * 4 + - GetSystemMetrics(SM_CYCAPTION); if (maxDialogHeight < DLG_MIN_MAX_HEIGHT) maxDialogHeight = DLG_MIN_MAX_HEIGHT; } @@ -3262,16 +3262,9 @@ gui_mch_dialog( 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; + dlgwidth = messageWidth + DLG_ICON_WIDTH + 3 * dlgPaddingX + + GetSystemMetrics(SM_CXVSCROLL); if (msgheight < DLG_ICON_HEIGHT) msgheight = DLG_ICON_HEIGHT; @@ -3345,8 +3338,8 @@ gui_mch_dialog( // Dialog height. if (vertical) - dlgheight = msgheight + 2 * dlgPaddingY + - DLG_VERT_PADDING_Y + 2 * fontHeight * numButtons; + dlgheight = msgheight + 2 * dlgPaddingY + + DLG_VERT_PADDING_Y + 2 * fontHeight * numButtons; else dlgheight = msgheight + 3 * dlgPaddingY + 2 * fontHeight; @@ -3355,6 +3348,16 @@ gui_mch_dialog( 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 diff --git a/src/version.c b/src/version.c index 67230f5dad..1744af4158 100644 --- a/src/version.c +++ b/src/version.c @@ -728,6 +728,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 18, +/**/ 17, /**/ 16, |