Skip to content

Commit df8658f

Browse files
committed
More UI improvements with drag area.
1 parent 8cb2b96 commit df8658f

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

src/CanvasToolbar.vala

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,31 @@ public class CanvasToolbar : Box {
735735
margin_start = 20
736736
};
737737

738+
var motion = new EventControllerMotion();
739+
drag_label.add_controller( motion );
740+
741+
motion.enter.connect((x, y) => {
742+
var cursor = new Gdk.Cursor.from_name( "grab", null );
743+
drag_label.set_cursor( cursor );
744+
});
745+
746+
motion.leave.connect(() => {
747+
drag_label.set_cursor( null );
748+
});
749+
750+
var click = new GestureClick();
751+
drag_label.add_controller( click );
752+
753+
click.pressed.connect((x, y) => {
754+
var cursor = new Gdk.Cursor.from_name( "grabbing", null );
755+
drag_label.set_cursor( cursor );
756+
});
757+
758+
click.released.connect(() => {
759+
var cursor = new Gdk.Cursor.from_name( "grab", null );
760+
drag_label.set_cursor( cursor );
761+
});
762+
738763
var drag = new DragSource() {
739764
actions = Gdk.DragAction.MOVE
740765
};
@@ -749,6 +774,18 @@ public class CanvasToolbar : Box {
749774
return( cp );
750775
});
751776

777+
drag.drag_end.connect((d, delete_data) => {
778+
stdout.printf( "In drag_end, delete_data: %s\n", delete_data.to_string() );
779+
if( !delete_data ) {
780+
var val = Value( typeof(GLib.File) );
781+
var provider = d.get_content();
782+
if( provider.get_value( ref val ) ) {
783+
var file = (GLib.File)val;
784+
FileUtils.remove( file.get_path() );
785+
}
786+
}
787+
});
788+
752789
append( drag_label );
753790

754791
}

0 commit comments

Comments
 (0)