
Fixes #2643 Inner drop region behaves like move to mark. The outer region is close to the edge (currently 30px from the edge). This will place the container as a sibling in the given direction within the parent container. If the move direction goes against the orientation of the parent container, tree_move() is called. Contributors: Co-authored-by: Orestis Floros <orestisflo@gmail.com> See #3085 - Inner drop region behaves like move to mark - Handle workspaces - Fix crash when target closes - Initiate tiling drag from titlebar - Hide indicator until container is dragged outside of original position - Calculate outer_threshold using percentages instead of fixed pixel values - Emit 'move' event properly - Don't focus previously unfocused containers - Use tree_split() on different orientation - Fix redundant split containers - DT_PARENT - Readability & optimizations - Limit parent threshold by render_deco_height() - Tests - Fullscreen container handling - Initiate drag from title bar - Fix issue of EnterNotify events still triggering after drag_callback is called - Include decorations for drop target calculation Co-authored-by: Michael Forster <email@michael-forster.de> See #2178 - Original implementation of tiling drag + indicator window > A container can be dragged by the title bar to one of the four sides > of another container. That container will then be split either > horizontally or vertically. Co-authored-by: Tony Crisci <tony@dubstepdish.com> See #2653 - Original implementation of outer/inner drop region indicator: > There are two drop regions per direction. > > The inner region is closer to the center of the window. Dropping on > this region will split the target container and put the container > within the split at the given direction beside the target container. > > The outer region is close to the edge (currently 30px from the edge). > This will place the container as a sibling in the given direction within > the parent container. > > Dropping into the outer region moves the con beside the target. If the > move direction goes against the orientation of the parent container, the > con moves out of the row. - Fix crash: Ignore containers without a managed window (eg i3bar)
80 lines
1.7 KiB
C
80 lines
1.7 KiB
C
/*
|
|
* vim:ts=4:sw=4:expandtab
|
|
*
|
|
* i3 - an improved dynamic tiling window manager
|
|
* © 2009 Michael Stapelberg and contributors (see also: LICENSE)
|
|
*
|
|
* This header file includes all relevant files of i3 and the most often used
|
|
* system header files. This reduces boilerplate (the amount of code duplicated
|
|
* at the beginning of each source file) and is not significantly slower at
|
|
* compile-time.
|
|
*
|
|
*/
|
|
#pragma once
|
|
|
|
#include <config.h>
|
|
|
|
#include <assert.h>
|
|
#include <err.h>
|
|
#include <errno.h>
|
|
#include <limits.h>
|
|
#include <stdarg.h>
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <sys/stat.h>
|
|
#include <sys/types.h>
|
|
|
|
#include <xcb/xcb.h>
|
|
#include <xcb/xcb_aux.h>
|
|
#include <xcb/xcb_icccm.h>
|
|
#include <xcb/xcb_keysyms.h>
|
|
|
|
#include "libi3.h"
|
|
#include "data.h"
|
|
#include "util.h"
|
|
#include "ipc.h"
|
|
#include "tree.h"
|
|
#include "log.h"
|
|
#include "xcb.h"
|
|
#include "manage.h"
|
|
#include "workspace.h"
|
|
#include "i3.h"
|
|
#include "x.h"
|
|
#include "click.h"
|
|
#include "key_press.h"
|
|
#include "floating.h"
|
|
#include "drag.h"
|
|
#include "configuration.h"
|
|
#include "handlers.h"
|
|
#include "randr.h"
|
|
#include "xinerama.h"
|
|
#include "con.h"
|
|
#include "load_layout.h"
|
|
#include "render.h"
|
|
#include "window.h"
|
|
#include "match.h"
|
|
#include "xcursor.h"
|
|
#include "resize.h"
|
|
#include "tiling_drag.h"
|
|
#include "sighandler.h"
|
|
#include "move.h"
|
|
#include "output.h"
|
|
#include "ewmh.h"
|
|
#include "assignments.h"
|
|
#include "regex.h"
|
|
#include "startup.h"
|
|
#include "scratchpad.h"
|
|
#include "commands.h"
|
|
#include "commands_parser.h"
|
|
#include "bindings.h"
|
|
#include "config_directives.h"
|
|
#include "config_parser.h"
|
|
#include "fake_outputs.h"
|
|
#include "display_version.h"
|
|
#include "restore_layout.h"
|
|
#include "sync.h"
|
|
#include "main.h"
|