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