[Xfce4-commits] <design:master> Fix some of the state transition issues.

Jannis Pohlmann noreply at xfce.org
Tue May 31 02:42:01 CEST 2011


Updating branch refs/heads/master
         to 35203c9b19d6a5333feddbaf8a8141bb06c40248 (commit)
       from 8bd4c51c7c7e31d26c685671ec4ed5dccd42d9da (commit)

commit 35203c9b19d6a5333feddbaf8a8141bb06c40248
Author: Jannis Pohlmann <jannis at xfce.org>
Date:   Tue May 31 02:41:21 2011 +0200

    Fix some of the state transition issues.

 .../demo-code/custom-view/shortcut-row.vala        |   29 +++++---------------
 1 files changed, 7 insertions(+), 22 deletions(-)

diff --git a/thunar/shortcuts-pane/demo-code/custom-view/shortcut-row.vala b/thunar/shortcuts-pane/demo-code/custom-view/shortcut-row.vala
index a3ae28d..dd20267 100644
--- a/thunar/shortcuts-pane/demo-code/custom-view/shortcut-row.vala
+++ b/thunar/shortcuts-pane/demo-code/custom-view/shortcut-row.vala
@@ -126,27 +126,9 @@ public class ShortcutRow : EventBox {
   }
 
   public override bool expose_event (Gdk.EventExpose event) {
-    /*
-    Cairo.Context cairo = Gdk.cairo_create (window);
-
-    cairo.rectangle (event.area.x, event.area.y, event.area.width, event.area.height);
-    cairo.clip ();
-
     StateType state = get_state ();
 
-    cairo.rectangle (event.area.x, event.area.y, event.area.width, event.area.height);
-
-    if (state == StateType.PRELIGHT) {
-      cairo.set_source_rgb (0.9, 0.9, 0.9);
-      cairo.fill_preserve ();
-    }
-
-    if (state == StateType.SELECTED) {
-      cairo.set_source_rgb (0.5, 0.5, 0.5);
-      cairo.fill_preserve ();
-    }*/
-
-    paint_flat_box (style, event.window, get_state (), ShadowType.NONE,
+    paint_flat_box (style, event.window, state, ShadowType.NONE,
                     event.area, this, "cell_even_middle",
                     event.area.x, event.area.y,
                     event.area.width, event.area.height);
@@ -169,18 +151,21 @@ public class ShortcutRow : EventBox {
   }
 
   public override bool button_press_event (Gdk.EventButton event) {
+    set_state (StateType.SELECTED);
     return true;
   }
 
   public override bool enter_notify_event (Gdk.EventCrossing event) {
-    set_state (StateType.PRELIGHT);
-    return false;
+    if (get_state () != StateType.SELECTED) {
+      set_state (StateType.PRELIGHT);
+    }
+    return true;
   }
 
   public override bool leave_notify_event (Gdk.EventCrossing event) {
     if (get_state () == StateType.PRELIGHT) {
       set_state (StateType.NORMAL);
     }
-    return false;
+    return true;
   }
 }



More information about the Xfce4-commits mailing list