@@ -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