Use gtk_status_icon_set_name() only if it is available.
authorDaiki Ueno <daiki.ueno@gmail.com>
Tue, 29 Mar 2011 13:39:44 +0000 (09:39 -0400)
committerPeng Huang <shawn.p.huang@gmail.com>
Tue, 29 Mar 2011 13:39:44 +0000 (09:39 -0400)
gtk_status_icon_set_name() is not exported to python through pygtk2 <= 2.17,
which is the version from Debian sid and Fedora 14.

>>> import gtk
>>> gtk.pygtk_version
(2, 17, 0)
>>> hasattr(gtk.StatusIcon, 'set_name')
False

This patch checks the availability.

BUG=none
TEST=manual

Review URL: http://codereview.appspot.com/4327042
Patch from Daiki Ueno <daiki.ueno@gmail.com>.

ui/gtk/panel.py

index 9d63a17..752a26a 100644 (file)
@@ -110,7 +110,9 @@ class Panel(ibus.PanelBase):
         # so that gtk_window_realize() is called later again.
         # set_title is for gnome-shell notificationDaemon in bottom right.
         self.__status_icon.set_visible(False)
-        self.__status_icon.set_name('ibus-ui-gtk')
+        # gtk_status_icon_set_name() is not available in pygtk2 2.17
+        if hasattr(self.__status_icon, 'set_name'):
+            self.__status_icon.set_name('ibus-ui-gtk')
         self.__status_icon.set_title(_("IBus Panel"))
         self.__status_icon.set_visible(True)
         self.__status_icon.connect("popup-menu", self.__status_icon_popup_menu_cb)