diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-05-06 02:48:59 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-05-06 02:48:59 +0000 |
commit | e1ed9467dc9f9ffec7549958b1bca27b753e8742 (patch) | |
tree | fc4980e554b27d553f0f3d260288e22445131d0d /gtk2_ardour/led.cc | |
parent | c52a0d1efc8cc6c506f9f224df980a2416818552 (diff) |
draw LED background with same style as parent window; less debugging
git-svn-id: svn://localhost/ardour2/branches/3.0@7070 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/led.cc')
-rw-r--r-- | gtk2_ardour/led.cc | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/gtk2_ardour/led.cc b/gtk2_ardour/led.cc index e1a98da228..645b65e99b 100644 --- a/gtk2_ardour/led.cc +++ b/gtk2_ardour/led.cc @@ -52,21 +52,28 @@ LED::render (cairo_t* cr) //background - RefPtr<Style> style = get_style(); + Widget* parent; + RefPtr<Style> style; Color c; - - switch (_visual_state) { - case 0: - c = style->get_bg (STATE_NORMAL); - break; - default: - c = style->get_bg (STATE_ACTIVE); - break; + + parent = get_parent (); + + while (parent && !parent->get_has_window()) { + parent = parent->get_parent(); + } + + if (parent && parent->get_has_window()) { + style = parent->get_style (); + c = style->get_bg (parent->get_state()); + } else { + style = get_style (); + c = style->get_bg (get_state()); } + cairo_rectangle(cr, 0, 0, _width, _height); cairo_stroke_preserve(cr); - cairo_set_source_rgb(cr, c.get_green_p(), c.get_red_p(), c.get_blue_p()); + cairo_set_source_rgb(cr, c.get_red_p(), c.get_green_p(), c.get_blue_p()); cairo_fill(cr); cairo_translate(cr, _width/2, _height/2); |