Mercurial > dwindows
changeset 2286:2d282d8fe911
GTK4: Change to how the action name is created, don't use the menu label...
instead use the handle to the menu and the menu id... so there are never any
invalid characters in it.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 03 Feb 2021 22:39:16 +0000 |
parents | 5113afb0aea9 |
children | 680212c356e3 |
files | gtk4/dw.c |
diffstat | 1 files changed, 4 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/gtk4/dw.c Wed Feb 03 22:27:12 2021 +0000 +++ b/gtk4/dw.c Wed Feb 03 22:39:16 2021 +0000 @@ -2245,7 +2245,7 @@ } } -char _dw_removetilde(char *action, char *dest, const char *src) +char _dw_removetilde(char *dest, const char *src) { int z, cur=0; char accel = '\0'; @@ -2254,19 +2254,11 @@ { if(src[z] == '~') { - action[cur] = dest[cur] = '_'; + dest[cur] = '_'; accel = src[z+1]; } - else if(src[z] == ' ') - { - action[cur] = '_'; - dest[cur] = src[z]; - } else - { - action[cur] = src[z]; dest[cur] = src[z]; - } cur++; } dest[cur] = 0; @@ -2291,7 +2283,6 @@ GMenuItem *tmphandle = NULL; GMenuModel *menumodel; char *temptitle = alloca(strlen(title)+1); - char *tempaction = alloca(strlen(title)+1); int submenucount; if(!menu) @@ -2301,7 +2292,7 @@ menumodel = gtk_popover_menu_bar_get_menu_model(GTK_POPOVER_MENU_BAR(menu)); else menumodel = gtk_popover_menu_get_menu_model(GTK_POPOVER_MENU(menu)); - _dw_removetilde(tempaction, temptitle, title); + _dw_removetilde(temptitle, title); submenucount = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menu), "_dw_submenucount")); if (strlen(temptitle) == 0) @@ -2329,7 +2320,7 @@ { char numbuf[25] = {0}; - snprintf(tempbuf, 100, "menu.%s", tempaction); + snprintf(tempbuf, 100, "menu.%llu-%lu", DW_POINTER_TO_ULONGLONG(menu), id); action = g_simple_action_new(tempbuf, NULL); g_object_ref(G_OBJECT(action)); tmphandle=g_menu_item_new(temptitle, tempbuf);