i3/include/tiling_drag.h
Michael Stapelberg 5e759ed424
tiling drag: only start when there are drop targets (#5213)
This prevents potentially confusing drag & drop on fullscreen containers and
only-containers on workspaces.

fixes https://github.com/i3/i3/issues/5184
2022-10-18 22:10:03 +02:00

36 lines
763 B
C

/*
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
* © 2009 Michael Stapelberg and contributors (see also: LICENSE)
*
* tiling_drag.h: Reposition tiled windows by dragging.
*
*/
#pragma once
#include "all.h"
/**
* Tiling drag initiation modes.
*/
typedef enum {
TILING_DRAG_OFF = 0,
TILING_DRAG_MODIFIER = 1,
TILING_DRAG_TITLEBAR = 2,
TILING_DRAG_MODIFIER_OR_TITLEBAR = 3
} tiling_drag_t;
/**
* Returns whether there currently are any drop targets.
* Used to only initiate a drag when there is something to drop onto.
*
*/
bool has_drop_targets(void);
/**
* Initiates a mouse drag operation on a tiled window.
*
*/
void tiling_drag(Con *con, xcb_button_press_event_t *event, bool use_threshold);