Para fazer com que Gtk.SourceView
pare de pegar o uri, usei o seguinte trecho de código:
public class MySourceView: Gtk.SourceView {
public MySourceView() {
Gtk.TargetEntry[] targets;
targets = new Gtk.TargetEntry[1];
targets[0].target = "text/uri-list";
targets[0].flags = 0;
targets[0].info = 0;
Gtk.drag_dest_set(this, Gtk.DestDefaults.ALL, targets, Gdk.DragAction.COPY);
this.drag_data_received.connect(this.drag_data_received_cb);
}
private void drag_data_received_cb(Gtk.Widget sender,
Gdk.DragContext drag_context,
int x, int y,
Gtk.SelectionData data,
uint info, uint time) {
print("Drag data received!\n");
// Do something
Gtk.drag_finish (drag_context, true, false, time);
}
}
Dessa forma, o uri do arquivo que eu solto na visualização de origem não é colado nele e posso abrir o arquivo em outra guia.