Re: Outsanding GLib/GTK+ API bugs
- From: Owen Taylor <otaylor redhat com>
- To: Michael Natterer <mitch gimp org>
- Cc: gtk-devel-list gnome org, gnome-2-0-list gnome org
- Subject: Re: Outsanding GLib/GTK+ API bugs
- Date: 29 Aug 2001 22:40:02 -0400
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]