summaryrefslogtreecommitdiffstats
path: root/src/gui.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2005-05-20 21:22:17 +0000
committerBram Moolenaar <Bram@vim.org>2005-05-20 21:22:17 +0000
commitc1087e64bcfece96de8fa812535154435bbaaba5 (patch)
treee9dac962f08979f987611f73c87d0a4d70b96d4a /src/gui.c
parent686f51ef8e2fea4b13150bfae39e1273ce0af4c0 (diff)
updated for version 7.0074
Diffstat (limited to 'src/gui.c')
-rw-r--r--src/gui.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/gui.c b/src/gui.c
index 090160ad02..35025776e2 100644
--- 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
+ }
}
}