void HandleDragDataGet(object sender, DragDataGetArgs args) { Logger.Debug ("ImagesFileView.HandleDragDataGet. Sender {0}, args {1}", sender, args.Info); string file; TreeIter iter; TreePath[] items = SelectedItems; PathList list = new PathList (); for (int i = 0; i < items.Length; i++) { store.GetIter (out iter, items [i]); file = (string) store.GetValue (iter, 0); Logger.Debug ("ImagesFileView.HandleDragDataGet. Dropped {0}", file); list.Add (file); } switch (args.Info) { case 2: { Byte [] data = Encoding.UTF8.GetBytes (list.ToString ()); Atom [] targets = args.Context.Targets; args.SelectionData.Set (targets[0], 2, data); Logger.Debug ("ImagesFileView.HandleDragDataGet. Data.Length {0}", data.Length); return; } default: Logger.Debug ("ImagesFileView.HandleDragDataGet. Drop cancelled"); break; } args.RetVal = true; }