ui/gtk/list.c

changeset 889
5be43605226f
parent 862
670b2c03413f
child 890
8d30cbd1c465
equal deleted inserted replaced
888:1bb3a6641857 889:5be43605226f
2344 g_object_set_data(G_OBJECT(button), "ui-button-popup", menu); 2344 g_object_set_data(G_OBJECT(button), "ui-button-popup", menu);
2345 gtk_popover_popup(GTK_POPOVER(menu)); 2345 gtk_popover_popup(GTK_POPOVER(menu));
2346 } 2346 }
2347 } 2347 }
2348 2348
2349 #if GTK_CHECK_VERSION(3, 0, 0) 2349 #if GTK_CHECK_VERSION(4, 0, 0)
2350 static void button_popover_closed(GtkPopover *popover, GtkWidget *button) { 2350 static void button_popover_closed(GtkPopover *popover, GtkWidget *button) {
2351 g_object_set_data(G_OBJECT(button), "ui-button-popup", NULL);
2352 if(g_object_get_data(G_OBJECT(button), "ui-button-invisible")) {
2353 g_object_set_data(G_OBJECT(button), "ui-button-invisible", NULL);
2354 gtk_widget_set_visible(button, FALSE);
2355 }
2356 }
2357 #else
2358 static void popup_hide(GtkWidget *self, GtkWidget *button) {
2351 g_object_set_data(G_OBJECT(button), "ui-button-popup", NULL); 2359 g_object_set_data(G_OBJECT(button), "ui-button-popup", NULL);
2352 if(g_object_get_data(G_OBJECT(button), "ui-button-invisible")) { 2360 if(g_object_get_data(G_OBJECT(button), "ui-button-invisible")) {
2353 g_object_set_data(G_OBJECT(button), "ui-button-invisible", NULL); 2361 g_object_set_data(G_OBJECT(button), "ui-button-invisible", NULL);
2354 gtk_widget_set_visible(button, FALSE); 2362 gtk_widget_set_visible(button, FALSE);
2355 } 2363 }
2431 2439
2432 // menu 2440 // menu
2433 if(item->button_menu) { 2441 if(item->button_menu) {
2434 UIMENU menu = ui_contextmenu_create(item->button_menu, listbox->obj, button); 2442 UIMENU menu = ui_contextmenu_create(item->button_menu, listbox->obj, button);
2435 event->customdata3 = menu; 2443 event->customdata3 = menu;
2436 g_signal_connect(menu, "closed", G_CALLBACK(button_popover_closed), button); 2444 #if GTK_CHECK_VERSION(4, 0, 0)
2445 g_signal_connect(menu, "closed", G_CALLBACK(button_popover_closed), button);
2446 #else
2447 g_signal_connect(menu, "hide", G_CALLBACK(popup_hide), button);
2448 #endif
2437 ui_menubuilder_unref(item->button_menu); 2449 ui_menubuilder_unref(item->button_menu);
2438 } 2450 }
2439 } 2451 }
2440 } 2452 }
2441 2453

mercurial