Example #1
0
 def _remove_event_compression_workarounds(self):
     """Removes all workarounds for the motion event compression bug"""
     msg_prefix = "Remove motion event compression workaround: "
     for tdw, drawstate in self._drawing_state.iteritems():
         win = tdw.get_window()
         workaround_used = drawstate.event_compression_workaround
         if workaround_used == EVCOMPRESSION_WORKAROUND_DISABLE_VIA_API:
             mcomp = drawstate.event_compression_was_enabled
             assert mcomp is not None
             logger.debug(
                 msg_prefix + "restoring event_compression to %r (%r)",
                 mcomp,
                 tdw,
             )
             win.set_event_compression(mcomp)
         elif workaround_used == EVCOMPRESSION_WORKAROUND_EVHACK_FILTER:
             drawstate = self._get_drawing_state(tdw)
             data = drawstate.evhack_data
             assert data is not None
             logger.warning(msg_prefix + "removing evhack filter %r", data)
             mypaintlib.evhack_gdk_window_remove_filter(win, data)
             drawstate.evhack_data = None
             drawstate.evhack_positions = []
         else:
             logger.warning(msg_prefix + "no workaround to disable")
         drawstate.event_compression_workaround = None
Example #2
0
 def _remove_event_compression_workarounds(self):
     """Removes all workarounds for the motion event compression bug"""
     msg_prefix = "Remove motion event compression workaround: "
     for tdw, drawstate in self._drawing_state.iteritems():
         win = tdw.get_window()
         workaround_used = drawstate.event_compression_workaround
         if workaround_used == EVCOMPRESSION_WORKAROUND_DISABLE_VIA_API:
             mcomp = drawstate.event_compression_was_enabled
             assert mcomp is not None
             logger.debug(
                 msg_prefix + "restoring event_compression to %r (%r)",
                 mcomp, tdw,
             )
             win.set_event_compression(mcomp)
         elif workaround_used == EVCOMPRESSION_WORKAROUND_EVHACK_FILTER:
             drawstate = self._get_drawing_state(tdw)
             data = drawstate.evhack_data
             assert data is not None
             logger.warning(msg_prefix + "removing evhack filter %r", data)
             mypaintlib.evhack_gdk_window_remove_filter(win, data)
             drawstate.evhack_data = None
             drawstate.evhack_positions = []
         else:
             logger.warning(msg_prefix + "no workaround to disable")
         drawstate.event_compression_workaround = None
Example #3
0
 def _remove_evhacks(self):
     for tdw, drawstate in self._drawing_state.iteritems():
         win = tdw.get_window()
         drawstate = self._get_drawing_state(tdw)
         data = drawstate.evhack_data
         if data is None:
             continue
         logger.debug("Removing evhack filter %r", data)
         mypaintlib.evhack_gdk_window_remove_filter(win, data)
         drawstate.evhack_data = None
         drawstate.evhack_positions = []
Example #4
0
 def _remove_evhacks(self):
     for tdw, drawstate in self._drawing_state.iteritems():
         win = tdw.get_window()
         if hasattr(win, 'set_event_compression'):
             # GTK+ 3.12 and above
             drawstate.evhack_data = None
         else:
             drawstate = self._get_drawing_state(tdw)
             data = drawstate.evhack_data
             if data is None:
                 continue
             logger.debug("Removing evhack filter %r", data)
             mypaintlib.evhack_gdk_window_remove_filter(win, data)
             drawstate.evhack_data = None
             drawstate.evhack_positions = []
Example #5
0
 def _remove_evhacks(self):
     for tdw, drawstate in self._drawing_state.iteritems():
         win = tdw.get_window()
         if hasattr(win, 'set_event_compression'):
             # GTK+ 3.12 and above
             drawstate.evhack_data = None
         else:
             drawstate = self._get_drawing_state(tdw)
             data = drawstate.evhack_data
             if data is None:
                 continue
             logger.debug("Removing evhack filter %r", data)
             mypaintlib.evhack_gdk_window_remove_filter(win, data)
             drawstate.evhack_data = None
             drawstate.evhack_positions = []