Beispiel #1
0
 def _grab_pointer_outside(self, device, time):
     if self._outside_grab_active:
         logger.warning(
             "grab: outside-popup grab already active: regrabbing")
         self._ungrab_pointer_outside(device, time)
     event_mask = (Gdk.EventMask.POINTER_MOTION_MASK
                   | Gdk.EventMask.ENTER_NOTIFY_MASK
                   | Gdk.EventMask.LEAVE_NOTIFY_MASK
                   | Gdk.EventMask.BUTTON_PRESS_MASK
                   | Gdk.EventMask.BUTTON_RELEASE_MASK)
     cursor = self._outside_cursor
     grab_status = device.grab(
         window=self.get_window(),
         grab_ownership=Gdk.GrabOwnership.APPLICATION,
         owner_events=False,
         event_mask=Gdk.EventMask(event_mask),
         cursor=cursor,
         time_=time,
     )
     if grab_status == Gdk.GrabStatus.SUCCESS:
         logger.debug("grab: acquired grab on %r successfully", device)
         self._outside_grab_active = True
     else:
         logger.warning("grab: failed to acquire grab on %r (status=%s)",
                        device, grab_status.value_nick)