]>
Commit | Line | Data |
---|---|---|
14b40f53 AG |
1 | To: vim-dev@vim.org |
2 | Subject: Patch 6.2.439 | |
3 | Fcc: outbox | |
4 | From: Bram Moolenaar <Bram@moolenaar.net> | |
5 | Mime-Version: 1.0 | |
6 | Content-Type: text/plain; charset=ISO-8859-1 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ------------ | |
9 | ||
10 | Patch 6.2.439 | |
11 | Problem: GTK 2: Changing 'lines' may cause a mismatch between the window | |
12 | layout and the size of the window. | |
13 | Solution: Disable the hack with force_shell_resize_idle(). | |
14 | Files: src/gui_gtk_x11.c | |
15 | ||
16 | ||
17 | *** ../vim-6.2.438/src/gui_gtk_x11.c Fri Apr 2 17:28:18 2004 | |
18 | --- src/gui_gtk_x11.c Sat Apr 3 14:32:57 2004 | |
19 | *************** | |
20 | *** 3753,3758 **** | |
21 | --- 3759,3765 ---- | |
22 | } | |
23 | ||
24 | #ifdef HAVE_GTK2 | |
25 | + #if 0 | |
26 | static int resize_idle_installed = FALSE; | |
27 | /* | |
28 | * Idle handler to force resize. Used by gui_mch_set_shellsize() to ensure | |
29 | *************** | |
30 | *** 3760,3766 **** | |
31 | * ignored our size request. Usually this happens if the window is maximized. | |
32 | * | |
33 | * FIXME: It'd be nice if we could find a little more orthodox solution. | |
34 | ! * See also the rant below in gui_mch_set_shellsize(). | |
35 | */ | |
36 | /*ARGSUSED0*/ | |
37 | static gboolean | |
38 | --- 3767,3778 ---- | |
39 | * ignored our size request. Usually this happens if the window is maximized. | |
40 | * | |
41 | * FIXME: It'd be nice if we could find a little more orthodox solution. | |
42 | ! * See also the remark below in gui_mch_set_shellsize(). | |
43 | ! * | |
44 | ! * DISABLED: When doing ":set lines+=1" this function would first invoke | |
45 | ! * gui_resize_shell() with the old size, then the normal callback would | |
46 | ! * report the new size through form_configure_event(). That caused the window | |
47 | ! * layout to be messed up. | |
48 | */ | |
49 | /*ARGSUSED0*/ | |
50 | static gboolean | |
51 | *************** | |
52 | *** 3784,3789 **** | |
53 | --- 3796,3802 ---- | |
54 | resize_idle_installed = FALSE; | |
55 | return FALSE; /* don't call me again */ | |
56 | } | |
57 | + #endif | |
58 | #endif /* HAVE_GTK2 */ | |
59 | ||
60 | /* | |
61 | *************** | |
62 | *** 3823,3844 **** | |
63 | ||
64 | gtk_window_resize(GTK_WINDOW(gui.mainwin), width, height); | |
65 | ||
66 | if (!resize_idle_installed) | |
67 | { | |
68 | g_idle_add_full(GDK_PRIORITY_EVENTS + 10, | |
69 | &force_shell_resize_idle, NULL, NULL); | |
70 | resize_idle_installed = TRUE; | |
71 | } | |
72 | /* | |
73 | * Wait until all events are processed to prevent a crash because the | |
74 | * real size of the drawing area doesn't reflect Vim's internal ideas. | |
75 | * | |
76 | ! * This is obviously a hack and only necessary because the entire GUI | |
77 | ! * code of Vim is a hack as well. The root cause of the problem is that | |
78 | ! * Vim tries really hard to ignore the asynchronous nature of X. The | |
79 | ! * whole *concept* of the GUI code is badly broken beyond repair. It's | |
80 | ! * almost a philosophical issue: instead of trying to control everything | |
81 | ! * Vim should rather try to cooperate for a change. | |
82 | */ | |
83 | gui_mch_update(); | |
84 | #endif | |
85 | --- 3836,3855 ---- | |
86 | ||
87 | gtk_window_resize(GTK_WINDOW(gui.mainwin), width, height); | |
88 | ||
89 | + #if 0 | |
90 | if (!resize_idle_installed) | |
91 | { | |
92 | g_idle_add_full(GDK_PRIORITY_EVENTS + 10, | |
93 | &force_shell_resize_idle, NULL, NULL); | |
94 | resize_idle_installed = TRUE; | |
95 | } | |
96 | + #endif | |
97 | /* | |
98 | * Wait until all events are processed to prevent a crash because the | |
99 | * real size of the drawing area doesn't reflect Vim's internal ideas. | |
100 | * | |
101 | ! * This is a bit of a hack, since Vim is a terminal application with a GUI | |
102 | ! * on top, while the GUI expects to be the boss. | |
103 | */ | |
104 | gui_mch_update(); | |
105 | #endif | |
106 | *** ../vim-6.2.438/src/version.c Sat Apr 3 17:00:08 2004 | |
107 | --- src/version.c Sun Apr 4 12:00:23 2004 | |
108 | *************** | |
109 | *** 639,640 **** | |
110 | --- 639,642 ---- | |
111 | { /* Add new patch number below this line */ | |
112 | + /**/ | |
113 | + 439, | |
114 | /**/ | |
115 | ||
116 | -- | |
117 | hundred-and-one symptoms of being an internet addict: | |
118 | 259. When you enter your name in the AltaVista search engine, the top ten | |
119 | matches do indeed refer to you. | |
120 | ||
121 | /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ | |
122 | /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ | |
123 | \\\ Project leader for A-A-P -- http://www.A-A-P.org /// | |
124 | \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html /// |