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