i3
|
#include <config.h>
Go to the source code of this file.
Macros | |
#define | DRAGGING_CB(name) |
Macro to create a callback function for dragging. | |
Typedefs | |
typedef void(* | callback_t) (Con *, Rect *, uint32_t, uint32_t, const xcb_button_press_event_t *, const void *) |
Callback for dragging. | |
Enumerations | |
enum | drag_result_t { DRAGGING = 0 , DRAG_SUCCESS , DRAG_REVERT , DRAG_ABORT } |
This is the return value of a drag operation like drag_pointer. More... | |
Functions | |
drag_result_t | drag_pointer (Con *con, const xcb_button_press_event_t *event, xcb_window_t confine_to, int cursor, bool use_threshold, callback_t callback, const void *extra) |
This function grabs your pointer and keyboard and lets you drag stuff around (borders). | |
#define DRAGGING_CB | ( | name | ) |
Macro to create a callback function for dragging.
enum drag_result_t |
This is the return value of a drag operation like drag_pointer.
DRAGGING will indicate the drag action is still in progress and can be continued or resolved.
DRAG_SUCCESS will indicate the intention of the drag action should be carried out.
DRAG_REVERT will indicate an attempt should be made to restore the state of the involved windows to their condition before the drag.
DRAG_ABORT will indicate that the intention of the drag action cannot be carried out (e.g. because the window has been unmapped).
Enumerator | |
---|---|
DRAGGING | |
DRAG_SUCCESS | |
DRAG_REVERT | |
DRAG_ABORT |
drag_result_t drag_pointer | ( | Con * | con, |
const xcb_button_press_event_t * | event, | ||
xcb_window_t | confine_to, | ||
int | cursor, | ||
bool | use_threshold, | ||
callback_t | callback, | ||
const void * | extra ) |
This function grabs your pointer and keyboard and lets you drag stuff around (borders).
Every time you move your mouse, an XCB_MOTION_NOTIFY event will be received and the given callback will be called with the parameters specified (client, the original event), the original rect of the client, and the new coordinates (x, y).
If use_threshold is set, dragging only starts after the user moves the pointer past a certain threshold. That is, the cursor will not be set and the callback will not be called until then.
Definition at line 176 of file drag.c.
References drag_x11_cb::callback, drag_x11_cb::con, conn, DRAG_ABORT, DRAGGING, ELOG, drag_x11_cb::event, drag_x11_cb::extra, main_loop, main_set_x11_cb(), drag_x11_cb::old_rect, drag_x11_cb::prepare, Con::rect, drag_x11_cb::result, root, xcb_drag_prepare_cb(), drag_x11_cb::xcursor, and xcursor_get_cursor().
Referenced by floating_drag_window(), floating_resize_window(), resize_graphical_handler(), and tiling_drag().