gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] gzz/gzz/modules/pp EventHandling.java


From: Matti Katila
Subject: [Gzz-commits] gzz/gzz/modules/pp EventHandling.java
Date: Sun, 22 Dec 2002 07:26:46 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Matti Katila <address@hidden>   02/12/22 07:26:44

Modified files:
        gzz/modules/pp : EventHandling.java 

Log message:
        Some dragging fixes.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/modules/pp/EventHandling.java.diff?tr1=1.4&tr2=1.5&r1=text&r2=text

Patches:
Index: gzz/gzz/modules/pp/EventHandling.java
diff -u gzz/gzz/modules/pp/EventHandling.java:1.4 
gzz/gzz/modules/pp/EventHandling.java:1.5
--- gzz/gzz/modules/pp/EventHandling.java:1.4   Fri Dec 20 14:50:12 2002
+++ gzz/gzz/modules/pp/EventHandling.java       Sun Dec 22 07:26:44 2002
@@ -10,7 +10,7 @@
 import java.util.*;
 
 
-/** Handles events and Emulates funtion pointer.
+/** Handles events and emulates funtion pointer.
  * STATE: PROTOTYPE
  */
 public class EventHandling {
@@ -76,6 +76,8 @@
     // drag state
     private Pair drag_pair = null;
     private String last_key = null;
+    private final Pair EMPTY_PAIR = new Pair(new Object(), null);
+    private final String EMPTY_KEY = new String();
 
     private boolean just_pressed = false;
     private boolean dragging = false;
@@ -98,8 +100,15 @@
 
            dragging = false;
            just_pressed = true;
+
+           // clean dragging
+           drag_pair = null;
+           last_key = null;
+
            if (dbg) pa("mouse pressed");
-           break;
+
+           // leave!
+           return;
        }
        case MouseEvent.MOUSE_CLICKED: {
            dragging = false;
@@ -114,24 +123,28 @@
            if (dbg) pa("mouse dragged");
            break;
        }
-           /*
-             case MouseEvent.MOUSE_EXITED: {
-               if (dbg) pa("mouse exited");
-               break;
-             }
-           */
        };
 
-       // event hanlder
+       // event handler
        Object ev_h, pair;
        
        // check if dragging
        if (dragging && (last_key != null && drag_pair != null)) {
+           if(last_key == EMPTY_KEY || drag_pair == EMPTY_PAIR) return;
+
            ev_h = ev_handlers.get(last_key);
            pair = drag_pair;
+           if (dbg) pa("last key: " + last_key);
        } else {
            pair = callers.get(""+cs);
-           if (pair == null) return;
+           if (pair == null) {
+               // empty coordsys -> put empty handlers so dragging 
+               // doesn't do unexpected things.
+               last_key = EMPTY_KEY;
+               drag_pair = EMPTY_PAIR;
+               if (dbg) pa("empty!!");
+               return;
+           }
            if (!(pair instanceof Pair)) { throw new Error("NOT PAIR!"); }
            
            String key = (String)((Pair)pair).first;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]