[Dicson] Ability to resize statusicon when statusbar changes. Fixes #5911

This commit is contained in:
Yann Leboulanger 2010-09-16 20:27:54 +02:00
parent 096b8f3d91
commit 5911966828
1 changed files with 15 additions and 2 deletions

View File

@ -86,12 +86,15 @@ class StatusIcon:
def show_icon(self):
if not self.status_icon:
self.status_icon = gtk.StatusIcon()
self.statusicon_size = '16'
self.status_icon.set_property('has-tooltip', True)
self.status_icon.connect('activate', self.on_status_icon_left_clicked)
self.status_icon.connect('popup-menu',
self.on_status_icon_right_clicked)
self.status_icon.connect('query-tooltip',
self.on_status_icon_query_tooltip)
self.status_icon.connect('size-changed',
self.on_status_icon_size_changed)
self.set_img()
self.status_icon.set_visible(True)
@ -112,6 +115,16 @@ class StatusIcon:
def on_status_icon_left_clicked(self, widget):
self.on_left_click()
def on_status_icon_size_changed(self, statusicon, size):
if size > 31:
self.statusicon_size = '32'
else:
self.statusicon_size = '16'
if os.environ.get('KDE_FULL_SESSION') == 'true':
# detect KDE session. see #5476
self.statusicon_size = '32'
self.set_img()
def set_img(self):
"""
Apart from image, we also update tooltip text here
@ -123,8 +136,8 @@ class StatusIcon:
else:
self.status_icon.set_blinking(False)
# FIXME: do not always use 16x16 (ask actually used size and use that)
image = gajim.interface.jabber_state_images['16'][self.status]
image = gajim.interface.jabber_state_images[self.statusicon_size][
self.status]
if image.get_storage_type() == gtk.IMAGE_PIXBUF:
self.status_icon.set_from_pixbuf(image.get_pixbuf())
# FIXME: oops they forgot to support GIF animation?