Kevin Ryde wrote:
> Actually, I think it's necessary to clear a newly created
> GtkSelectionData struct to zeros too (something I didn't change).

Yeah, I think the current code is completely broken.

> Program below gets a segv from the current code.  I think the "data"
> pointer in a GtkSelectionData is a malloced block or NULL.
> gtk_selection_data_set() does g_free() on the old before copying and
> storing the new.
> 
> Dunno if anything special should be initialized in the other fields, I
> couldn't find the actual code within gtk that does a normal call out to
> a treesource *drag_data_get() interface func.

I found one instance in gtk/gtkdnd.c, gtk_drag_drop().  It does the following
to initialize the data:

      selection_data.selection = GDK_NONE;
      selection_data.target = pair->target;
      selection_data.data = NULL;
      selection_data.length = -1;

pair->target is a GdkAtom.

It's not obvious to me what the default for the target should be.  You chose
the atom for GTK_TREE_MODEL_ROW -- why?

Is there a way to automatically test this stuff?  Ross once wrote an attempt,
t/GtkTreeView-Dnd.t.  But it's not run by default since he saw no way to
synthesize the necessary events.

-- 
Bye,
-Torsten
_______________________________________________
gtk-perl-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list

Reply via email to