forked from AuroraMiddleware/gtk
gdkdnd: Stick to the first gdk_drag_drop_done() result
That way we can let ::cancel callers to override the visual result of the operation (eg. when detaching notebook tabs on NO_TARGET). Also, document gdk_drag_drop_done() so it is mentioned that this is a one-shot call. https://bugzilla.gnome.org/show_bug.cgi?id=761954
This commit is contained in:
parent
d26801c923
commit
38d0d0a687
@ -641,6 +641,10 @@ gdk_drag_context_set_hotspot (GdkDragContext *context,
|
||||
* be the last call before dropping the reference to the
|
||||
* @context.
|
||||
*
|
||||
* The #GdkDragContext will only take the first gdk_drag_drop_done()
|
||||
* call as effective, if this function is called multiple times,
|
||||
* all subsequent calls will be ignored.
|
||||
*
|
||||
* Since: 3.20
|
||||
*/
|
||||
void
|
||||
@ -649,6 +653,11 @@ gdk_drag_drop_done (GdkDragContext *context,
|
||||
{
|
||||
g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
|
||||
|
||||
if (context->drop_done)
|
||||
return;
|
||||
|
||||
context->drop_done = TRUE;
|
||||
|
||||
if (GDK_DRAG_CONTEXT_GET_CLASS (context)->drop_done)
|
||||
GDK_DRAG_CONTEXT_GET_CLASS (context)->drop_done (context, success);
|
||||
}
|
||||
|
@ -105,6 +105,8 @@ struct _GdkDragContext {
|
||||
guint32 start_time;
|
||||
|
||||
GdkDevice *device;
|
||||
|
||||
guint drop_done : 1; /* Whether gdk_drag_drop_done() was performed */
|
||||
};
|
||||
|
||||
GList * gdk_drag_context_list (void);
|
||||
|
Loading…
Reference in New Issue
Block a user