Description: Fixing some GTK-3 troubles This patch fix some GTK-3 troubles founds under upstream repository. Forwarded: no Author: Arnaud RĂ©billout Last-Update: 2015-10-18 --- radiotray.orig/data/plugins/HistoryPlugin.py +++ radiotray/data/plugins/HistoryPlugin.py @@ -20,6 +20,7 @@ from events.EventSubscriber import EventSubscriber from events.EventManager import EventManager from Plugin import Plugin +from gi.repository import GLib from gi.repository import Gtk from lib import utils from lib.common import SYSTEM_PLUGIN_PATH, USER_PLUGIN_PATH @@ -36,9 +37,7 @@ class HistoryPlugin(Plugin): - def activate(self): - self.eventSubscriber.bind(EventManager.SONG_CHANGED, self.on_song_changed) - + def activate_gtk(self, data): if os.path.exists(os.path.join(USER_PLUGIN_PATH, "history.glade")): self.gladefile = utils.load_ui_file(os.path.join(USER_PLUGIN_PATH, "history.glade")) elif os.path.exists(os.path.join(SYSTEM_PLUGIN_PATH, "history.glade")): @@ -54,6 +53,9 @@ class HistoryPlugin(Plugin): #dic = { "on_close_clicked" : self.on_close_clicked} self.gladefile.connect_signals(self) + def activate(self): + self.eventSubscriber.bind(EventManager.SONG_CHANGED, self.on_song_changed) + GLib.idle_add(self.activate_gtk, None) def on_song_changed(self, data): Index: radiotray/data/plugins/SleepTimerPlugin.py =================================================================== --- radiotray.orig/data/plugins/SleepTimerPlugin.py +++ radiotray/data/plugins/SleepTimerPlugin.py @@ -38,7 +38,7 @@ class SleepTimerPlugin(Plugin): self.cfgProvider = cfgProvider self.mediator = mediator self.tooltip = tooltip - self.menuItem = Gtk.CheckMenuItem(self.getName(), False) + self.menuItem = Gtk.CheckMenuItem(self.getName()) self.menuItem.connect('activate', self.on_menu) self.menuItem.show() Index: radiotray/src/SysTrayGui.py =================================================================== --- radiotray.orig/src/SysTrayGui.py +++ radiotray/src/SysTrayGui.py @@ -49,14 +49,14 @@ class SysTrayGui: self.radioMenu = Gtk.Menu() if not self.mediator.context.station: - self.turnOnOff = Gtk.MenuItem(_("Turned Off"), False) - self.turnOnOff2 = Gtk.MenuItem(_("Turned Off"), False) + self.turnOnOff = Gtk.MenuItem(_("Turned Off")) + self.turnOnOff2 = Gtk.MenuItem(_("Turned Off")) self.turnOnOff.set_sensitive(False) self.turnOnOff2.set_sensitive(False) else: - self.turnOnOff = Gtk.MenuItem(_('Turn On "%s"') % self.mediator.context.station, False) + self.turnOnOff = Gtk.MenuItem(_('Turn On "%s"') % self.mediator.context.station) self.turnOnOff.set_sensitive(True) - self.turnOnOff2 = Gtk.MenuItem(_('Turn On "%s"') % self.mediator.context.station, False) + self.turnOnOff2 = Gtk.MenuItem(_('Turn On "%s"') % self.mediator.context.station) self.turnOnOff2.set_sensitive(True) self.turnOnOff.connect('activate', self.handler.on_turn_on_off) @@ -75,14 +75,14 @@ class SysTrayGui: menu_item1.set_sensitive(self.provider.isBookmarkWritable()) menu_item4 = Gtk.MenuItem(_("Reload Bookmarks")) - menu_item3 = Gtk.ImageMenuItem(Gtk.STOCK_ABOUT) - menu_item2 = Gtk.ImageMenuItem(Gtk.STOCK_QUIT) + menu_item3 = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_ABOUT, None) + menu_item2 = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_QUIT, None) self.menu.append(self.turnOnOff2) self.menu.append(separator) self.menu.append(menu_item1) # plugins sub-menu - menu_plugins_item = Gtk.MenuItem("Plugins", False) + menu_plugins_item = Gtk.MenuItem("Plugins") self.menu_plugins = Gtk.Menu() menu_plugins_item.set_submenu(self.menu_plugins) menu_item5 = Gtk.MenuItem(_("Configure Plugins...")) @@ -112,7 +112,7 @@ class SysTrayGui: self.menu.show_all() - self.icon = Gtk.status_icon_new_from_file(APP_ICON_OFF) + self.icon = Gtk.StatusIcon.new_from_file(APP_ICON_OFF) self.icon.set_tooltip_markup(_("Idle (vol: %s%%)") % (self.mediator.getVolume())) self.icon.connect('button_press_event', self.button_press) self.icon.connect('scroll_event', self.handler.scroll) @@ -121,7 +121,7 @@ class SysTrayGui: def button_press(self,widget,event): if(event.button == 1): - self.radioMenu.popup(None, None, Gtk.status_icon_position_menu, 0, event.get_time(), widget) + self.radioMenu.popup(None, None, Gtk.StatusIcon.position_menu, widget, 0, event.get_time()) elif (event.button == 2): if (self.mediator.getContext().state == 'playing'): self.mediator.stop() @@ -129,7 +129,7 @@ class SysTrayGui: if self.mediator.getContext().station: self.mediator.play(self.mediator.getContext().station) else: - self.menu.popup(None, None, Gtk.status_icon_position_menu, 2, event.get_time(), widget) + self.menu.popup(None, None, Gtk.StatusIcon.position_menu, widget, 2, event.get_time()) def update_radios(self): @@ -155,7 +155,7 @@ class SysTrayGui: new_user_data = None if group_name != 'root': - group = Gtk.MenuItem(group_name, False) + group = Gtk.MenuItem(group_name) user_data.append(group) new_user_data = Gtk.Menu() group.set_submenu(new_user_data) @@ -172,7 +172,7 @@ class SysTrayGui: user_data.append(separator) separator.show() else: - radio = Gtk.MenuItem(radio_name, False) + radio = Gtk.MenuItem(radio_name) radio.show() radio.connect('activate', self.handler.on_start, radio_name) user_data.append(radio)