ClutterDropAction: Added "drop-cancel" signal.
The drop-cancel signal allows the drop action to cleanup its state if the can-drop signal is refused. This is especially useful if the drop action (or its target actor) is managing any drop target animations. https://bugzilla.gnome.org/show_bug.cgi?id=675336
This commit is contained in:
parent
a2f03d3add
commit
397f322860
@ -101,6 +101,7 @@ enum
|
|||||||
OVER_IN,
|
OVER_IN,
|
||||||
OVER_OUT,
|
OVER_OUT,
|
||||||
DROP,
|
DROP,
|
||||||
|
DROP_CANCEL,
|
||||||
|
|
||||||
LAST_SIGNAL
|
LAST_SIGNAL
|
||||||
};
|
};
|
||||||
@ -227,6 +228,13 @@ out:
|
|||||||
clutter_actor_meta_get_actor (meta),
|
clutter_actor_meta_get_actor (meta),
|
||||||
event_x, event_y);
|
event_x, event_y);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_signal_emit (data->last_action, drop_signals[DROP_CANCEL], 0,
|
||||||
|
clutter_actor_meta_get_actor (meta),
|
||||||
|
event_x, event_y);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
data->last_action = NULL;
|
data->last_action = NULL;
|
||||||
@ -458,6 +466,34 @@ clutter_drop_action_class_init (ClutterDropActionClass *klass)
|
|||||||
CLUTTER_TYPE_ACTOR,
|
CLUTTER_TYPE_ACTOR,
|
||||||
G_TYPE_FLOAT,
|
G_TYPE_FLOAT,
|
||||||
G_TYPE_FLOAT);
|
G_TYPE_FLOAT);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ClutterDropAction::drop-cancel:
|
||||||
|
* @action: the #ClutterDropAction that emitted the signal
|
||||||
|
* @actor: the #ClutterActor attached to the @action
|
||||||
|
* @event_x: the X coordinate (in stage space) of the drop event
|
||||||
|
* @event_y: the Y coordinate (in stage space) of the drop event
|
||||||
|
*
|
||||||
|
* The ::drop-cancel signal is emitted when the drop is refused
|
||||||
|
* by an emission of the #ClutterDropAction::can-drop signal.
|
||||||
|
*
|
||||||
|
* After the ::drop-cancel signal is fired the active drag is
|
||||||
|
* terminated.
|
||||||
|
*
|
||||||
|
* Since: 1.12
|
||||||
|
*/
|
||||||
|
drop_signals[DROP_CANCEL] =
|
||||||
|
g_signal_new (I_("drop-cancel"),
|
||||||
|
G_TYPE_FROM_CLASS (klass),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (ClutterDropActionClass, drop),
|
||||||
|
NULL, NULL,
|
||||||
|
_clutter_marshal_VOID__OBJECT_FLOAT_FLOAT,
|
||||||
|
G_TYPE_NONE, 3,
|
||||||
|
CLUTTER_TYPE_ACTOR,
|
||||||
|
G_TYPE_FLOAT,
|
||||||
|
G_TYPE_FLOAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user