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
c6ceca7683
Support _NET_WM_STATE_STICKY client message
2013-10-01 19:34:38 +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
30eb9598b8
Extract pointer functions from events.c
2013-09-25 18:00:01 +02:00
Bastien Dejean
16eae53e56
New setting: honor_ewmh_focus
2013-09-23 11:45:00 +02:00
Bastien Dejean
70c6cada07
Make focus_follows_pointer work on empty desktops
2013-09-22 11:16:06 +02:00
Bastien Dejean
1ef4d4fb05
Add comment for focus_in handling
2013-09-20 21:15:42 +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
435727c9fa
Don't introduce unfounded exceptions
2013-09-18 12:58:09 +02:00
Bastien Dejean
afcbf4795e
Consider unmapped windows as withdrawn
2013-09-18 12:38:44 +02:00
Bastien Dejean
2b92f05e34
Focus a monitor with an empty focused desktop
2013-08-29 11:45:50 +02:00
Bastien Dejean
cf85a1d3fb
Fix all the warnings produced by clang
2013-08-02 10:47:01 +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
8f8f5d8ea4
Raise focused floating window via pointer -g focus
2013-07-15 21:18:37 +02:00
Bastien Dejean
44414046b9
Don't raise windows via focus_follows_pointer
2013-07-15 20:28:28 +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
8ff7c3ee47
Prevent focus change due to pointer jitter
2013-07-12 22:15:18 +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
714fb8d504
Remove message: ungrab_pointer
...
The above message was only needed for ending the `move` pointer action
on a floating window. It rendered the `move` pointer action finicky
because the floating rectangle of the floating windows was not updated
in real time.
2013-07-04 11:04:28 +02:00
Bastien Dejean
addd537eb8
Prevent node transplantation for circulate
2013-07-02 21:33:33 +02:00
Bastien Dejean
0561e9075a
Handle _NET_WM_DESKTOP client message
2013-06-30 14:47:54 +02:00
Bastien Dejean
972526f1aa
Ignore _NET_ACTIVE_WINDOW for the focused node
2013-06-29 22:11:13 +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
92292f834f
Don't try to focus the focused node
2013-06-29 21:45:21 +02:00
Bastien Dejean
30f891fad5
Don't try to import monitors when RandR is off
2013-06-10 13:51:46 +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
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
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
38b3f3531a
Handle monitors via RandR
2013-05-29 08:35:13 +02:00
Bastien Dejean
402f7d6cf3
Prevent flickering of grab_pointer focus
...
`stack_tiled` can generate flickering when monocle windows are involved,
so we shall try to avoid triggering it whenever possible.
2013-05-26 22:57:32 +02:00
Bastien Dejean
8e57511b50
Particularize swap_nodes
2013-05-06 11:28:32 +02:00
Bastien Dejean
1f894fe492
Add support for _NET_WM_STATE_DEMANDS_ATTENTION
2013-03-26 11:34:06 +01:00
Bastien Dejean
d18b3917ee
Moving tiled windows to empty desktops
2013-03-10 09:55:09 +01:00
Bastien Dejean
5d9eebb463
Move tiled window: don't miss valid cases
...
When we move a tiled window from one monitor to the other, we don't care
about the state of the window under the pointer.
2013-03-09 20:49:19 +01:00
Bastien Dejean
b1318ee553
Moving a tiled window to another monitor
...
When we move a tiled window to another monitor via the `move` argument
of the `grab_pointer` message, we shall transfer the related node.
2013-03-09 19:40:47 +01:00
Bastien Dejean
1176b5c369
Lower the motion recorder when querying
...
The current implementation of `focus_follows_pointer` requires that the
motion recorder be lowered when `xcb_query_pointer` is called,
otherwise, the response will specify the motion recorder as child
attribute.
2013-03-07 21:53:45 +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
829bc9b91f
New setting: 'focus_follows_pointer'
2013-03-04 11:25:12 +01:00
Bastien Dejean
0acdab744c
Remove setting: 'focus_follows_pointer'
...
It is impossible to make the feature work in every cases without
unwanted side effects, therefore it will only exists as a branch.
2013-03-04 11:19:24 +01:00
Bastien Dejean
6bfebaaf6b
Focus follows pointer rewrite
2013-03-02 19:39:16 +01:00
Bastien Dejean
0f6f533a87
Unify tiled and floating pointer actions
...
The following 'grab_pointer' arguments are removed: 'move_tiled',
'resize_tiled'. The regular 'move' and 'resize_*' arguments shall be
used instead. The 'fence_grip' parameter is no longer meaningful and
has been removed. Moving and resizing now behaves the same for tiled and
floating windows.
2013-02-28 15:04:14 +01:00
Bastien Dejean
3573089f0d
Reuse W
2013-02-28 12:47:29 +01:00