Commit graph

184 commits

Author SHA1 Message Date
Bastien Dejean
83a17bb63f Don't alter focus when transplanting nodes 2013-07-12 22:37:57 +02:00
Bastien Dejean
9e791903f9 Use the standard abs function 2013-07-12 22:27:09 +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
Bastien Dejean
addd537eb8 Prevent node transplantation for circulate 2013-07-02 21:33:33 +02:00
Bastien Dejean
525c6409e6 Revert "Don't try to focus the focused node"
This reverts commit 92292f834f.

The `n == mon->desk->focus` appears after remove_node, so we can't
return in this case in `focus_node` after all.
2013-06-29 22:05:51 +02:00
Bastien Dejean
c05090ba71 Add missing return statement 2013-06-29 21:50:27 +02:00
Bastien Dejean
92292f834f Don't try to focus the focused node 2013-06-29 21:45:21 +02:00
Bastien Dejean
4bcb9886f9 Don't call update_current to set the input focus 2013-06-29 21:09:56 +02:00
Bastien Dejean
bc9e991541 Consolidate monitor_focus_fallback handling 2013-06-28 19:41:14 +02:00
Bastien Dejean
898187238f New message: focus_monitor 2013-06-28 15:16:56 +02:00
Bastien Dejean
216c2b7f68 Transplant within swap_nodes 2013-06-28 11:56:30 +02:00
Bastien Dejean
bbc9fa5662 Skip non tiled windows in find_biggest 2013-06-27 23:04:20 +02:00
Bastien Dejean
dee3902b33 When shifting into manual mode nodes: transplant 2013-06-27 19:41:01 +02:00
Bastien Dejean
4e4d312ba5 New option for cancel: --all 2013-06-27 19:25:55 +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
d2b3ebc459 Honor history_aware_focus for shift 2013-06-25 12:41:59 +02:00
Bastien Dejean
d5d8805ad2 New setting: history_aware_focus 2013-06-24 16:25:50 +02:00
Bastien Dejean
c1fb3ac484 Always end with a new line in put_status 2013-06-09 21:35:27 +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
d3e5566b07 Pointer follows monitor only via use* messages 2013-06-07 11:58:31 +02:00
Bastien Dejean
310b3f3807 Don't rotate when inserting a floating window 2013-06-07 11:39:02 +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
Bastien Dejean
dde8f7f07b Handle identity in rotate_tree 2013-06-06 00:08:03 +02:00
Bastien Dejean
311fbc06d5 New setting: pointer_follows_monitor 2013-06-05 21:21:12 +02:00
Bastien Dejean
6296eebd13 Only emit one call to put_status in focus_node 2013-06-05 16:14:53 +02:00
Bastien Dejean
2e2564c1e4 Remove obsolete debug message 2013-06-03 11:50:31 +02:00
Bastien Dejean
a46f09650b Set split mode before drawing borders 2013-06-02 21:04:24 +02:00
Bastien Dejean
0eed40d2f8 Fix stacking of window moved via send_to
When a window is moved to the active desktop of another monitor, we must
reinforce the correct z-order.
2013-06-01 14:27:18 +02:00
Bastien Dejean
d9ffb7050f New message: remove_desktop 2013-06-01 12:00:26 +02:00
Bastien Dejean
e01130f5d1 Fix put_status crash on cleanup 2013-05-31 21:24:39 +02:00
Bastien Dejean
44534985ea Consolidate monitor disconnection handling 2013-05-31 16:10:54 +02:00
Bastien Dejean
eafc112ca2 New message: biggest 2013-05-30 12:14:22 +02:00
Bastien Dejean
82984cf0d5 Fix focus_node regression 2013-05-30 09:54:17 +02:00
Bastien Dejean
41ce28dd3c Still trying to minimize the calls to arrange 2013-05-29 21:44:10 +02:00
Bastien Dejean
e401efd2b4 Add a few debug messages 2013-05-29 21:25:38 +02:00
Bastien Dejean
7de037f459 Don't try to arrange empty desktops 2013-05-29 21:23:34 +02:00
Bastien Dejean
26c84e8221 Avoid NULL node and non-NULL root in focus_node 2013-05-29 20:30:01 +02:00
Bastien Dejean
1e064aa723 Handle remote focus corner case in transfer_node 2013-05-29 20:21:51 +02:00
Bastien Dejean
687c9962f1 Always update focus and history when inserting 2013-05-29 15:24:48 +02:00
Bastien Dejean
6dfff24ce8 Set focus pointer when inserting nodes 2013-05-29 15:13:34 +02:00
Bastien Dejean
3b0d482f41 Refactor focus_node and select_*
The select_* and focus_node where initially made independent as to
observe the --follow option. But this is in fact not necessary.
2013-05-29 14:34:27 +02:00
Bastien Dejean
ff9db2a94a Three arguments is enough for focus_node
The fourth argument of `focus_node` was introduced to avoid calling
unneeded functions from `manage_window`: the reason is not good enough
to justify the existence of that extra argument.
2013-05-29 11:36:01 +02:00
Bastien Dejean
5676458548 New message: 'restore_history'
In addition, the message previously known as 'restore' is now called
'restore_layout'.
2013-05-08 15:10:09 +02:00
Bastien Dejean
82bd5644cb The birth_rotation attribute replaces birth_mode
The `birth_mode` was not sufficient for properly unrotate the brother of
a removed node. The `birth_rotation` stores the rotation applied to the
brother subtree when the node was inserted.

This should help to enforce that (L + n) - n = L in every possible
cases. Which means that adding a node and removing it should leave the
layout unchanged.
2013-05-08 14:10:53 +02:00
Bastien Dejean
a56e5ddfe6 Handle the node's birth mode consistently 2013-05-08 11:05:48 +02:00
Bastien Dejean
bb34c26052 Fix removal of vacant node
When vacant node are removed we mustn't rotate any subtree since the
node is already out of the tiled layout.
2013-05-07 23:15:18 +02:00
Bastien Dejean
e6da88fa1c New setting: focus_by_distance
The aforementioned setting, when set, makes the focus movements based on
the distances between the window sides.

The `{prev,next}_leaf` functions were taught not to climb above their
roofs.
2013-05-07 22:45:14 +02:00