Bastien Dejean
f08e7073a2
Restore previous layer when exiting fullscreen
2015-11-03 09:42:09 +01:00
Bastien Dejean
516c9741f2
Limit layer inheritance to floating windows
2015-11-01 17:43:44 +01:00
Bastien Dejean
4ceced688a
Restore natural constraints on fullscreen windows
...
Put fullscreen windows in the ABOVE layer by default.
Let *x*, and *y* be two windows in the same desktop. *y* is focused and
its fullscreen state is *on*. When *x* requests the focus: if *x* is
below *y*, then the fullscreen state of *y* is toggled.
2015-11-01 14:05:18 +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
99974912c8
*leaf_monocle*: only consider tiled windows
...
Fixes #282 .
2015-08-07 08:47:24 +02:00
Fredrik Bergroth
51e09ea11e
New setting: leaf_monocle
...
Use monocle layout if there is a single node.
2015-08-05 23:20:07 +02:00
Bastien Dejean
dccb5e7be2
Add a few subscriber events
2015-08-01 14:37:15 +02: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
56895ab9ab
Implement focus_follows_pointer via enter notify events
...
The implementation based on a motion recorder had bad side effects.
2015-06-06 18:25:20 +02:00
Bastien Dejean
9dd581faaf
Allow subscribers to choose what they listen to
2015-05-09 21:12:19 +02:00
Bastien Dejean
1167e068b2
New setting: center_pseudo_tiled
2015-01-15 14:18:25 +01:00
Bastien Dejean
5cffc4cc93
Fix null pointer dereference
...
The insertion point needs to be a leaf when we enter the private/public
routine in the node insertion function.
Fixes #195 .
2015-01-13 17:43:09 +01:00
Bastien Dejean
c13c678a54
Add new setting: initial_polarity
...
Fixes #193 .
2015-01-06 20:10:09 +01:00
Bastien Dejean
c49bc92d12
Use generic BSD 2-clause license
...
Fixes #176
2014-10-22 11:53:03 +02:00
Bastien Dejean
b7fa492602
Add setting: pointer_follows_focus
2014-10-22 11:24:51 +02:00
Bastien Dejean
1894cc731d
Handle client selection in nearest_from_tree
2014-07-28 11:45:00 +02:00
Bastien Dejean
d85d3133f9
Reinstate focus_by_distance
setting
2014-07-18 19:21:58 +02:00
Bastien Dejean
76cd787937
Fix window centering
2014-02-09 16:57:14 +01:00
Bastien Dejean
d59fadd8ce
Turn the *border_width* setting into a desktop/window setting
2014-02-09 14:47:27 +01:00
Bastien Dejean
da0fc3d11d
Consider the border width when centering pseudo-tiled clients
2014-02-09 12:08:03 +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
65184b7113
Update status when focusing an urgent window
2014-01-13 20:39:41 +01:00
Bastien Dejean
215d23b639
Fix scan-build *bug*
2014-01-09 15:09:23 +01:00
Bastien Dejean
b47c758ad5
Handle min/max window size hints
2014-01-09 14:58:54 +01:00
Bastien Dejean
168ff7968f
New desktop option: --equalize
2014-01-04 12:15:42 +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
56d17d8572
Update the window border when pseudo-focusing
2013-12-31 18:05:30 +01:00
Bastien Dejean
14b3fd235e
Fix bogus desktop focus fallback
2013-12-31 17:48:11 +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
bc39da7e78
Pull and push edges via window -e DIR ±PIXELS
2013-12-27 14:46:35 +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
dc98ea2cf1
Fix vacant state propagation target in insert_node
2013-11-16 21:53:03 +01:00
Bastien Dejean
a50f05fb34
Add missing newline in PRINTF
2013-11-16 16:49:50 +01:00
Bastien Dejean
c989aa7efc
Merge translate_position and translate_client
...
- Expand `underlying_monitor` into `monitor_from_client` to avoid
passing a NULL pointer to `translate_client`.
- Remove the `fit_monitor` setting (use the `--center` rule effect
instead).
- Don't remap a window in it's last location (node invisibility would be
the proper way to do this).
- Call `translate_client` after configure requests.
2013-10-27 11:25:34 +01:00
Bastien Dejean
c3e8de4ad5
Revert "Keep a focused sticky window focused"
...
This reverts commit 887bad7707
.
2013-10-24 22:05:06 +02:00
Bastien Dejean
ae1ed3b795
New setting: fit_monitor
2013-10-23 22:20:34 +02:00
Bastien Dejean
f05adfde8f
Fix circulate_leaves
2013-10-21 19:03:10 +02:00
Bastien Dejean
dc805f9a6a
Consolidate fit_monitor
2013-10-20 20:33:34 +02:00
Bastien Dejean
dc575c74b8
A fullscreen window can't be unfocused
2013-10-19 17:52:29 +02:00
Bastien Dejean
6c51d8e3da
Merge stack and stack_under
2013-10-19 17:46:28 +02:00
Bastien Dejean
887bad7707
Keep a focused sticky window focused
2013-10-19 11:30:54 +02: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
fc041e8ba1
Remove obsolete chunk of code
2013-10-10 18:25:34 +02:00