Remove custom drag-motion management

The GTK+ issue that needed this hack is fixed since 2.24.7
Also the hack did not manage the scroll nor the expand which is now managed by
GTK+ internals.

issue5026
review16671002
This commit is contained in:
Cédric Krier committed 2015-10-15 00:53:32 +02:00
1 parent 00e572d466
commit 072ba2ee3c
1 file changed
+16 -27
+16 -27
View File
@@ -600,20 +600,25 @@ class ViewTree(View):
if not dnd:
return
self.treeview.enable_model_drag_dest(
[('MY_TREE_MODEL_ROW', gtk.TARGET_SAME_WIDGET, 0)],
gtk.gdk.ACTION_MOVE)
self.treeview.enable_model_drag_source(
gtk.gdk.BUTTON1_MASK | gtk.gdk.BUTTON3_MASK,
[('MY_TREE_MODEL_ROW', gtk.TARGET_SAME_WIDGET, 0)],
gtk.gdk.ACTION_MOVE)
# XXX have to set manually because enable_model_drag_source
# does not set the mask
# https://bugzilla.gnome.org/show_bug.cgi?id=756177
self.treeview.drag_source_set(
gtk.gdk.BUTTON1_MASK | gtk.gdk.BUTTON3_MASK,
[('MY_TREE_MODEL_ROW', gtk.TARGET_SAME_WIDGET, 0)],
gtk.gdk.ACTION_MOVE)
self.treeview.drag_dest_set(gtk.DEST_DEFAULT_ALL,
[('MY_TREE_MODEL_ROW', gtk.TARGET_SAME_WIDGET, 0)],
gtk.gdk.ACTION_MOVE)
self.treeview.connect('drag-begin', self.drag_begin)
self.treeview.connect('drag-motion', self.drag_motion)
self.treeview.connect('drag-drop', self.drag_drop)
self.treeview.connect("drag-data-get", self.drag_data_get)
self.treeview.connect('drag-data-received',
self.drag_data_received)
self.treeview.connect('drag-drop', self.drag_drop)
self.treeview.connect('drag-data-delete', self.drag_data_delete)
@property
@@ -760,27 +765,6 @@ class ViewTree(View):
self.screen.current_record = record
self.screen.display(set_cursor=True)
def drag_begin(self, treeview, context):
return True
def drag_motion(self, treeview, context, x, y, time):
try:
treeview.set_drag_dest_row(*treeview.get_dest_row_at_pos(x, y))
except TypeError:
treeview.set_drag_dest_row(len(treeview.get_model()) - 1,
gtk.TREE_VIEW_DROP_AFTER)
if context.get_source_widget() == treeview:
kind = gtk.gdk.ACTION_MOVE
else:
kind = gtk.gdk.ACTION_COPY
context.drag_status(kind, time)
return True
def drag_drop(self, treeview, context, x, y, time):
treeview.emit_stop_by_name('drag-drop')
treeview.drag_get_data(context, context.targets[-1], time)
return True
def drag_data_get(self, treeview, context, selection, target_id,
etime):
treeview.emit_stop_by_name('drag-data-get')
@@ -856,6 +840,11 @@ class ViewTree(View):
record.group.set_sequence(field=self.attributes['sequence'])
return True
def drag_drop(self, treeview, context, x, y, time):
treeview.emit_stop_by_name('drag-drop')
treeview.drag_get_data(context, context.targets[-1], time)
return True
def drag_data_delete(self, treeview, context):
treeview.emit_stop_by_name('drag-data-delete')