]>
Commit | Line | Data |
---|---|---|
05649561 AG |
1 | To: vim-dev@vim.org |
2 | Subject: Patch 6.2.241 | |
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.241 | |
11 | Problem: GTK 2: Search and Search/Replace dialogs are synced, that makes no | |
12 | sense. Buttons are sometimes greyed-out. (Jeremy Messenger) | |
13 | Solution: Remove the code to sync the two dialogs. Adjust the code to react | |
14 | to an empty search string to also work for GTK2. (David Necas) | |
15 | Files: src/gui_gtk.c | |
16 | ||
17 | ||
18 | *** ../vim-6.2.240/src/gui_gtk.c Fri Feb 6 19:22:46 2004 | |
19 | --- src/gui_gtk.c Fri Feb 6 15:22:50 2004 | |
20 | *************** | |
21 | *** 170,183 **** | |
22 | #endif /* HAVE_GTK2 */ | |
23 | ||
24 | static void entry_activate_cb(GtkWidget *widget, gpointer data); | |
25 | - #ifndef HAVE_GTK2 /* crack alert! */ | |
26 | static void entry_changed_cb(GtkWidget *entry, GtkWidget *dialog); | |
27 | - #endif | |
28 | - static void find_direction_cb(GtkWidget *widget, gpointer data); | |
29 | static void find_replace_cb(GtkWidget *widget, gpointer data); | |
30 | - static void wword_match_cb(GtkWidget *widget, gpointer data); | |
31 | - static void mcase_match_cb(GtkWidget *widget, gpointer data); | |
32 | - static void repl_dir_cb(GtkWidget *widget, gpointer data); | |
33 | ||
34 | #if defined(FEAT_TOOLBAR) && defined(HAVE_GTK2) | |
35 | /* | |
36 | --- 170,177 ---- | |
37 | *************** | |
38 | *** 2514,2523 **** | |
39 | sensitive = (entry_text != NULL && entry_text[0] != NUL); | |
40 | if (entry_text != NULL) | |
41 | gtk_entry_set_text(GTK_ENTRY(frdp->what), (char *)entry_text); | |
42 | - #ifndef HAVE_GTK2 | |
43 | gtk_signal_connect(GTK_OBJECT(frdp->what), "changed", | |
44 | GTK_SIGNAL_FUNC(entry_changed_cb), frdp->dialog); | |
45 | - #endif | |
46 | gtk_signal_connect_after(GTK_OBJECT(frdp->what), "key_press_event", | |
47 | GTK_SIGNAL_FUNC(find_key_press_event), | |
48 | (gpointer) frdp); | |
49 | --- 2508,2515 ---- | |
50 | *************** | |
51 | *** 2561,2568 **** | |
52 | frdp->wword = gtk_check_button_new_with_label(CONV(_("Match whole word only"))); | |
53 | gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(frdp->wword), | |
54 | (gboolean)wword); | |
55 | - gtk_signal_connect(GTK_OBJECT(frdp->wword), "clicked", | |
56 | - GTK_SIGNAL_FUNC(wword_match_cb), NULL); | |
57 | if (do_replace) | |
58 | gtk_table_attach(GTK_TABLE(table), frdp->wword, 0, 1023, 2, 3, | |
59 | GTK_FILL, GTK_EXPAND, 2, 2); | |
60 | --- 2553,2558 ---- | |
61 | *************** | |
62 | *** 2574,2581 **** | |
63 | frdp->mcase = gtk_check_button_new_with_label(CONV(_("Match case"))); | |
64 | gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(frdp->mcase), | |
65 | (gboolean)mcase); | |
66 | - gtk_signal_connect(GTK_OBJECT(frdp->mcase), "clicked", | |
67 | - GTK_SIGNAL_FUNC(mcase_match_cb), NULL); | |
68 | if (do_replace) | |
69 | gtk_table_attach(GTK_TABLE(table), frdp->mcase, 0, 1023, 3, 4, | |
70 | GTK_FILL, GTK_EXPAND, 2, 2); | |
71 | --- 2564,2569 ---- | |
72 | *************** | |
73 | *** 2601,2610 **** | |
74 | gtk_radio_button_group(GTK_RADIO_BUTTON(frdp->up)), | |
75 | CONV(_("Down"))); | |
76 | gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(frdp->down), TRUE); | |
77 | - gtk_signal_connect(GTK_OBJECT(frdp->down), "clicked", | |
78 | - (do_replace) ? GTK_SIGNAL_FUNC(repl_dir_cb) | |
79 | - : GTK_SIGNAL_FUNC(find_direction_cb), | |
80 | - NULL); | |
81 | #ifdef HAVE_GTK2 | |
82 | gtk_container_set_border_width(GTK_CONTAINER(vbox), 2); | |
83 | #endif | |
84 | --- 2589,2594 ---- | |
85 | *************** | |
86 | *** 2850,2919 **** | |
87 | } | |
88 | ||
89 | /* | |
90 | - * The following are used to synchronize the direction setting | |
91 | - * between the search and the replace dialog. | |
92 | - */ | |
93 | - /*ARGSUSED*/ | |
94 | - static void | |
95 | - find_direction_cb(GtkWidget * widget, gpointer data) | |
96 | - { | |
97 | - gboolean direction_down = GTK_TOGGLE_BUTTON(widget)->active; | |
98 | - | |
99 | - if (repl_widgets.dialog) | |
100 | - { | |
101 | - GtkWidget *w; | |
102 | - w = direction_down ? repl_widgets.down : repl_widgets.up; | |
103 | - | |
104 | - if (!GTK_TOGGLE_BUTTON(w)->active) | |
105 | - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(w), TRUE); | |
106 | - } | |
107 | - } | |
108 | - | |
109 | - /*ARGSUSED*/ | |
110 | - static void | |
111 | - repl_dir_cb(GtkWidget *widget, gpointer data) | |
112 | - { | |
113 | - gboolean direction_down = GTK_TOGGLE_BUTTON(widget)->active; | |
114 | - | |
115 | - if (find_widgets.dialog) | |
116 | - { | |
117 | - GtkWidget *w; | |
118 | - w = direction_down ? find_widgets.down : find_widgets.up; | |
119 | - | |
120 | - if (!GTK_TOGGLE_BUTTON(w)->active) | |
121 | - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(w), TRUE); | |
122 | - } | |
123 | - } | |
124 | - | |
125 | - /*ARGSUSED*/ | |
126 | - static void | |
127 | - wword_match_cb(GtkWidget * widget, gpointer data) | |
128 | - { | |
129 | - gboolean active = GTK_TOGGLE_BUTTON(widget)->active; | |
130 | - | |
131 | - if (find_widgets.dialog) | |
132 | - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(find_widgets.wword), | |
133 | - active); | |
134 | - if (repl_widgets.dialog) | |
135 | - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(repl_widgets.wword), | |
136 | - active); | |
137 | - } | |
138 | - | |
139 | - /*ARGSUSED*/ | |
140 | - static void | |
141 | - mcase_match_cb(GtkWidget * widget, gpointer data) | |
142 | - { | |
143 | - gboolean active = GTK_TOGGLE_BUTTON(widget)->active; | |
144 | - | |
145 | - if (find_widgets.dialog) | |
146 | - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(find_widgets.mcase), | |
147 | - active); | |
148 | - if (repl_widgets.dialog) | |
149 | - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(repl_widgets.mcase), | |
150 | - active); | |
151 | - } | |
152 | - | |
153 | - /* | |
154 | * Syncing the find/replace dialogs on the fly is utterly useless crack, | |
155 | * and causes nothing but problems. Please tell me a use case for which | |
156 | * you'd need both a find dialog and a find/replace one at the same time, | |
157 | --- 2834,2839 ---- | |
158 | *************** | |
159 | *** 2922,2928 **** | |
160 | * particularly evil incarnation of braindeadness, whatever; I'd much rather | |
161 | * see it extinguished from this planet. Thanks for listening. Sorry. | |
162 | */ | |
163 | - #ifndef HAVE_GTK2 | |
164 | static void | |
165 | entry_changed_cb(GtkWidget * entry, GtkWidget * dialog) | |
166 | { | |
167 | --- 2842,2847 ---- | |
168 | *************** | |
169 | *** 2939,2969 **** | |
170 | if (dialog == find_widgets.dialog) | |
171 | { | |
172 | gtk_widget_set_sensitive(find_widgets.find, nonempty); | |
173 | - if (repl_widgets.dialog) | |
174 | - { | |
175 | - gtk_widget_set_sensitive(repl_widgets.find, nonempty); | |
176 | - gtk_widget_set_sensitive(repl_widgets.replace, nonempty); | |
177 | - gtk_widget_set_sensitive(repl_widgets.all, nonempty); | |
178 | - if (strcmp(entry_text, | |
179 | - gtk_entry_get_text(GTK_ENTRY(repl_widgets.what)))) | |
180 | - gtk_entry_set_text(GTK_ENTRY(repl_widgets.what), entry_text); | |
181 | - } | |
182 | } | |
183 | if (dialog == repl_widgets.dialog) | |
184 | { | |
185 | gtk_widget_set_sensitive(repl_widgets.find, nonempty); | |
186 | gtk_widget_set_sensitive(repl_widgets.replace, nonempty); | |
187 | gtk_widget_set_sensitive(repl_widgets.all, nonempty); | |
188 | - if (find_widgets.dialog) | |
189 | - { | |
190 | - gtk_widget_set_sensitive(find_widgets.find, nonempty); | |
191 | - if (strcmp(entry_text, | |
192 | - gtk_entry_get_text(GTK_ENTRY(find_widgets.what)))) | |
193 | - gtk_entry_set_text(GTK_ENTRY(find_widgets.what), entry_text); | |
194 | - } | |
195 | } | |
196 | } | |
197 | - #endif | |
198 | ||
199 | /* | |
200 | * ":helpfind" | |
201 | --- 2858,2872 ---- | |
202 | if (dialog == find_widgets.dialog) | |
203 | { | |
204 | gtk_widget_set_sensitive(find_widgets.find, nonempty); | |
205 | } | |
206 | + | |
207 | if (dialog == repl_widgets.dialog) | |
208 | { | |
209 | gtk_widget_set_sensitive(repl_widgets.find, nonempty); | |
210 | gtk_widget_set_sensitive(repl_widgets.replace, nonempty); | |
211 | gtk_widget_set_sensitive(repl_widgets.all, nonempty); | |
212 | } | |
213 | } | |
214 | ||
215 | /* | |
216 | * ":helpfind" | |
217 | *** ../vim-6.2.240/src/version.c Fri Feb 6 19:22:46 2004 | |
218 | --- src/version.c Fri Feb 6 19:29:40 2004 | |
219 | *************** | |
220 | *** 639,640 **** | |
221 | --- 639,642 ---- | |
222 | { /* Add new patch number below this line */ | |
223 | + /**/ | |
224 | + 241, | |
225 | /**/ | |
226 | ||
227 | -- | |
228 | hundred-and-one symptoms of being an internet addict: | |
229 | 65. The last time you looked at the clock it was 11:30pm, and in what | |
230 | seems like only a few seconds later, your sister runs past you to | |
231 | catch her 7am school bus. | |
232 | ||
233 | /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ | |
234 | /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ | |
235 | \\\ Project leader for A-A-P -- http://www.A-A-P.org /// | |
236 | \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html /// |