From ac2778a74663d0c47cbdff7f0d8608a5a8d45a89 Mon Sep 17 00:00:00 2001 From: yetist Date: Sun, 20 May 2018 11:52:44 +0800 Subject: panel-menu-button.c: Force use basename for compare * matemenu_tree_get_canonical_menu_path () now return absolute file path, not basename like matemenu_tree_get_menu_file. --- mate-panel/panel-menu-button.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'mate-panel/panel-menu-button.c') diff --git a/mate-panel/panel-menu-button.c b/mate-panel/panel-menu-button.c index 9f57d139..4d8e2ad2 100644 --- a/mate-panel/panel-menu-button.c +++ b/mate-panel/panel-menu-button.c @@ -128,20 +128,33 @@ panel_menu_filename_to_scheme (const char *filename) { const char *retval; int i; + gchar *basename; retval = NULL; if (!filename) return retval; + /* Note: + * filename in root_items dose not have the parent directory, + * if filename passed is absolute path, this function will return NULL. + * so here use the basename for compare. + */ + if (g_path_is_absolute (filename)) { + basename = g_path_get_basename (filename); + } else { + basename = g_strdup(filename); + } + for (i = 0; i < G_N_ELEMENTS (root_items); i++) { if (root_items [i].filename && - !strncmp (filename, root_items [i].filename, + !strncmp (basename, root_items [i].filename, strlen (root_items [i].filename))) { retval = root_items [i].scheme; break; } } + g_free(basename); return retval; } -- cgit v1.2.1