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
Bastien Dejean
2d860de977
New 'grab_pointer' argument: 'resize_side'
...
The 'resize' argument is now called 'resize_corner'.
2013-02-28 12:27:26 +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
0494fc8601
Prevent pointer actions on fullscreen windows
2013-01-19 21:41:10 +01:00
Bastien Dejean
d3e351adf6
Revert "Cursor pointer feedbacks for 'grab_pointer'"
...
This reverts commit e1e04bff2e
.
2013-01-12 11:12:17 +01:00
Bastien Dejean
5d3d5c5338
Don't start actions via unmanaged windows
2013-01-10 20:26:00 +01:00
Bastien Dejean
e1e04bff2e
Cursor pointer feedbacks for 'grab_pointer'
2013-01-10 17:59:22 +01:00
Bastien Dejean
878bc8b144
Focus follows pointer needs enter notify events
...
It seems that pointer motion events are not sufficient to enforce
'focus_follows_pointer': some windows grab the pointer and catch those
events (e.g.: *zenity*), preventing *bspwm* from receiving them. So we
need to listen to enter notify events too.
2013-01-09 21:33:19 +01:00