# HG changeset patch # User vimboss # Date 1116624137 0 # Node ID b159764880696f1eaa87c04422217e9b602193ba # Parent fb70e333c94e544edc70e69f7872859f6e2cc506 updated for version 7.0074 diff --git a/src/gui.c b/src/gui.c --- a/src/gui.c +++ b/src/gui.c @@ -3242,10 +3242,29 @@ gui_init_which_components(oldval) } #endif if (need_set_size) + { +#ifdef FEAT_GUI_GTK + long r = Rows; + long c = Columns; +#endif /* Adjust the size of the window to make the text area keep the * same size and to avoid that part of our window is off-screen * and a scrollbar can't be used, for example. */ gui_set_shellsize(FALSE, fix_size); + +#ifdef FEAT_GUI_GTK + /* GTK has the annoying habit of sending us resize events when + * changing the window size ourselves. This mostly happens when + * waiting for a character to arrive, quite unpredictably, and may + * change Columns and Rows when we don't want it. Wait for a + * character here to avoid this effect. + * If you remove this, please test this command for resizing + * effects: ":vsp|q|vsp|q|vsp|q" */ + (void)char_avail(); + Rows = r; + Columns = c; +#endif + } } } diff --git a/src/gui_w48.c b/src/gui_w48.c --- a/src/gui_w48.c +++ b/src/gui_w48.c @@ -1667,7 +1667,7 @@ process_message(void) * mapped we want to use the mapping instead. */ if (vk == VK_F10 && gui.menu_is_active - && check_map(k10, State, FALSE) == NULL) + && check_map(k10, State, FALSE, TRUE) == NULL) break; #endif if (GetKeyState(VK_SHIFT) & 0x8000) @@ -1781,7 +1781,7 @@ process_message(void) /* Check for : Default effect is to select the menu. When is * mapped we need to stop it here to avoid strange effects (e.g., for the * key-up event) */ - if (vk != VK_F10 || check_map(k10, State, FALSE) == NULL) + if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE) == NULL) #endif DispatchMessage(&msg); }