For submenus remember the parent and parent index, so we can grey out our
entry if the menu is disabled. This does create a circular reference, so cleanup
becomes more important.
diff --git a/Mac/Lib/FrameWork.py b/Mac/Lib/FrameWork.py
index 866b869..7d93ccb 100644
--- a/Mac/Lib/FrameWork.py
+++ b/Mac/Lib/FrameWork.py
@@ -518,6 +518,7 @@
 		self.id, self.menu = self.bar.addmenu(title, after)
 		bar.menus[self.id] = self
 		self.items = []
+		self._parent = None
 		
 	def delete(self):
 		self.bar.delmenu(self.id)
@@ -526,6 +527,7 @@
 		del self.items
 		del self.menu
 		del self.id
+		del self._parent
 		
 	def additem(self, label, shortcut=None, callback=None, kind=None):
 		self.menu.AppendMenu('x')		# add a dummy string
@@ -556,6 +558,8 @@
 		sub = Menu(self.bar, title, -1)
 		item = self.additem(label, '\x1B', None, 'submenu')
 		self.menu.SetItemMark(item, sub.id)
+		sub._parent = self
+		sub._parent_item = item
 		return sub
 	
 	def dispatch(self, id, item, window, event):
@@ -587,8 +591,12 @@
 	def enable(self, onoff):
 		if onoff:
 			self.menu.EnableItem(0)
+			if self._parent:
+				self._parent.menu.EnableItem(self._parent_item)
 		else:
 			self.menu.DisableItem(0)
+			if self._parent:
+				self._parent.menu.DisableItem(self._parent_item)
 		if self.bar and self.bar.parent:
 				self.bar.parent.needmenubarredraw = 1