Bastien Dejean
dc805f9a6a
Consolidate fit_monitor
2013-10-20 20:33:34 +02:00
Bastien Dejean
229d5797dd
Simplify fit_monitor
2013-10-20 14:39:01 +02:00
Bastien Dejean
d396210f41
Revert "Initially center floating windows on their monitor"
...
In fact we can't do that, otherwise floating windows that do specify non
silly initial coordinates would be ignored.
2013-10-19 22:01:40 +02:00
Bastien Dejean
114881d958
Initially center floating windows on their monitor
...
And simplify fit_monitor along the way.
2013-10-19 21:31:34 +02:00
Bastien Dejean
6c51d8e3da
Merge stack and stack_under
2013-10-19 17:46:28 +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
6daf058c5d
Fix initial tagging of windows
2013-10-13 21:07:40 +02:00
Bastien Dejean
7334277454
Implement private windows
2013-10-12 21:16:51 +02:00
Bastien Dejean
6bc128554e
Implement frames
2013-10-10 18:24:21 +02:00
Bastien Dejean
d07391af91
Handle tags in control --toggle-visibility
2013-10-09 17:33:42 +02:00
Bastien Dejean
15695c066b
Add copyright header
2013-10-08 21:05:56 +02:00
Bastien Dejean
c5d4c6577d
Handle _NET_WM_STATE more carefully
...
After all, it seems (see spectrwm) that the window manager should
maintain that property.
2013-10-07 11:41:54 +02:00
Bastien Dejean
2fb21be70c
Don't set _NET_WM_STATE
...
The window manager shouldn't do this (cf. EWMH).
2013-10-06 21:42:34 +02:00
Bastien Dejean
35e9927ed9
Make sticky windows stick to their monitor
2013-10-06 16:58:02 +02:00
Bastien Dejean
a7b42fad6e
A vacant node can be visible
2013-10-06 10:20:37 +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
d5b84c082a
Don't unmap windows in adopt_orphans
2013-09-22 21:46:41 +02:00
Bastien Dejean
70c6cada07
Make focus_follows_pointer work on empty desktops
2013-09-22 11:16:06 +02:00
Bastien Dejean
80caab4445
Make sure strings are null-terminated
2013-09-21 12:39:59 +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
b1d793031b
Don't support ICCCM's WM_STATE
...
It seems that it might cause more harm than good.
E.g.: Skype.
2013-09-19 10:29:19 +02:00
Bastien Dejean
afcbf4795e
Consider unmapped windows as withdrawn
2013-09-18 12:38:44 +02:00
Bastien Dejean
84572b0204
Set the WM_STATE atom
...
`xkill` needs this work without the `-frame` option.
2013-09-18 12:07:55 +02:00
Bastien Dejean
5e00bfe688
Add --fullscreen and --locked to rule -a
2013-09-18 11:42:20 +02:00
Bastien Dejean
cc4492d9ca
Remove --float-upcoming
from control
...
The following:
bspc control --float-upcoming
can now be expressed as:
bspc rule -a \* --floating --one-shot
2013-09-17 11:40:18 +02:00
Bastien Dejean
9a9693545d
Add new option for control
: --float-upcoming
2013-09-16 13:36:52 +02:00
Bastien Dejean
a0b9199df5
Stack in terms of relative actions
...
This rewrite is based on a TODO comment for the *stack_refresh*
function of *awesome*:
It might be worth stopping to restack everyone and only stack `c'
relatively to the first matching in the list.
And on the concept of relative stacking (via XDG_CONFIG_WINDOW_SIBLING).
Additionally the `adaptative_raise` setting was removed because it
became obsolete when the choice was made of not raising windows when
focusing via `focus_follows_pointer`.
Windows of type *desktop* are now supported (but not managed).
2013-09-12 16:26:01 +02:00
Bastien Dejean
e14ce44333
Factorize client message sending
2013-09-10 10:39:25 +02:00
Bastien Dejean
e757323885
Don't trust WM_PROTOCOLS
...
Some clients (e.g.: Skype), have WM_TAKE_FOCUS in their WM_PROTOCOLS but
don't respond to it.
2013-09-07 10:14:14 +02:00
Bastien Dejean
f399fb8797
Revert "Don't trust WM_PROTOCOLS"
...
This reverts commit 2bfaefa08f
.
2013-09-06 11:02:50 +02:00
Bastien Dejean
2bfaefa08f
Don't trust WM_PROTOCOLS
2013-09-06 10:53:31 +02:00
Bastien Dejean
387ece3688
Implement ICCCM's WM_TAKE_FOCUS behavior
...
Additionally, the `apply_shadow_property` was renamed to
`apply_floating_atom`.
2013-09-05 15:37:54 +02:00
Bastien Dejean
ea49ed35d7
Compute colors on the fly
...
When drawing window borders, we must consider the color map of the
window to compute the correct color *pixel*.
2013-09-04 21:57:26 +02:00
Bastien Dejean
72b8431be0
Prevent input focus from being stolen
...
Example: if one chromium window is opened and a link is opened in
newsbeuter then chromium will steal the input focus (without explicitly
requesting focus via the proper EWMH message).
2013-07-30 14:53:44 +02:00
Bastien Dejean
44414046b9
Don't raise windows via focus_follows_pointer
2013-07-15 20:28:28 +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
Steven Allen
772da4dc5d
Arrange after killing a window
...
When a window is killed, the unmap event is never fired leaving a hole
in the layout. This commit closes that hole by manually calling arrange
after killing.
2013-06-29 21:01:23 -04:00
Bastien Dejean
4bcb9886f9
Don't call update_current to set the input focus
2013-06-29 21:09:56 +02:00
Bastien Dejean
a6e90f472a
Make split mode and direction local
2013-06-27 17:26:52 +02:00
Bastien Dejean
994235d172
Handle insertion at non focused nodes
2013-06-27 17:11:30 +02:00
Bastien Dejean
12403a5081
Handle fullscreen state in apply_layout
2013-06-08 18:31:55 +02:00
Bastien Dejean
b939bd7480
Consider only pointer_follows_monitor
exceptions
...
We'd prefer not to have to clutter `messages.c` with redundant code and
hence we handle the two exceptions instead.
2013-06-08 11:53:48 +02:00
Bastien Dejean
cd97c9b971
Handle visibility within desktop_{show,hide}
2013-06-07 13:58:22 +02:00
Bastien Dejean
f19cf121d7
Call arrange
in transfer_node
...
Fix a few regressions, and add numerous minor cosmetic improvements.
2013-06-06 23:51:30 +02:00