Updating branch refs/heads/master
         to b4fbbd60e6b44b350baca709126f2fc82c5906e6 (commit)
       from 00e6df9fcdb4ef3b23dd4eca33d0d94d9a2a18a4 (commit)

commit b4fbbd60e6b44b350baca709126f2fc82c5906e6
Author: Mike Massonnet <[email protected]>
Date:   Sun Nov 11 00:05:14 2012 +0100

    Button effect for IconButton on mouse hover (only GTK+3)
    
    Since GTK+3 has only background and foreground colors, the icon-button class
    has a button like effect on mouse hover when sensitive.

 lib/icon-button.vala |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/lib/icon-button.vala b/lib/icon-button.vala
index 670691f..5b7fb7f 100644
--- a/lib/icon-button.vala
+++ b/lib/icon-button.vala
@@ -31,7 +31,9 @@ namespace Xnp {
                        set_visible_window (false);
                        set_above_child (true);
                        set_size_request (22, 22);
+#if !ENABLE_GTK3
                        set_border_width (2);
+#endif
 
                        enter_notify_event.connect (on_enter_notify_event);
                        leave_notify_event.connect (on_leave_notify_event);
@@ -42,8 +44,17 @@ namespace Xnp {
 
                protected void set_widget_source_color (Cairo.Context cr) {
 #if ENABLE_GTK3
-                       if (sensitive && active)
-                               Gdk.cairo_set_source_rgba (cr, 
get_style_context ().get_color (Gtk.StateFlags.PRELIGHT));
+                       if (sensitive && active) {
+                               int width = get_allocated_width ();
+                               int height = get_allocated_height ();
+                               var style_context = get_style_context ();
+                               style_context.save ();
+                               style_context.add_class 
(Gtk.STYLE_CLASS_BUTTON);
+                               style_context.render_frame (cr, 0, 0, width, 
height);
+                               style_context.render_background (cr, 0, 0, 
width, height);
+                               style_context.restore ();
+                               Gdk.cairo_set_source_rgba (cr, 
style_context.get_color (Gtk.StateFlags.PRELIGHT));
+                       }
                        else if (sensitive && !active)
                                Gdk.cairo_set_source_rgba (cr, 
get_style_context ().get_color (Gtk.StateFlags.NORMAL));
                        else if (!sensitive)
_______________________________________________
Xfce4-commits mailing list
[email protected]
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to