~~Title: Drag and drop ~~
Drag-and-drop is a common way of moving files around in Windows. In Opus, drag-and-drop is controlled by the **[[:file_types|File Types]]** system.
==Default drag-and-drop behavior==
The default behavior is the same as in Explorer:
* Drag-and-drop of a file to another folder on the same drive will move it
* Drag-and-drop to a folder on a different drive will copy it
* Holding the Shift key when dropping forces the file to be moved
* Holding the Ctrl key when dropping forces it to be copied
* Holding the Alt key when dropping creates a shortcut to the file
* Drag-and-drop with the right button displays a menu that lets you select //Copy//, //Move// or //Create Shortcut// as the action.
Internally, these actions are defined by the items on the **Events** tab for the **All files and folders** file type. Whereas in Explorer these actions are fixed, in Opus they are configurable.
==Configuring drag-and-drop actions==
{{ :media:13:default_draganddrop.png?nolink|}}This screenshot shows the [[:file_types:filetype_editor|File Type editor]] for the **All files and folders** file type. The events are all defined as some variant of the internal **[[:reference:command_reference:internal_commands:copy|Copy]]** command.
* Drag-and-drop: `Copy MOVEWHENSAME` moves the file on the same drive, and copies it otherwise.
* Drag-and-drop+Alt: `Copy MAKESHORTCUT` makes a shortcut to the file.
* Drag-and-drop+Ctrl: `Copy RENAMEWHENSAME` automatically renames the copied file if the name clashes with an existing one.
* Drag-and-drop+Shift: `Copy MOVE` always moves the file.
Although not shown here, the **Drop Menu** tab also defines the contents of the menu shown when dragging with the right mouse button. This can also be configured.
Editing these functions modifies the drag-and-drop behaviour in Opus. For example, if you wanted drag-and-drop to always copy (rather than moving on the same drive), you could edit the command definition to `Copy RENAMEWHENSAME` (the same as the //Drag-and-drop+//Ctrl event).
==Overriding behaviour for specific file types==
The **All files and folders** file type is a special file type that by definition matches everything - both files and folders. You can use the File Types system to define overriding events for specific file types. For example, you could configure drag-and-drop of a Zip file to extract the contents of the archive when dropped with the Shift key held down.
See the documentation on the **[[:file_types|File Types]]** system for more information.