fenfire-commits
[Top][All Lists]
Advanced

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

[ff-cvs] fenfire/org/fenfire/fenpdf/events eventhandler.py


From: Matti Katila
Subject: [ff-cvs] fenfire/org/fenfire/fenpdf/events eventhandler.py
Date: Mon, 25 Aug 2003 20:30:44 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Matti Katila <address@hidden>   03/08/25 20:30:44

Modified files:
        org/fenfire/fenpdf/events: eventhandler.py 

Log message:
        shake it baby, shake it - events are stolen now and pudding code is 
eaten.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/events/eventhandler.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/fenpdf/events/eventhandler.py
diff -u fenfire/org/fenfire/fenpdf/events/eventhandler.py:1.6 
fenfire/org/fenfire/fenpdf/events/eventhandler.py:1.7
--- fenfire/org/fenfire/fenpdf/events/eventhandler.py:1.6       Mon Aug 25 
05:28:52 2003
+++ fenfire/org/fenfire/fenpdf/events/eventhandler.py   Mon Aug 25 20:30:44 2003
@@ -2,61 +2,34 @@
 
 import vob
 
-dbg = 0
+dbg = 1
 def p(*s):
     print 'ff.fenpdf.events.eventhandler::', s
 
 class EventHandler:
     def __init__(self, fenPDF):
         self.fenPDF = fenPDF
+        self.eventStoler = None
 
-       # Whether the next mouse click should be eaten
-       # Used when a mouse press did something.
-       self._eatNextClick = 0
-
-        
     def mouse(self, ev, oldvs):
-        """ Callback from buoymanager, should not do context things..
-        Mostly because of click workaround.
-        @see vob.buoy.buoymanager.MultibuoyManager.mouse(..)
+        """ *THE* event handler - if you want to stole a event - stole
+        it in the beginning. 
         """
+        self.context.states.lastEvent = ev
+
         if dbg: p(ev)
 
-       # MouseMenu will want to know if the mouse is pressed
-       # to remove itself if the press is not inside
-       # the menu.
-       #
-       # In addition to the PRESSED, 
-       # we need to eat the next MOUSE_CLICKED event.
-       if ev.getType() == ev.MOUSE_PRESSED:
-           # If a previous PRESSED didn't end as a click
-           # because of a drag, don't eat the following click.
-           self._eatNextClick = 0
-           if self.fenPDF.uistate.menu.shown and \
-               not self.fenPDF.events.mousemenu.mousePressed(ev) :
-               p("Eating next click")
-               self._eatNextClick = 1
-               return 1
-
-        if dbg: p("1", self._eatNextClick)
-           
-        if ev.getType() == ev.MOUSE_CLICKED:
-           if self._eatNextClick:
-               self._eatNextClick = 0
-               return 1
-           if (self.fenPDF.events.mousemenu.mouseClicked(ev) or
-               self.fenPDF.events.buttons.mouseEvent(ev, oldvs)):
-               p('context seen, now cleaning it')
-               self.context.clean()
-               self.fenPDF.events.mouse.mainMouse.flush()
-               vob.AbstractUpdateManager.chg()
-               return 1
+        if self.eventStoler:
+            self.eventStoler(ev, oldvs)
+            return
 
-           self.context.clean()
+        if self.fenPDF.events.buttons.mouseEvent(ev, oldvs):
+            vob.AbstractUpdateManager.chg()
+            return
 
         if dbg: p("2")
 
-        if ev.getType() == ev.MOUSE_RELEASED:
+        if 0 and ev.getType() == ev.MOUSE_RELEASED:
             p('mainMouse released? - there\'s a bug in here!')
 
             # release event must go to mainMouse MouseMultiplexer to work 
correctly!
@@ -66,20 +39,15 @@
             self.fenPDF.events.mouse.buoyMouse.flush()
              
             self.fenPDF.window.setCursor('default')
+            return
 
-            # workaround..
-            if self.context.states.lastEvent.getType() == ev.MOUSE_PRESSED:
-                p('workaround for a bug')
-                return 1
-
-            # There is a bug in AbstractUpdateManager code(?) and that's why 
now is must to return.
         if dbg: p("3")
 
 
-        self.context.states.lastEvent = ev
 
        buoymanager = self.fenPDF.views.getBuoyManager()
         """ Returns true if buoymanager has eaten the event ;)"""
+        # THIS code is in wrong place!
         if not hasattr(buoymanager, 'vs'):
             vob.AbstractUpdateManager.setNoAnimation()
             vob.AbstractUpdateManager.chg()
@@ -87,12 +55,13 @@
 
         if dbg: p("3")
 
+        # this is rather ugly
         if ev.getType() == ev.MOUSE_DRAGGED:
             if buoymanager.singles[buoymanager.lastIndex].mainNode.mouse(ev, 
buoymanager.vs):
                 buoymanager.replaceScene = buoymanager.vs
                 vob.AbstractUpdateManager.setNoAnimation()
             vob.AbstractUpdateManager.chg()
-            return 1
+            return
 
         if dbg: p("4")
 
@@ -102,8 +71,7 @@
            # pa("IN CS: ",cs, link)
            buoymanager.buoyHit.set(buoymanager.singles[single], link)
            if buoymanager.eventHandler.buoyMouse(buoymanager, ev, 
buoymanager.singles[single], link):
-               return 1
-           return 0
+                return
 
         if dbg: p("5")
 
@@ -115,12 +83,6 @@
                 buoymanager.replaceScene = buoymanager.vs
                 vob.AbstractUpdateManager.setNoAnimation()
             vob.AbstractUpdateManager.chg()
-            return 1
-        return 0
-
-
-        return 0
-
 
 
     def buoyMouse(self, mgr, ev, single, link):




reply via email to

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