ui/motif/menu.c

changeset 1108
2c8ab8c17da7
parent 1016
ccde46662db7
--- a/ui/motif/menu.c	Fri Apr 24 12:52:18 2026 +0200
+++ b/ui/motif/menu.c	Fri Apr 24 12:54:28 2026 +0200
@@ -302,11 +302,14 @@
         i++;
     }
     
-    ui_getvaluefunc getvalue = list->getvalue;
+    int row = 0;
+    ui_getvaluefunc2 getvalue = list->getvalue;
+    void *getvaluedata = list->getvaluedata;
     int pos = list->index;
     while(elm) {
         n = 0;
-        char *label = (char*) (getvalue ? getvalue(elm, 0) : elm);
+        UiBool freeResult = FALSE;
+        char *label = (char*) (getvalue ? getvalue(ls, elm, row, 0, getvaluedata, &freeResult) : elm);
         if(label) {
             s = XmStringCreateLocalized(label);
             XtSetArg(args[n], XmNlabelString, s); n++;
@@ -341,7 +344,12 @@
                     eventdata);
         }
         
+        if(freeResult) {
+            free(label);
+        }
+        
         elm = ui_list_next(ls);
+        row++;
         i++;
     }
     

mercurial