summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2013-08-07 15:27:11 +0200
committerBram Moolenaar <Bram@vim.org>2013-08-07 15:27:11 +0200
commita95d8235549a91f1ae3381b82c81d6a75f425642 (patch)
treec04c868a54a0c8a69887bdd6191eed260d444bf1
parentd82db6046ceab1294c54f93fbe0ea619d87d80be (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.c33
-rw-r--r--src/version.c2
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,