Gdk: how to remove a bit from an event mask in python?

I want to remove POINTER_MOTION_MASK

from my window events. I tried:

win.set_events(win.get_events() & ~Gdk.EventMask.POINTER_MOTION_MASK)

      

however, I am getting this error:

TypeError: Expected a Gdk.EventMask, but got int

      

How to remove a bit from an event mask?

+3


source to share


1 answer


The ~ operator changes the type of the result:

>>> type(Gdk.EventMask.POINTER_MOTION_MASK)
<class 'gi.repository.Gdk.GdkEventMask'>
>>> type(~Gdk.EventMask.POINTER_MOTION_MASK)
<type 'int'>

      



So, you need to specify the result. I think this should work:

win.set_events(win.get_events() & (Gdk.EventMask)~Gdk.EventMask.POINTER_MOTION_MASK))

      

0


source







All Articles