From e587c1ef3f747e6fdbdd0ccd895fc1c3daca14ae Mon Sep 17 00:00:00 2001 From: Joshua Lock Date: Tue, 20 Mar 2012 15:45:33 -0700 Subject: ui/crumbs/persistenttooltip: fix colours on darker themes Darker gtk+ themes, such as the one used in Ubuntu Unity, revealed that the PersistentTooltip styling wasn't setting the label colour correctly. Set the label foreground colour to the tooltip_fg_colour value as read from gtk-color-scheme property of the system settings. (From Poky rev: 0934cfcea5986dbdc50e7159ee907c70b0b3e587) (Bitbake rev: ab15ef585e51e4c85a4a55aa6b35fbf3b53f3805) Signed-off-by: Joshua Lock Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/crumbs/persistenttooltip.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'bitbake') diff --git a/bitbake/lib/bb/ui/crumbs/persistenttooltip.py b/bitbake/lib/bb/ui/crumbs/persistenttooltip.py index e9cc380b0a..d065ab2c07 100644 --- a/bitbake/lib/bb/ui/crumbs/persistenttooltip.py +++ b/bitbake/lib/bb/ui/crumbs/persistenttooltip.py @@ -38,6 +38,11 @@ class PersistentTooltip(gtk.Window): def __init__(self, markup): gtk.Window.__init__(self, gtk.WINDOW_POPUP) + # Inherit the system theme for a tooltip + style = gtk.rc_get_style_by_paths(gtk.settings_get_default(), + 'gtk-tooltip', 'gtk-tooltip', gobject.TYPE_NONE) + self.set_style(style) + # The placement of the close button on the tip should reflect how the # window manager of the users system places close buttons. Try to read # the metacity gconf key to determine whether the close button is on the @@ -96,17 +101,28 @@ class PersistentTooltip(gtk.Window): hbox.show() vbox.pack_end(hbox, True, True, 6) self.label = gtk.Label() + # We want to match the colours of the normal tooltips, as dictated by + # the users gtk+-2.0 theme, wherever possible - on some systems this + # requires explicitly setting a fg_color for the label which matches the + # tooltip_fg_color + settings = gtk.settings_get_default() + colours = settings.get_property('gtk-color-scheme').split('\n') + # remove any empty lines, there's likely to be a trailing one after + # calling split on a dictionary-like string + colours = filter(None, colours) + for col in colours: + item, val = col.split(': ') + if item == 'tooltip_fg_color': + style = self.label.get_style() + style.fg[gtk.STATE_NORMAL] = gtk.gdk.color_parse(val) + self.label.set_style(style) + break # we only care for the tooltip_fg_color self.label.set_markup(markup) self.label.show() hbox.pack_end(self.label, True, True, 6) self.connect("key-press-event", self._catch_esc_cb) - # Inherit the system theme for a tooltip - style = gtk.rc_get_style_by_paths(gtk.settings_get_default(), - 'gtk-tooltip', 'gtk-tooltip', gobject.TYPE_NONE) - self.set_style(style) - self.add(vbox) """ -- cgit v1.2.3-54-g00ecf