--- /home/alejandro/menu.py +++ /home/alejandro/menu_changes.py @@ -143,6 +143,8 @@ self.mf["menu"] = self.menubar labs = {} mwth = 0 + # + menu_xpos = 0 for m in self.menues: if m[0] == "MM": if "mbar" in labs: @@ -157,6 +159,8 @@ exec "self.menubar.add_cascade(image=img, menu=%s)" % m[1] exec "cm1 = lambda event, self=self, menu=%s: "\ "self.postMenu(event, menu)" % m[1] + exec "%s.menu_xpos = menu_xpos" % m[1] + menu_xpos += img.width() self.menubar.bind_all("<%s>" % m[2][pos].upper(), cm1) self.menubar.bind_all("<%s>" % m[2][pos].lower(), cm1) self.menubar.bind_all("", self.unpostMenu) @@ -205,12 +209,11 @@ self.mf.mainloop() def postMenu(self, event, menu): - menu.event_generate("") - menu.event_generate("") - menu.event_generate("") - #menu.post(event.x_root, event.y_root) - #self.posted = menu - #menu.focus_force() + x = menu.menu_xpos + y = self.mf.winfo_y(); + menu.post(x, y) + self.posted = menu + menu.focus_force() def unpostMenu(self, event): try: