Commit graph

167 commits

Author SHA1 Message Date
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
Bastien Dejean
240b6798b0 New messages: '{grab,track,ungrab}_pointer' 2013-01-08 15:52:20 +01:00
Bastien Dejean
59f6c2c67a Remove obsolete headers 2013-01-07 11:52:51 +01:00
Bastien Dejean
45ef3b78cc New message: 'mouse'
The code related to mouse buttons handling is gone.
Mouse bindings must now be created via sxhkd.
2013-01-06 18:04:55 +01:00
Bastien Dejean
6526e56b8c Remove settings: '{numlock,capslock}_modifier'
The lock keys (num, caps, scroll) are now handled internally and the
aforementioned settings are obsolete.
2013-01-02 12:36:54 +01:00
Bastien Dejean
5dfc01095a Only the current window shall not become urgent
We should only discard the urgency state of the focused window of the
focused desktop of the focused monitor.
2012-12-25 12:39:23 +01:00
Bastien Dejean
43f76714aa Prevent focus stealing for 'focus_follows_mouse'
When 'focus_follows_mouse' was enabled, and the focus was given (through
the 'focus' message) to another window, it was possible for the previous
window to generate an enter notify event and, hence, stole the focus.
2012-12-20 11:14:38 +01:00
Bastien Dejean
89af85404e New setting: 'status_stdout' 2012-12-17 20:12:23 +01:00
Bastien Dejean
03d8f642df Return whenever possible 2012-12-08 23:19:13 +01:00
Bastien Dejean
161fd6e295 Handle _NET_CURRENT_DESKTOP client message 2012-12-08 23:14:29 +01:00
Bastien Dejean
9b237551e6 New settings: 'numlock_modifier' and 'capslock_modifier' 2012-12-03 19:30:48 +01:00
Bastien Dejean
fe1cd3b233 Window dragging: transfer node to underlying monitor 2012-11-08 18:24:17 +01:00
Bastien Dejean
c383348e10 Don't forget to set the frozen pointer monitor 2012-11-02 14:47:26 +01:00
Bastien Dejean
1ab44c4132 Use the monitor, not the screen, rectangle 2012-10-29 10:45:47 +01:00
Bastien Dejean
240c75c704 Orphan adoption: restore desktops organization 2012-10-25 21:49:14 +02:00