Mercurial > vim
comparison src/gui_beval.c @ 14786:11978f68a8c3 v8.1.0405
patch 8.1.0405: too many #ifdefs for GTK
commit https://github.com/vim/vim/commit/664323e7c82c35eabb9056efca0df6cc8d6cfd60
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Sep 18 22:30:07 2018 +0200
patch 8.1.0405: too many #ifdefs for GTK
Problem: Too many #ifdefs for GTK.
Solution: Define macros instead of using #ifdef. (Ken Takata, closes https://github.com/vim/vim/issues/3436)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 18 Sep 2018 22:45:05 +0200 |
parents | 82e7ce311065 |
children | 2ba09a55bee6 |
comparison
equal
deleted
inserted
replaced
14785:7f365a30fe7c | 14786:11978f68a8c3 |
---|---|
242 * Connect to the generic "event" signal instead of the individual | 242 * Connect to the generic "event" signal instead of the individual |
243 * signals for each event type, because the former is emitted earlier. | 243 * signals for each event type, because the former is emitted earlier. |
244 * This allows us to catch events independently of the signal handlers | 244 * This allows us to catch events independently of the signal handlers |
245 * in gui_gtk_x11.c. | 245 * in gui_gtk_x11.c. |
246 */ | 246 */ |
247 # if GTK_CHECK_VERSION(3,0,0) | |
248 g_signal_connect(G_OBJECT(target), "event", | 247 g_signal_connect(G_OBJECT(target), "event", |
249 G_CALLBACK(target_event_cb), | 248 G_CALLBACK(target_event_cb), |
250 beval); | 249 beval); |
251 # else | |
252 /* Should use GTK_OBJECT() here, but that causes a lint warning... */ | |
253 gtk_signal_connect((GtkObject*)(target), "event", | |
254 GTK_SIGNAL_FUNC(target_event_cb), | |
255 beval); | |
256 # endif | |
257 /* | 250 /* |
258 * Nasty: Key press events go to the main window thus the drawing area | 251 * Nasty: Key press events go to the main window thus the drawing area |
259 * will never see them. This means we have to connect to the main window | 252 * will never see them. This means we have to connect to the main window |
260 * as well in order to catch those events. | 253 * as well in order to catch those events. |
261 */ | 254 */ |
262 if (gtk_socket_id == 0 && gui.mainwin != NULL | 255 if (gtk_socket_id == 0 && gui.mainwin != NULL |
263 && gtk_widget_is_ancestor(target, gui.mainwin)) | 256 && gtk_widget_is_ancestor(target, gui.mainwin)) |
264 { | 257 { |
265 # if GTK_CHECK_VERSION(3,0,0) | |
266 g_signal_connect(G_OBJECT(gui.mainwin), "event", | 258 g_signal_connect(G_OBJECT(gui.mainwin), "event", |
267 G_CALLBACK(mainwin_event_cb), | 259 G_CALLBACK(mainwin_event_cb), |
268 beval); | 260 beval); |
269 # else | |
270 gtk_signal_connect((GtkObject*)(gui.mainwin), "event", | |
271 GTK_SIGNAL_FUNC(mainwin_event_cb), | |
272 beval); | |
273 # endif | |
274 } | 261 } |
275 } | 262 } |
276 | 263 |
277 static void | 264 static void |
278 removeEventHandler(BalloonEval *beval) | 265 removeEventHandler(BalloonEval *beval) |
279 { | 266 { |
280 /* LINTED: avoid warning: dubious operation on enum */ | |
281 # if GTK_CHECK_VERSION(3,0,0) | |
282 g_signal_handlers_disconnect_by_func(G_OBJECT(beval->target), | 267 g_signal_handlers_disconnect_by_func(G_OBJECT(beval->target), |
283 FUNC2GENERIC(target_event_cb), | 268 FUNC2GENERIC(target_event_cb), |
284 beval); | 269 beval); |
285 # else | |
286 gtk_signal_disconnect_by_func((GtkObject*)(beval->target), | |
287 GTK_SIGNAL_FUNC(target_event_cb), | |
288 beval); | |
289 # endif | |
290 | 270 |
291 if (gtk_socket_id == 0 && gui.mainwin != NULL | 271 if (gtk_socket_id == 0 && gui.mainwin != NULL |
292 && gtk_widget_is_ancestor(beval->target, gui.mainwin)) | 272 && gtk_widget_is_ancestor(beval->target, gui.mainwin)) |
293 { | 273 { |
294 /* LINTED: avoid warning: dubious operation on enum */ | |
295 # if GTK_CHECK_VERSION(3,0,0) | |
296 g_signal_handlers_disconnect_by_func(G_OBJECT(gui.mainwin), | 274 g_signal_handlers_disconnect_by_func(G_OBJECT(gui.mainwin), |
297 FUNC2GENERIC(mainwin_event_cb), | 275 FUNC2GENERIC(mainwin_event_cb), |
298 beval); | 276 beval); |
299 # else | |
300 gtk_signal_disconnect_by_func((GtkObject*)(gui.mainwin), | |
301 GTK_SIGNAL_FUNC(mainwin_event_cb), | |
302 beval); | |
303 # endif | |
304 } | 277 } |
305 } | 278 } |
306 | 279 |
307 static gint | 280 static gint |
308 target_event_cb(GtkWidget *widget, GdkEvent *event, gpointer data) | 281 target_event_cb(GtkWidget *widget, GdkEvent *event, gpointer data) |
431 (*beval->msgCB)(beval, state); | 404 (*beval->msgCB)(beval, state); |
432 } | 405 } |
433 } | 406 } |
434 else | 407 else |
435 { | 408 { |
436 # if GTK_CHECK_VERSION(3,0,0) | |
437 beval->timerID = g_timeout_add((guint)p_bdlay, | 409 beval->timerID = g_timeout_add((guint)p_bdlay, |
438 &timeout_cb, beval); | 410 &timeout_cb, beval); |
439 # else | |
440 beval->timerID = gtk_timeout_add((guint32)p_bdlay, | |
441 &timeout_cb, beval); | |
442 # endif | |
443 } | 411 } |
444 } | 412 } |
445 } | 413 } |
446 } | 414 } |
447 | 415 |
1037 || beval->showState == ShS_UPDATE_PENDING) | 1005 || beval->showState == ShS_UPDATE_PENDING) |
1038 undrawBalloon(beval); | 1006 undrawBalloon(beval); |
1039 | 1007 |
1040 if (beval->timerID != 0) | 1008 if (beval->timerID != 0) |
1041 { | 1009 { |
1042 # if GTK_CHECK_VERSION(3,0,0) | |
1043 g_source_remove(beval->timerID); | 1010 g_source_remove(beval->timerID); |
1044 # else | |
1045 gtk_timeout_remove(beval->timerID); | |
1046 # endif | |
1047 beval->timerID = 0; | 1011 beval->timerID = 0; |
1048 } | 1012 } |
1049 beval->showState = ShS_NEUTRAL; | 1013 beval->showState = ShS_NEUTRAL; |
1050 } | 1014 } |
1051 | 1015 |
1053 createBalloonEvalWindow(BalloonEval *beval) | 1017 createBalloonEvalWindow(BalloonEval *beval) |
1054 { | 1018 { |
1055 beval->balloonShell = gtk_window_new(GTK_WINDOW_POPUP); | 1019 beval->balloonShell = gtk_window_new(GTK_WINDOW_POPUP); |
1056 | 1020 |
1057 gtk_widget_set_app_paintable(beval->balloonShell, TRUE); | 1021 gtk_widget_set_app_paintable(beval->balloonShell, TRUE); |
1058 # if GTK_CHECK_VERSION(3,0,0) | |
1059 gtk_window_set_resizable(GTK_WINDOW(beval->balloonShell), FALSE); | 1022 gtk_window_set_resizable(GTK_WINDOW(beval->balloonShell), FALSE); |
1060 # else | |
1061 gtk_window_set_policy(GTK_WINDOW(beval->balloonShell), FALSE, FALSE, TRUE); | |
1062 # endif | |
1063 gtk_widget_set_name(beval->balloonShell, "gtk-tooltips"); | 1023 gtk_widget_set_name(beval->balloonShell, "gtk-tooltips"); |
1064 # if GTK_CHECK_VERSION(3,0,0) | |
1065 gtk_container_set_border_width(GTK_CONTAINER(beval->balloonShell), 4); | 1024 gtk_container_set_border_width(GTK_CONTAINER(beval->balloonShell), 4); |
1066 # else | |
1067 gtk_container_border_width(GTK_CONTAINER(beval->balloonShell), 4); | |
1068 # endif | |
1069 | 1025 |
1070 # if GTK_CHECK_VERSION(3,0,0) | 1026 # if GTK_CHECK_VERSION(3,0,0) |
1071 g_signal_connect(G_OBJECT(beval->balloonShell), "draw", | 1027 g_signal_connect(G_OBJECT(beval->balloonShell), "draw", |
1072 G_CALLBACK(balloon_draw_event_cb), NULL); | 1028 G_CALLBACK(balloon_draw_event_cb), NULL); |
1073 # else | 1029 # else |