Commit graph

64 commits

Author SHA1 Message Date
Bastien Dejean
7606b0bb72 Add new selector modifiers: urgent and nonurgent 2013-07-19 10:13:22 +02:00
Steven Allen
df89d390ec Apply modifiers to all objects
Window:
 * cycle                - no change
 * direction            - only consider matching nodes
 * last                 - walk history
 * focused              - match or NULL
 * biggest              - find biggest matching

Desktop:
 * cycle                - no change
 * focused              - match or NULL
 * last                 - match or NULL

Monitor:
 * cycle                - no change
 * direction            - only consider matching nodes
 * last                 - match or NULL
 * focused              - match or NULL
2013-07-13 16:40:37 -04:00
Bastien Dejean
64cde67dc2 Remove setting: focus_by_distance
The removal is motivated by the following example:

+-------+-------+
|       |       |
|       |   b   |
|       |       |
|       |_______|
|   a   |       |
|   *   |   c   |
|       |       |
|       |_______|
|       |       |
|       |   d   |
|       |       |
+-------+-------+

Bellow is a summary of the number of steps required to reach *b*, *c* and *d* with *a* as a starting point with the associated mean and variance:

focus_by_distance         steps           mean         variance
---------------------------------------------------------------
  false                   1, 2, 3           2            2/3
  true                    2, 1, 2          5/3           2/9
2013-07-13 22:23:13 +02:00
Bastien Dejean
1f83706ab5 Don't transplant when swapping
The new syntax provides a separate transplantation option.
2013-07-13 09:40:19 +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
898187238f New message: focus_monitor 2013-06-28 15:16:56 +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
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
12403a5081 Handle fullscreen state in apply_layout 2013-06-08 18:31:55 +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
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
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
Bastien Dejean
06065f0cf5 Merge branch 'master' into history
Conflicts:
	messages.c
	tree.c
2013-05-06 11:36:12 +02:00
Bastien Dejean
8e57511b50 Particularize swap_nodes 2013-05-06 11:28:32 +02:00
Bastien Dejean
f97d35cd96 New arguments for swap: biggest and smallest 2013-04-02 15:02:45 +02:00
Bastien Dejean
45cb3efd44 New message: balance 2013-03-10 18:28:30 +01:00
Bastien Dejean
6057feed61 Generalize swap_nodes
The `swap_nodes` function was not written to handle nodes from different
desktops. We need to be able to do that in order to move tiled windows
across monitors.
2013-03-07 21:34:33 +01:00
Bastien Dejean
409aad038f Merge branch 'master' into focus-history 2013-03-03 10:44:13 +01:00
Bastien Dejean
83a10ac1e8 Remove obsolete prototypes 2013-02-28 17:36:56 +01:00
Bastien Dejean
df928c7053 New message: 'flip' 2013-02-26 12:54:01 +01:00
Bastien Dejean
7741295902 Add tiled move/resize pointer actions
New arguments for `grab_pointer`: `{move,resize}_tiled`.
New setting: `fence_grip`.
2013-02-04 14:22:41 +01:00
Bastien Dejean
890c4a1f3b Merge branch 'master' into focus-history 2013-01-19 21:45:05 +01:00
Bastien Dejean
85c2983df2 New message: 'restore' 2012-12-27 22:36:06 +01:00
Bastien Dejean
e016b801f0 Relieve tree.c from non tree related functions 2012-12-26 22:48:07 +01:00
Bastien Dejean
f7120e3e77 Make function name concur with message name 2012-12-25 23:13:11 +01:00
Bastien Dejean
89af85404e New setting: 'status_stdout' 2012-12-17 20:12:23 +01:00
Bastien Dejean
4c2a3ce021 Actually change the floating rectangle in fit_monitor 2012-12-10 10:07:13 +01:00
Bastien Dejean
bb12d0575a Remove message: 'magnetise' 2012-11-04 14:16:30 +01:00
Bastien Dejean
0772e7d99c Focus history: initial attempt 2012-11-04 12:27:39 +01:00
Bastien Dejean
c28eceb152 New message: 'circulate' 2012-11-01 22:47:03 +01:00
Bastien Dejean
1ab44c4132 Use the monitor, not the screen, rectangle 2012-10-29 10:45:47 +01:00
Bastien Dejean
243f1245e7 Options for 'cycle_desktop': --skip-{free,occupied} 2012-10-23 13:31:11 +02:00
Bastien Dejean
f0ab3e390e Merge branch 'develop' 2012-10-23 12:17:19 +02:00
Bastien Dejean
1769e2f58f New messages: 'nearest' and 'alternate_focus' 2012-10-22 11:51:28 +02:00
Bastien Dejean
286fb33dfd Fix monocle 2012-10-18 11:15:43 +02:00
Bastien Dejean
2a3362fc4b Added support for multiple monitors 2012-10-17 16:18:40 +02:00
Bastien Dejean
350a2d86bd New message: "magnetise" 2012-09-26 12:11:45 +02:00
Bastien Dejean
efcc7e41f6 Locked and urgent client states and colors 2012-09-20 23:32:32 +02:00
Bastien Dejean
0bd88d9824 Fix "alternate" command, min width,height is 1,1 2012-09-20 11:50:25 +02:00
Bastien Dejean
deaa516e35 Update focus in {transfer,remove}node and al. 2012-09-19 22:59:13 +02:00
Bastien Dejean
24507288bf Numerous fixes 2012-09-18 17:21:04 +02:00
Bastien Dejean
b757724a57 Flush, EWMH, new events, presel border fix 2012-09-16 14:16:58 +02:00