Example #1
0
 def _add_event_compression_workaround(self, tdw):
     """Adds a workaround for the motion event compression bug"""
     drawstate = self._get_drawing_state(tdw)
     win = tdw.get_window()
     msg_prefix = "Add motion event compression workaround: "
     if (EVCOMPRESSION_WORKAROUND_ALLOW_DISABLE_VIA_API
             and self._event_compression_supported):
         workaround_used = EVCOMPRESSION_WORKAROUND_DISABLE_VIA_API
         was_enabled = win.get_event_compression()
         logger.debug(
             msg_prefix +
             "using set_event_compression(False) (%r) (was %r)",
             tdw,
             was_enabled,
         )
         drawstate.event_compression_was_enabled = was_enabled
         win.set_event_compression(False)
     elif EVCOMPRESSION_WORKAROUND_ALLOW_EVHACK_FILTER:
         workaround_used = EVCOMPRESSION_WORKAROUND_EVHACK_FILTER
         assert drawstate.evhack_data is None
         data = (tdw, self)
         logger.warning(msg_prefix + "using evhack filter %r", data)
         mypaintlib.evhack_gdk_window_add_filter(win, data)
         drawstate.evhack_data = data
         drawstate.evhack_positions = []
     else:
         workaround_used = EVCOMPRESSION_WORKAROUND_NONE
         logger.warning(msg_prefix + "not using any workaround")
     drawstate.event_compression_workaround = workaround_used
Example #2
0
 def _add_event_compression_workaround(self, tdw):
     """Adds a workaround for the motion event compression bug"""
     drawstate = self._get_drawing_state(tdw)
     win = tdw.get_window()
     msg_prefix = "Add motion event compression workaround: "
     if (EVCOMPRESSION_WORKAROUND_ALLOW_DISABLE_VIA_API
             and self._event_compression_supported):
         workaround_used = EVCOMPRESSION_WORKAROUND_DISABLE_VIA_API
         was_enabled = win.get_event_compression()
         logger.debug(
             msg_prefix
             + "using set_event_compression(False) (%r) (was %r)",
             tdw, was_enabled,
         )
         drawstate.event_compression_was_enabled = was_enabled
         win.set_event_compression(False)
     elif EVCOMPRESSION_WORKAROUND_ALLOW_EVHACK_FILTER:
         workaround_used = EVCOMPRESSION_WORKAROUND_EVHACK_FILTER
         assert drawstate.evhack_data is None
         data = (tdw, self)
         logger.warning(msg_prefix + "using evhack filter %r", data)
         mypaintlib.evhack_gdk_window_add_filter(win, data)
         drawstate.evhack_data = data
         drawstate.evhack_positions = []
     else:
         workaround_used = EVCOMPRESSION_WORKAROUND_NONE
         logger.warning(msg_prefix + "not using any workaround")
     drawstate.event_compression_workaround = workaround_used
Example #3
0
 def _add_evhack(self, tdw):
     drawstate = self._get_drawing_state(tdw)
     assert drawstate.evhack_data is None
     win = tdw.get_window()
     data = (tdw, self)
     logger.debug("Adding evhack filter %r", data)
     mypaintlib.evhack_gdk_window_add_filter(win, data)
     drawstate.evhack_data = data
     drawstate.evhack_positions = []
Example #4
0
    def _add_evhack(self, tdw):
        drawstate = self._get_drawing_state(tdw)
        assert drawstate.evhack_data is None
        win = tdw.get_window()

        if hasattr(win, 'set_event_compression'):
            # GTK+ 3.12 and above
            logger.info("evhack: using set_event_compression(True) instead "
                        "of evhack")
            win.set_event_compression(False)
            drawstate.evhack_data = True
        else:
            logger.info("evhack: set_event_compression() is not available, "
                        "adding evhack")
            data = (tdw, self)
            logger.debug("Adding evhack filter %r", data)
            mypaintlib.evhack_gdk_window_add_filter(win, data)
            drawstate.evhack_data = data
            drawstate.evhack_positions = []
Example #5
0
    def _add_evhack(self, tdw):
        drawstate = self._get_drawing_state(tdw)
        assert drawstate.evhack_data is None
        win = tdw.get_window()

        if hasattr(win, 'set_event_compression'):
            # GTK+ 3.12 and above
            logger.info("evhack: using set_event_compression(True) instead "
                        "of evhack")
            win.set_event_compression(False);
            drawstate.evhack_data = True
        else:
            logger.info("evhack: set_event_compression() is not available, "
                        "adding evhack")
            data = (tdw, self)
            logger.debug("Adding evhack filter %r", data)
            mypaintlib.evhack_gdk_window_add_filter(win, data)
            drawstate.evhack_data = data
            drawstate.evhack_positions = []