Ticket #4128: 0001-palettewindow-Don-t-recompute-visibility-on-touchscr.patch

File 0001-palettewindow-Don-t-recompute-visibility-on-touchscr.patch, 2.1 KB (added by garnacho, 11 years ago)

patch to ignore motion/crossing events on touchscreen devices

  • src/sugar3/graphics/palettewindow.py

    From 81e2d9f604635e54f3e82fdcd2aa2773b0ed0148 Mon Sep 17 00:00:00 2001
    From: Carlos Garnacho <carlos@lanedo.com>
    Date: Fri, 2 Nov 2012 16:47:01 +0100
    Subject: [PATCH] palettewindow: Don't recompute visibility on touchscreen
     motion events
    
    Visibility of palettes on touchscreens behave differently altogether,
    so avoid mouse-specific handling when operating on the touchscreen.
    ---
     src/sugar3/graphics/palettewindow.py | 10 ++++++++++
     1 file changed, 10 insertions(+)
    
    diff --git a/src/sugar3/graphics/palettewindow.py b/src/sugar3/graphics/palettewindow.py
    index 4f7bb2a..31ccb13 100644
    a b class _PaletteMenuWidget(Gtk.Menu): 
    190190            return False
    191191        if Gtk.get_event_widget(event) not in self._menus:
    192192            return False
     193        if event.get_source_device().get_source() == Gdk.InputSource.TOUCHSCREEN:
     194            return False
    193195
    194196        self._mouse_in_palette = True
    195197        self._reevaluate_state()
    class _PaletteMenuWidget(Gtk.Menu): 
    200202            return False
    201203        if Gtk.get_event_widget(event) not in self._menus:
    202204            return False
     205        if event.get_source_device().get_source() == Gdk.InputSource.TOUCHSCREEN:
     206            return False
    203207
    204208        self._mouse_in_palette = False
    205209        self._reevaluate_state()
    class _PaletteMenuWidget(Gtk.Menu): 
    209213        x = event.x_root
    210214        y = event.y_root
    211215
     216        if event.get_source_device().get_source() == Gdk.InputSource.TOUCHSCREEN:
     217            return False
     218
    212219        if type(self._invoker) is CellRendererInvoker:
    213220            in_invoker = self._invoker.point_in_cell_renderer(x, y)
    214221        else:
    class _PaletteMenuWidget(Gtk.Menu): 
    224231        x = event.x_root
    225232        y = event.y_root
    226233
     234        if event.get_source_device().get_source() != Gdk.InputSource.TOUCHSCREEN:
     235            return False
     236
    227237        if type(self._invoker) is CellRendererInvoker:
    228238            in_invoker = self._invoker.point_in_cell_renderer(x, y)
    229239        else: