[Top][All Lists]
[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;