Package: gtk

Function gtk-drag-begin

Lambda List

gtk-drag-begin (widget targets actions button event)

Arguments

widget -- a gtk-widget source widget
targets -- a gtk-target-list instance with the targets, data formats, in which the source can provide the data
actions -- a gdk-drag-action bitmask of the allowed drag actions for this drag
button -- an integer with the button the user clicked to start the drag
event -- the gdk-event event that triggered the start of the drag

Return Value

The gdk-drag-context object for this drag.

Details

Initiates a drag on the source side. The function only needs to be used when the application is starting drags itself, and is not needed when the gtk-drag-source-set function is used.

The event argument is used to retrieve the timestamp that will be used internally to grab the pointer. If the event argument is nil, then the +gdk-current-time+ value will be used. However, you should try to pass a real event in all cases, since that can be used by GTK to get information about the start position of the drag, for example if the event is a :motion-notify event.

Generally there are three cases when you want to start a drag by hand by calling this function:
  1. During a "button-press-event" handler, if you want to start a drag immediately when the user presses the mouse button. Pass the event that you have in your "button-press-event" handler.
  2. During a "motion-notify-event" handler, if you want to start a drag when the mouse moves past a certain threshold distance after a button press. Pass the event that you have in your "motion-notify-event" handler.
  3. During a timeout handler, if you want to start a drag after the mouse button is held down for some time. Try to save the last event that you got from the mouse, using the gdk-event-copy function, and pass it to this function. If you can really not pass a real event, pass the nil value instead.

Warning

The gtk-drag-begin function has been deprecated since version 3.10 and should not be used in newly written code. Use the gtk-drag-begin-with-coordinates function instead.
 

See also

2021-10-3