[sugar] Capturing all mouse events

Erik Garrison erik
Sat May 31 13:03:31 EDT 2008


On Fri, May 30, 2008 at 10:47 PM, Erik Blankinship <erikb at mediamods.com> wrote:
...

>
> This code might benefit from improvements.  Suggestions?
>

Comments and documentation please.  Here and in the rest of the Record source.



> 	def resetWidgetFadeTimer( self ):
> 		#only show the clutter when the mouse moves
> 		self.mx = -1
> 		self.my = -1
>
> 		self.hideWidgetsTimer = time.time()
> 		if (self.hiddenWidgets):
> 			self.showWidgets()
> 			self.hiddenWidgets = False
>
> 		#remove, then add
> 		self.doMouseListener( False )
> 		if (self.HIDE_WIDGET_TIMEOUT_ID != 0):
>
> 			gobject.source_remove( self.HIDE_WIDGET_TIMEOUT_ID )
>
> 		self.HIDE_WIDGET_TIMEOUT_ID = gobject.timeout_add( 500,
> self._mouseMightaMovedCb )
>
>
> 	def doMouseListener( self, listen ):
> 		if (listen):
> 			self.resetWidgetFadeTimer()
>
> 		else:
> 			if (self.HIDE_WIDGET_TIMEOUT_ID != None):
> 				if (self.HIDE_WIDGET_TIMEOUT_ID != 0):
> 					gobject.source_remove( self.HIDE_WIDGET_TIMEOUT_ID )
>
> 	def _mouseMightaMovedCb( self ):
> 		x, y = self.ca.get_pointer()
>
> 		passedTime = 0
>
> 		if (x != self.mx or y != self.my):
> 			self.hideWidgetsTimer = time.time()
> 			if (self.hiddenWidgets):
> 				self.showWidgets()
> 				self.hiddenWidgets = False
>
> 		else:
> 			passedTime = time.time() - self.hideWidgetsTimer
>
> 		if (self.ca.m.RECORDING):
> 			self.hideWidgetsTimer = time.time()
> 			passedTime = 0
>
> 		if (passedTime >= 3):
> 			if (not self.hiddenWidgets):
>
> 				if (self.mouseInWidget(x,y)):
> 					self.hideWidgetsTimer = time.time()
> 				elif (self.RECD_INFO_ON):
> 					self.hideWidgetsTimer = time.time()
> 				elif (self.UPDATE_TIMER_ID != 0):
> 					self.hideWidgetsTimer = time.time()
>
> 				else:
> 					self.hideWidgets()
> 					self.hiddenWidgets = True
>
> 		self.mx = x
> 		self.my = y
> 		return True
>
>
> On Fri, May 30, 2008 at 9:38 PM, Benjamin M. Schwartz
> <bmschwar at fas.harvard.edu> wrote:
>>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Does anyone know how to capture all mouse events?  I am trying to get all
>> mouse button up/down events, and maybe even all motion events.  I have
>> tried using gdk to listen to all events on the root window, but it doesn't
>> seem to capture mouse events.
>>
>> It seems like the right way might be to use Xlib, or to hook into the
>> window manager, or the X driver, or just listen to /dev/input/mouse0.  I
>> don't know much about any of these.  What would you do?
>>
>> - --Ben
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v2.0.9 (GNU/Linux)
>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>>
>> iEYEARECAAYFAkhArB8ACgkQUJT6e6HFtqSRSQCfatqMr9Ksdn204nEtaH89dV8r
>> kp8AnAxkPIq/bqnUJENnBze/GFMSgkXt
>> =IdMQ
>> -----END PGP SIGNATURE-----
>> _______________________________________________
>> Sugar mailing list
>> Sugar at lists.laptop.org
>> http://lists.laptop.org/listinfo/sugar
>
>
> _______________________________________________
> Sugar mailing list
> Sugar at lists.laptop.org
> http://lists.laptop.org/listinfo/sugar
>
>



More information about the Sugar-devel mailing list