Re: Outsanding GLib/GTK+ API bugs



Michael Natterer <mitch gimp org> writes:

> Owen Taylor <otaylor redhat com> writes:
> 
> > Here's the remaining open API bugs, that we need to resolve in some
> > fashion before freezing the API
> > 
> > Misc GTK+
> > =========
> > 56916 GtkModule fixes
> >   Notes:    Not really API issues, but affects how downstream stuff works
> >   Puntable: 
> >   Breakage: No
> >   Time:     1 hour
> > 
> > 59027 shadow vs. shadow_type properties
> >   Notes: Question here is how to handle deprecated properties ... 
> >   Puntable:
> >   Breakage:   
> >   Time: 5 minutes
> 
> There is one unmentioned issue with the DND implementation that
> just came to my mind again:
> 
> It's currently not possible to check if a DND operation failed because
> the thing was dropped over "nothing" (not over a target) *or* because
> the user aborted the drag by pressing escape.
> 
> In GIMP we drag around dialogs and create new ones if they were not
> dropped over a dialog accepting target.
> 
> The annoying part is that the "drag_end" signal, where the
> unsuccessful drop is detected, is emitted *after* Gtk+ did the
> animation which indicates that the drop failed.
> 
> Would it be possible to make this either configurable or depending
> on the return value of the "drag_end" handler or whatever :)
> 
> It may be sufficient to emit the signal before showing the animation
> and being able to call gdk_drop_reply (context, TRUE, time); in the
> callback.

Too late for 2.0, but GTK+ has had a almost-as-good feature for
a long time: 

static GtkTargetEntry target_table[] = {
  { "STRING",     0, TARGET_STRING },
  { "text/plain", 0, TARGET_STRING },
  { "application/x-rootwin-drop", 0, TARGET_ROOTWIN }
};


void  
source_drag_data_get  (GtkWidget          *widget,
		       GdkDragContext     *context,
		       GtkSelectionData   *selection_data,
		       guint               info,
		       guint               time,
		       gpointer            data)
{
  if (info == TARGET_ROOTWIN)
    g_print ("I was dropped on the rootwin\n");
}

If you find something emulating a root window (like Nautilus) that
doesn't take x-rootwin-drop (I don't know if Nautilus supports
x-rootwin-drop or not), file a bug report against that something.

(Ugh, doesn't seem to ever have made it into the Xdnd spec.  
OK, file a RFE against that something.)

For a drop onto the real root window or onto Enlightenment desktops,
GTK+ handles this special type automatically.

Regards,
                                        Owen




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]