+++ /dev/null
---- mate-mintmenu-5.9.1.orig/mintmenu/usr/lib/linuxmint/mintMenu/plugins/applications.py 2019-03-19 23:11:55.748303593 +0100
-+++ mate-mintmenu-5.9.1/mintmenu/usr/lib/linuxmint/mintMenu/plugins/applications.py 2019-03-20 00:04:22.751620910 +0100
-@@ -2,8 +2,9 @@
-
- import gi
- gi.require_version("Gtk", "3.0")
-+gi.require_version("MateMenu", "2.0")
-
--from gi.repository import Gtk, Pango, Gdk, Gio, GLib
-+from gi.repository import Gtk, Pango, Gdk, Gio, GLib, MateMenu
-
- import os
- import time
-@@ -20,8 +21,6 @@
- import recentHelper as RecentHelper
- import pipes
-
--import matemenu
--
- from user import home
-
- # i18n
-@@ -86,7 +85,8 @@
-
- class Menu:
- def __init__( self, MenuToLookup ):
-- self.tree = matemenu.lookup_tree( MenuToLookup )
-+ self.tree = MateMenu.Tree.new( MenuToLookup, MateMenu.TreeFlags.NONE )
-+ self.tree.load_sync()
- self.directory = self.tree.get_root_directory()
-
- def getMenus( self, parent=None ):
-@@ -94,19 +94,29 @@
- #gives top-level "Applications" item
- yield self.tree.root
- else:
-- for menu in parent.get_contents():
-- if menu.get_type() == matemenu.TYPE_DIRECTORY and self.__isVisible( menu ):
-- yield menu
-+ item_iter = parent.iter()
-+ item_type = item_iter.next()
-+ while item_type != MateMenu.TreeItemType.INVALID:
-+ if item_type == MateMenu.TreeItemType.DIRECTORY:
-+ item = item_iter.get_directory()
-+ if self.__isVisible( item ):
-+ yield item
-+ item_type = item_iter.next()
-
- def getItems( self, menu ):
-- for item in menu.get_contents():
-- if item.get_type() == matemenu.TYPE_ENTRY and item.get_desktop_file_id()[-19:] != '-usercustom.desktop' and self.__isVisible( item ):
-- yield item
-+ item_iter = menu.iter()
-+ item_type = item_iter.next()
-+ while item_type != MateMenu.TreeItemType.INVALID:
-+ if item_type == MateMenu.TreeItemType.ENTRY:
-+ item = item_iter.get_entry()
-+ if item.get_desktop_file_id()[-19:] != '-usercustom.desktop' and self.__isVisible( item ):
-+ yield item
-
- def __isVisible( self, item ):
-- if item.get_type() == matemenu.TYPE_ENTRY:
-- return not ( item.get_is_excluded() or item.get_is_nodisplay() )
-- if item.get_type() == matemenu.TYPE_DIRECTORY and len( item.get_contents() ):
-+ if isinstance(item, MateMenu.TreeEntry):
-+ app_info = item.get_app_info()
-+ return not ( item.get_is_excluded() or app_info.get_nodisplay() )
-+ if isinstance(item, MateMenu.TreeDirectory) and item.iter().next() != MateMenu.TreeItemType.INVALID:
- return True
-
-
-@@ -271,7 +281,7 @@
-
- for mainitems in [ "mate-applications.menu", "mate-settings.menu" ]:
- mymenu = Menu( mainitems )
-- mymenu.tree.add_monitor( self.menuChanged, None )
-+ mymenu.tree.connect( "changed", self.menuChanged )
-
- self.refresh_apt_cache()
- self.suggestions = []
-@@ -1726,13 +1736,14 @@
- num = 1
-
- for menu in self.menuFiles:
-- for child in menu.directory.get_contents():
-- if child.get_type() == matemenu.TYPE_DIRECTORY:
-- icon = str(child.icon)
-- #if (icon == "preferences-system"):
-- # self.adminMenu = child.name
-- #if (icon != "applications-system" and icon != "applications-other"):
-- newCategoryList.append( { "name": child.name, "icon": child.icon, "tooltip": child.name, "filter": child.name, "index": num } )
-+ item_iter = menu.directory.iter()
-+ item_type = item_iter.next()
-+ while item_type != MateMenu.TreeItemType.INVALID:
-+ if item_type == MateMenu.TreeItemType.DIRECTORY:
-+ child = item_iter.get_directory()
-+ icon = child.get_icon().get_names()[0]
-+ newCategoryList.append( { "name": child.get_name(), "icon": icon, "tooltip": child.get_name(), "filter": child.get_name(), "index": num } )
-+ item_type = item_iter.next()
- num += 1
-
- return newCategoryList
-@@ -1743,29 +1754,34 @@
- newApplicationsList = []
-
- def find_applications_recursively(app_list, directory, catName):
-- for item in directory.get_contents():
-- if item.get_type() == matemenu.TYPE_ENTRY:
-+ item_iter = directory.iter()
-+ item_type = item_iter.next()
-+ while item_type != MateMenu.TreeItemType.INVALID:
-+ if item_type == MateMenu.TreeItemType.ENTRY:
-+ item = item_iter.get_entry()
- app_list.append( { "entry": item, "category": catName } )
-- elif item.get_type() == matemenu.TYPE_DIRECTORY:
-+ elif item_type == MateMenu.TreeItemType.DIRECTORY:
-+ item = item_iter.get_directory()
- find_applications_recursively(app_list, item, catName)
-+ item_type = item_iter.next()
-
- for menu in self.menuFiles:
- directory = menu.directory
-- for entry in directory.get_contents():
-- if entry.get_type() == matemenu.TYPE_DIRECTORY and len(entry.get_contents()):
-- #Entry is a top-level category
-- #catName = entry.name
-- #icon = str(entry.icon)
-- #if (icon == "applications-system" or icon == "applications-other"):
-- # catName = self.adminMenu
-- for item in entry.get_contents():
-- if item.get_type() == matemenu.TYPE_DIRECTORY:
-- find_applications_recursively(newApplicationsList, item, entry.name)
-- elif item.get_type() == matemenu.TYPE_ENTRY:
-- newApplicationsList.append( { "entry": item, "category": entry.name } )
-- #elif entry.get_type() == matemenu.TYPE_ENTRY:
-- # if not (entry.get_is_excluded() or entry.get_is_nodisplay()):
-- # print "=======>>> " + item.name + " = top level"
-- # newApplicationsList.append( { "entry": item, "category": "" } )
-+ entry_iter = directory.iter()
-+ entry_type = entry_iter.next()
-+ while entry_type != MateMenu.TreeItemType.INVALID:
-+ if entry_type == MateMenu.TreeItemType.DIRECTORY:
-+ entry = entry_iter.get_directory()
-+ item_iter = entry.iter()
-+ item_type = item_iter.next()
-+ while item_type != MateMenu.TreeItemType.INVALID:
-+ if item_type == MateMenu.TreeItemType.ENTRY:
-+ item = item_iter.get_entry()
-+ newApplicationsList.append( { "entry": item, "category": entry.get_name() } )
-+ elif item_type == MateMenu.TreeItemType.DIRECTORY:
-+ item = item_iter.get_directory()
-+ find_applications_recursively(newApplicationsList, item, entry.get_name())
-+ item_type = item_iter.next()
-+ entry_type = entry_iter.next()
-
- return newApplicationsList