]> git.pld-linux.org Git - packages/mate-menus.git/blob - xdg-menu-prefix-compat.patch
handle XDG_MENU_PREFIX, like it was in GNOME2/GNOME3
[packages/mate-menus.git] / xdg-menu-prefix-compat.patch
1 restore XDG_MENU_PREFIX functionality
2
3 23:19:05  glen> hmm, xdg menus does not seem to work
4 23:19:07  glen> i mean $XDG_MENU_PREFIX
5 23:19:09  glen> is not respected
6 23:19:51  glen> 23:19:38 root[load: 3.16]@blodnatt xdg/menus# ls -l /etc/xdg/menus/${XDG_MENU_PREFIX}applications.menu
7 23:19:51  glen> -rw-r--r-- 1 root root 23K 18. mai    2012 /etc/xdg/menus/applnk-applications.menu
8
9 seems perberos just renamed the file not to conflict file installed by GNOME
10
11 additionally load mate-applications.menu if XDG_MENU_PREFIX is not set, as this
12 is how we package mate applications.menu.
13 --- mate-menus-1.5.0/./libmenu/matemenu-tree.c~ 2012-10-11 11:26:03.000000000 +0300
14 +++ mate-menus-1.5.0/./libmenu/matemenu-tree.c  2013-01-15 23:41:33.733159313 +0200
15 @@ -539,7 +539,7 @@
16         {
17                 matemenu_tree_remove_menu_file_monitors (tree);
18  
19 -               if (strcmp(tree->basename, "mate-applications.menu") == 0 && g_getenv("XDG_MENU_PREFIX"))
20 +               if (strcmp(tree->basename, "applications.menu") == 0 && g_getenv("XDG_MENU_PREFIX"))
21                 {
22                         char* prefixed_basename;
23                         prefixed_basename = g_strdup_printf("%s%s", g_getenv("XDG_MENU_PREFIX"), tree->basename);
24 @@ -1895,7 +1895,7 @@
25         found = FALSE;
26         menu_file = g_strconcat(menu_name, ".menu", NULL);
27  
28 -       if (strcmp(menu_file, "mate-applications.menu") == 0 && g_getenv("XDG_MENU_PREFIX"))
29 +       if (strcmp(menu_file, "applications.menu") == 0 && g_getenv("XDG_MENU_PREFIX"))
30         {
31                 char* prefixed_basename;
32                 prefixed_basename = g_strdup_printf("%s%s", g_getenv("XDG_MENU_PREFIX"), menu_file);
33 --- mate-menus-1.5.0/util/test-menu-spec.c~     2012-10-11 11:26:03.000000000 +0300
34 +++ mate-menus-1.5.0/util/test-menu-spec.c      2013-01-15 23:36:26.719020435 +0200
35 @@ -191,8 +191,7 @@
36                 flags |= MATEMENU_TREE_FLAGS_INCLUDE_NODISPLAY;
37         }
38  
39 -       // Usamos applications.menu is existe. Para compatibilidad con GNOME
40 -       MateMenuTree* tree = matemenu_tree_lookup(menu_file ? menu_file : "mate-applications.menu", flags);
41 +       MateMenuTree* tree = matemenu_tree_lookup(menu_file ? menu_file : "applications.menu", flags);
42  
43         g_assert(tree != NULL);
44  
45 --- mate-menus-1.5.0/util/mate-menus-ls.py~     2012-10-11 11:26:03.000000000 +0300
46 +++ mate-menus-1.5.0/util/mate-menus-ls.py      2013-01-15 23:37:38.595663893 +0200
47 @@ -72,7 +72,7 @@
48      if options.file:
49          menu_file = options.file
50      else:
51 -        menu_file = 'mate-applications.menu'
52 +        menu_file = 'applications.menu'
53  
54      flags = matemenu.FLAGS_NONE
55      if options.exclude:
56 --- mate-menus-1.5.0/libmenu/matemenu-tree.c~   2013-01-16 11:12:55.000000000 +0200
57 +++ mate-menus-1.5.0/libmenu/matemenu-tree.c    2013-01-16 12:36:08.224428926 +0200
58 @@ -1903,6 +1903,15 @@
59                 g_free(prefixed_basename);
60         }
61  
62 +       // load mate-applications.menu
63 +       if (!found && !g_getenv("XDG_MENU_PREFIX"))
64 +       {
65 +               char* prefixed_basename;
66 +               prefixed_basename = g_strdup_printf("mate-%s", menu_file);
67 +               found = load_parent_merge_file_from_basename(tree, loaded_menu_files, layout, prefixed_basename, canonical_basedir);
68 +               g_free(prefixed_basename);
69 +       }
70 +
71         if (!found)
72         {
73                 found = load_parent_merge_file_from_basename(tree, loaded_menu_files, layout, menu_file, canonical_basedir);
This page took 0.079158 seconds and 3 git commands to generate.