Ticket #3999: drag.patch

File drag.patch, 2.2 KB (added by erikos, 11 years ago)

toolkit patch to avoid the Palette coming up

  • src/sugar3/graphics/palettewindow.py

    diff --git a/src/sugar3/graphics/palettewindow.py b/src/sugar3/graphics/palettewindow.py
    index 7063681..a9b4687 100644
    a b class CellRendererInvoker(Invoker): 
    13261326        self._release_hid = None
    13271327        self._long_pressed_hid = None
    13281328        self.path = None
     1329        self._dragging = False
    13291330
    13301331        self._long_pressed_controller = SugarGestures.LongPressController()
    13311332
    class CellRendererInvoker(Invoker): 
    13331334        self._tree_view = tree_view
    13341335        self._cell_renderer = cell_renderer
    13351336
     1337        tree_view.connect('button-press-event', self.__button_press_cb)
     1338        tree_view.connect('drag-end', self.__drag_end_cb)
     1339
    13361340        self._motion_hid = tree_view.connect('motion-notify-event',
    13371341                                             self.__motion_notify_event_cb)
    13381342        self._leave_hid = tree_view.connect('leave-notify-event',
    class CellRendererInvoker(Invoker): 
    13731377
    13741378        return rect
    13751379
     1380    def __button_press_cb(self, widget, event):
     1381        if event.button == 1:
     1382            self._dragging = True
     1383            if self.palette is not None:
     1384                self.palette.popdown(immediate=True)
     1385
     1386    def __drag_end_cb(self, widget, context):
     1387        self._dragging = False
     1388
    13761389    def __motion_notify_event_cb(self, widget, event):
    13771390        if event.window != widget.get_bin_window():
    13781391            return
     1392
     1393        if self._dragging:
     1394            return
     1395
    13791396        if self.point_in_cell_renderer(event.x, event.y):
    13801397
    13811398            tree_view = self._tree_view
    class CellRendererInvoker(Invoker): 
    14221439        return False
    14231440
    14241441    def __button_release_event_cb(self, widget, event):
     1442        self._dragging = False
    14251443        if event.button == 1 and self.point_in_cell_renderer(event.x,
    14261444            event.y):
    14271445            tree_view = self._tree_view
    class CellRendererInvoker(Invoker): 
    14381456            return False
    14391457
    14401458    def __long_pressed_event_cb(self, controller, x, y, widget):
     1459        if self._dragging:
     1460            return
     1461
    14411462        if self.point_in_cell_renderer(x, y):
    14421463            self.notify_right_click()
    14431464