]> granicus.if.org Git - vim/commitdiff
updated for version 7.0074
authorBram Moolenaar <Bram@vim.org>
Fri, 20 May 2005 21:22:17 +0000 (21:22 +0000)
committerBram Moolenaar <Bram@vim.org>
Fri, 20 May 2005 21:22:17 +0000 (21:22 +0000)
src/gui.c
src/gui_w48.c

index 090160ad028b0b63146f0c1b2f636ac6511dade0..35025776e218f0071fbd159e317955cb02604a98 100644 (file)
--- 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
+       }
     }
 }
 
index 2e09655837a5fffb6eccec786a8d87b328d9f86b..48a87d945321b869db7c6d9ffba6f78c646b565b 100644 (file)
@@ -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 <F10>: Default effect is to select the menu.  When <F10> 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);
 }