fix ui_set_visible (GTK3) default tip

Sun, 28 Dec 2025 19:01:05 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 28 Dec 2025 19:01:05 +0100
changeset 1032
9136db051f28
parent 1031
8f72e54b423e

fix ui_set_visible (GTK3)

ui/gtk/list.c file | annotate | diff | comparison | revisions
ui/gtk/toolkit.c file | annotate | diff | comparison | revisions
ui/gtk/toolkit.h file | annotate | diff | comparison | revisions
--- a/ui/gtk/list.c	Sun Dec 28 16:13:34 2025 +0100
+++ b/ui/gtk/list.c	Sun Dec 28 19:01:05 2025 +0100
@@ -2496,7 +2496,11 @@
         
         UIMENU menu = data->customdata3;
         g_object_set_data(G_OBJECT(button), "ui-button-popup", menu);
+#if GTK_CHECK_VERSION(4, 0, 0)
         gtk_popover_popup(GTK_POPOVER(menu));
+#else
+        ui_contextmenu_popup(menu, button, 0, 0);
+#endif
     }
 }
 
@@ -2588,6 +2592,7 @@
                 event
                 );
         gtk_widget_set_visible(button, FALSE);
+        WIDGET_NO_SHOW_ALL(button);
         
         g_object_set_data(G_OBJECT(row), "ui-listbox-row-button", button);
         
--- a/ui/gtk/toolkit.c	Sun Dec 28 16:13:34 2025 +0100
+++ b/ui/gtk/toolkit.c	Sun Dec 28 19:01:05 2025 +0100
@@ -239,9 +239,10 @@
     gtk_widget_set_visible(widget, visible);
 #else
     if(visible) {
+        gtk_widget_set_no_show_all(widget, FALSE);
         gtk_widget_show_all(widget);
     } else {
-        gtk_widget_set_no_show_all(widget, FALSE);
+        gtk_widget_set_no_show_all(widget, TRUE);
         gtk_widget_hide(widget);
     }
 #endif
--- a/ui/gtk/toolkit.h	Sun Dec 28 16:13:34 2025 +0100
+++ b/ui/gtk/toolkit.h	Sun Dec 28 19:01:05 2025 +0100
@@ -58,6 +58,7 @@
 #define WINDOW_SHOW(window) gtk_window_present(GTK_WINDOW(window))
 #define WINDOW_DESTROY(window) gtk_window_destroy(GTK_WINDOW(window))
 #define WINDOW_SET_CONTENT(window, child) gtk_window_set_child(GTK_WINDOW(window), child)
+#define WIDGET_NO_SHOW_ALL(widget)
 #define BOX_ADD(box, child) gtk_box_append(GTK_BOX(box), child)
 #define BOX_ADD_EXPAND(box, child) gtk_widget_set_hexpand(child, TRUE); gtk_widget_set_vexpand(child, TRUE); gtk_box_append(GTK_BOX(box), child)
 #define BOX_ADD_NO_EXPAND(box, child) gtk_box_append(GTK_BOX(box), child)
@@ -82,6 +83,7 @@
 #define WINDOW_SHOW(window) gtk_widget_show_all(window)
 #define WINDOW_DESTROY(window) gtk_widget_destroy(window)
 #define WINDOW_SET_CONTENT(window, child) gtk_container_add(GTK_CONTAINER(window), child)
+#define WIDGET_NO_SHOW_ALL(widget) gtk_widget_set_no_show_all(widget, TRUE)
 #define BOX_ADD(box, child) gtk_container_add(GTK_CONTAINER(box), child)
 #define BOX_ADD_EXPAND(box, child) gtk_box_pack_start(GTK_BOX(box), child, TRUE, TRUE, 0)
 #define BOX_ADD_NO_EXPAND(box, child) gtk_box_pack_start(GTK_BOX(box), child, TRUE, FALSE, 0)  

mercurial