ui/gtk/menu.c

changeset 46
31bc86844659
parent 44
473954dc6b74
--- a/ui/gtk/menu.c	Sun Sep 29 20:25:41 2024 +0200
+++ b/ui/gtk/menu.c	Thu Oct 03 18:08:29 2024 +0200
@@ -522,10 +522,22 @@
 void ui_gmenu_add_menu_items(GMenu *parent, int i, UiMenu *menu, UiObject *obj) {
     UiMenuItemI *it = menu->items_begin;
     int index = 0;
+    int index_section = 0;
+    GMenu *section = NULL;
     while(it) {
-        createMenuItem[it->type](parent, index, it, obj);
+        if(it->type == UI_MENU_SEPARATOR) {
+            section = g_menu_new();
+            g_menu_append_section(parent, NULL, G_MENU_MODEL(section));
+            index++;
+            index_section = 0;
+        } else {
+            if(section) {
+                createMenuItem[it->type](section, index_section++, it, obj);
+            } else {
+                createMenuItem[it->type](parent, index++, it, obj);
+            }
+        }
         it = it->next;
-        index++;
     }
 }
 
@@ -563,7 +575,7 @@
     }
     
     char action_name[32];
-    snprintf(action_name, 32, "win.%s", item->id);
+    snprintf(action_name, 32, "win.%s", item->id); 
     g_menu_append(parent, i->label, action_name);
 }
 

mercurial