Bastien Dejean
e8ee82c3a4
Fix discrepancy between query and restore format
...
This was a regression introduced by f28f334
.
2015-11-12 14:03:37 +01:00
Bastien Dejean
d98c3d17ae
Document and homogenize subscriber events
2015-11-09 15:00:47 +01:00
Bastien Dejean
6fb04695d1
Restore the tiled rectangles of nodes and clients
2015-11-07 15:14:00 +01:00
Bastien Dejean
f28f33448f
Make a clear distinction between states and flags
2015-11-05 14:00:49 +01:00
Bastien Dejean
40cdd64a7b
Rewrite the stacking engine
...
Stacking now involves 3 layers: BELOW, NORMAL and ABOVE.
In each layers, floating windows are stacked above tiled windows.
The *stack* function is now extremely simple: it just inserts an item in
a sorted list, relying on *stack_cmp* to compare clients.
Fullscreen windows are no longer special.
2015-10-26 20:56:56 +01:00
Bastien Dejean
639763c906
Reinstate the motion recorder for FFP
...
Because many clients (e.g. termite) prevent us (maybe unknowingly) from
capturing motion events on their windows, we're forced to create a
window for this sole purpose.
Grabbing the pointer isn't an option, because it forces us to consider
some of the enter notify events we should be ignoring.
2015-06-12 22:05:22 +02:00
Bastien Dejean
36decdad62
Propagate FFP_MASK
2015-06-11 09:58:05 +02:00
Bastien Dejean
c49bc92d12
Use generic BSD 2-clause license
...
Fixes #176
2014-10-22 11:53:03 +02:00
Bastien Dejean
d59fadd8ce
Turn the *border_width* setting into a desktop/window setting
2014-02-09 14:47:27 +01:00
Bastien Dejean
7cbcc64e7d
Fix *restore* regression introduced by c231e8c
...
The lines of the output of `query -T` are now indented using tabs.
Hence, `restore_tree`'s *level* variable is now equal to the number of tabs.
2014-01-19 14:58:32 +01:00
Bastien Dejean
b9dcab1900
Remove trailing spaces in headers
2014-01-19 14:41:37 +01:00
Bastien Dejean
c231e8cf41
Indentation: convert spaces to tabs
...
http://lea.verou.me/2012/01/why-tabs-are-clearly-superior/
2014-01-18 16:30:00 +01:00
Bastien Dejean
edcb1f9aec
Show window instance names in the output of query -T
2014-01-04 11:07:20 +01:00
Bastien Dejean
0073eff5dc
Simply treat transient windows as floating windows
...
http://tronche.com/gui/x/icccm/sec-4.html#WM_TRANSIENT_FOR
2013-12-29 19:53:42 +01:00
Bastien Dejean
b972f0abbd
Provide padding settings for monitors
...
If a padding space is requested for a status bar, it concerns the
underlying monitor.
2013-12-28 10:30:49 +01:00
Bastien Dejean
6561ab1c48
Refresh header dependencies
2013-12-28 00:09:10 +01:00
Bastien Dejean
48e0043f84
Implement the pseudo-tiled window state
2013-12-27 14:23:25 +01:00
Bastien Dejean
e0b6cd3cd4
*Frames* are unnecessary
...
The padding settings are sufficient for this.
2013-12-27 10:43:37 +01:00
Bastien Dejean
471fd2c7fc
Turn {top,right,bottom,left}_padding into desktop settings
2013-12-25 10:06:02 +01:00
Bastien Dejean
5e037978dd
Don't reset *num_clients* in *restore_tree*
2013-12-19 18:52:59 +01:00
Bastien Dejean
948b8046f7
Externalize rules
2013-11-05 20:09:24 +01:00
Bastien Dejean
de94ecb267
Add a floating state to desktops
...
Modifying the floating state of a desktop doesn't change the floating
state of the existing windows.
2013-11-03 23:01:31 +01:00
Bastien Dejean
08e1c85ce0
Remove tags
...
Tags should generalize desktops.
To accomplish this, the main node attributes: (type, ratio) would have
to become a dictionary: ((tf1, (type1, ratio1)), (tf2, (type2, ratio2),
...). (`tf<n>` being a tag field.).
2013-10-19 10:56:34 +02:00
Bastien Dejean
7334277454
Implement private windows
2013-10-12 21:16:51 +02:00
Bastien Dejean
e89143b919
Refresh header dependencies
2013-10-11 10:07:51 +02:00
Bastien Dejean
6bc128554e
Implement frames
2013-10-10 18:24:21 +02:00
Bastien Dejean
15695c066b
Add copyright header
2013-10-08 21:05:56 +02:00
Bastien Dejean
35e9927ed9
Make sticky windows stick to their monitor
2013-10-06 16:58:02 +02:00
Bastien Dejean
86def769f7
Fix clang warnings
2013-10-06 10:50:30 +02:00
Bastien Dejean
a75979be62
Implement tags
2013-10-05 22:32:40 +02:00
Bastien Dejean
c6ceca7683
Support _NET_WM_STATE_STICKY client message
2013-10-01 19:34:38 +02:00
Bastien Dejean
ce25529e5c
Implement sticky windows
2013-10-01 18:04:18 +02:00
Bastien Dejean
f2a578de2b
Make the window border width a desktop setting
2013-10-01 14:15:50 +02:00
Bastien Dejean
bfded1effc
History is global and stacking is independent
...
The last desktop and monitor are now deduced from the history.
The stacking order is now independent from the history of the focused
nodes: this prevents hacks on both sides.
All windows are now considered in the stacking algorithm: it prevents
tiled windows from one monitor to appear above the floating windows of
another monitor.
Transfered windows are stacked below the windows of the same kind.
2013-10-01 10:48:03 +02:00
Bastien Dejean
3dda8e7f6f
Move a few functions from tree to desktop/monitor
2013-09-20 11:57:09 +02:00
Bastien Dejean
85f67b2164
Remove a few useless header inclusion via deheader
2013-09-19 15:38:22 +02:00
Bastien Dejean
d168e919e3
Split types.c into {monitor,desktop,history}.c
2013-09-19 15:02:49 +02:00
Bastien Dejean
488dd339cb
Restore split direction
2013-09-14 12:17:22 +02:00
Bastien Dejean
758f5e6392
*window_gap* is now a desktop setting
...
The *config* command was generalized to handle desktop and monitor
settings.
2013-09-11 21:19:59 +02:00
Bastien Dejean
8a1010b04f
Fix warnings
2013-09-11 19:35:52 +02:00
Bastien Dejean
1b5b633e7a
Consolidate restore --tree
2013-09-10 21:24:29 +02:00
Bastien Dejean
daa358b3c4
Restore the split mode of nodes
2013-08-29 11:22:02 +02:00
Bastien Dejean
effd6a011d
Fix restore --tree
for the multi-monitor case
2013-07-27 15:20:24 +02:00
Bastien Dejean
de1aa71a37
Fix potential leak and null pointer dereference
2013-07-20 21:22:26 +02:00
Bastien Dejean
8fd8521322
Rewrite message handling
...
The new message syntax:
- Provides 10 commands instead of 60.
- Allows multiple actions to be applied in one call.
The client now returns an non zero exit code when a message fails.
The `is_adjacent` function now handles vacant nodes.
2013-07-12 21:52:02 +02:00