Remove a workaround for an old pygtk bug
The bug was documented as a "focus bug in pygtk" on nested Gtk.MenuItem objects. The workaround was to switch the signal handler from "activate" to "button-release-event". This was done in Mar 2012 and pygtk is no longer supported upstream. I reverted the workaround and noticed no issues during testing. This allows all MenuItem callbacks to share a common interface and should allow keyboard control of sub-menus.
This commit is contained in:
parent
2effc3fe8a
commit
e74e30b875
|
@ -101,7 +101,7 @@ class LadiManagerGtk(LadiManager):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def studio_configure(self, item, event, module):
|
def studio_configure(self, item, module):
|
||||||
LadiManager.launcher_exec(self, command=['%s' % self._launcher_which('ladi-control-center') , '-m', module])
|
LadiManager.launcher_exec(self, command=['%s' % self._launcher_which('ladi-control-center') , '-m', module])
|
||||||
|
|
||||||
def on_about(self, *args, **kwargs):
|
def on_about(self, *args, **kwargs):
|
||||||
|
|
|
@ -80,18 +80,18 @@ class LadiMenu(LadiManagerGtk):
|
||||||
item = Gtk.MenuItem(_("JACK engine"))
|
item = Gtk.MenuItem(_("JACK engine"))
|
||||||
item.show()
|
item.show()
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
item.connect("button-release-event", function, "engine")
|
item.connect("activate", function, "engine")
|
||||||
# 'params' item
|
# 'params' item
|
||||||
item = Gtk.MenuItem(_('JACK "%s" driver') % jack.get_selected_driver())
|
item = Gtk.MenuItem(_('JACK "%s" driver') % jack.get_selected_driver())
|
||||||
item.show()
|
item.show()
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
item.connect("button-release-event", function, "params")
|
item.connect("activate", function, "params")
|
||||||
for internal in jack.read_container(['internals']):
|
for internal in jack.read_container(['internals']):
|
||||||
module = str(internal)
|
module = str(internal)
|
||||||
item = Gtk.MenuItem(_('JACK "%s"') % module)
|
item = Gtk.MenuItem(_('JACK "%s"') % module)
|
||||||
item.show()
|
item.show()
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
item.connect("button-release-event", function, module)
|
item.connect("activate", function, module)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
sys.stderr.write(str(err))
|
sys.stderr.write(str(err))
|
||||||
sys.stderr.flush()
|
sys.stderr.flush()
|
||||||
|
@ -109,7 +109,7 @@ class LadiMenu(LadiManagerGtk):
|
||||||
item = Gtk.MenuItem(studio)
|
item = Gtk.MenuItem(studio)
|
||||||
item.show()
|
item.show()
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
item.connect("button-release-event", function, studio) # "activate" is not used because of focus bug in pygtk
|
item.connect("activate", function, studio)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.menu_clear(menu)
|
self.menu_clear(menu)
|
||||||
item = Gtk.MenuItem(_("Error obtaining studio list"))
|
item = Gtk.MenuItem(_("Error obtaining studio list"))
|
||||||
|
@ -195,11 +195,11 @@ class LadiMenu(LadiManagerGtk):
|
||||||
menu.show_all()
|
menu.show_all()
|
||||||
return menu
|
return menu
|
||||||
|
|
||||||
def studio_load(self, item, event, studio):
|
def studio_load(self, item, studio):
|
||||||
LadiManagerGtk.studio_load(self, item=item, event=event, studio=studio)
|
LadiManagerGtk.studio_load(self, item=item, studio=studio)
|
||||||
|
|
||||||
def studio_delete(self, item, event, studio):
|
def studio_delete(self, item, studio):
|
||||||
LadiManagerGtk.studio_delete(self, item=item, event=event, studio=studio)
|
LadiManagerGtk.studio_delete(self, item=item, studio=studio)
|
||||||
|
|
||||||
def menu_activate(self):
|
def menu_activate(self):
|
||||||
menu = self.create_menu()
|
menu = self.create_menu()
|
||||||
|
|
Loading…
Reference in New Issue