 				     (.refresh scn))),
 	   GWindow/BUTTON1_UP    (do
 				   (call-hook-with scn :move-stop @interaction-obj)
-				   (reset! interaction-obj nil))
+				   (reset! interaction-obj nil)),
+           GWindow/BUTTON3_DOWN  (let [thing (.find scn x y)]
+                                   (when (node? thing)
+                                     (toggle-highlight thing)
+                                     (.refresh scn))),
 	   nil)))))
 
 (defn zoom-interaction


(defn move-node-unchecked-to
  "Moves node to [new-x new-y]."
  [#^GObject node, new-x, new-y]
  ;; update self position
  (dosync
   (alter (.getUserData node) assoc :position [new-x new-y]))

  "Tests whether thing is a node of a lattice diagram or not."
  [thing]
  (and (instance? GObject thing)
       (= (:type @(.getUserData ^GObject thing)) :node)))

(defn connection?
  "Tests whether thing is a connection of a lattice diagram or not."
  [thing]
  (and (instance? GObject thing)
       (= (:type @(.getUserData ^GObject thing)) :connection)))

(defn position
  "Returns the position of a node in a lattice diagram."
  [^GObject node]
  (:position @(.getUserData node)))

(defn radius
  "Returns the radius of a node in a lattice diagram."
  [^GObject node]
  (:radius @(.getUserData node)))

(defn set-node-radius!
  "Sets radius of node."
  [^GObject node, radius]
  (dosync
   (alter (.getUserData node) assoc :radius radius)))

(defn get-name
  "Returns name of thing."
  [^GObject thing]
  (:name @(.getUserData thing)))

(defn lower-node
  "Returns for a connection conn the lower node in a lattice diagram."
  [^GObject conn]
  (:lower @(.getUserData conn)))

(defn upper-node
  "Returns for a connection conn the upper node in a lattice diagram."
  [^GObject conn]
  (:upper @(.getUserData conn)))

(defn upper-connections
  "Returns all upper connections for node in a lattice diagram."
  [^GObject node]
  (:upper @(.getUserData node)))

(defn lower-connections
  "Returns all lower connections of node in a lattice diagram."
  [^GObject node]
  (:lower @(.getUserData node)))

(defn upper-neighbors
