Commit graph

121 commits

Author SHA1 Message Date
Bastien Dejean
f97d35cd96 New arguments for swap: biggest and smallest 2013-04-02 15:02:45 +02:00
Bastien Dejean
bbd0ad810f Fix motion recorder being activated erroneously
We need to check which window is under the pointer after having changed
the z-order of windows.
2013-03-22 18:26:30 +01:00
Bastien Dejean
84d4ad4eb8 Exhaustively clear input focus before unmapping
This is a fix for the following bug:
https://bbs.archlinux.org/viewtopic.php?pid=1244541#p1244541

I'm not sure why `monsterwm` is immune to this or if there's a better
way to fix it. I've made a test with a simple window listening to
focus{in,out} events and it did receive those events after being
unmapped without needing the fix...
2013-03-18 19:44:09 +01:00
Bastien Dejean
0158ea7da6 Change input focus before unmapping 2013-03-18 15:34:07 +01:00
Bastien Dejean
2f6b48af34 Focus the root window on an empty desktop 2013-03-17 22:37:19 +01:00
Bastien Dejean
25b21321d3 Remove trailing spaces 2013-03-16 19:20:20 +01:00
Bastien Dejean
67e57260dd Set current EWMH desktop in restore 2013-03-12 10:34:38 +01:00
Bastien Dejean
45cb3efd44 New message: balance 2013-03-10 18:28:30 +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
ca01046c4e Disable motion recording as soon as possible
Also, get_pointed_window needs to lower the motion_recorder
window otherwise xcb_query_pointer will return that window as child
attribute.
2013-03-03 21:46:09 +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
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
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
ec46a11d3e Don't exclude unmapped windows 2013-01-08 16:24:00 +01:00
Bastien Dejean
240b6798b0 New messages: '{grab,track,ungrab}_pointer' 2013-01-08 15:52:20 +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
ee6f449789 Restore the event mask of the clients in 'restore' 2013-01-02 14:40:18 +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
92c52517da More informative output for 'list*' messages
It will facilitate debugging and also provide an exhaustive
representation of the current state that might be used to reconstruct
the layout of each desktops. While doing so, it occurred to me that the
*born_as* attribute of the *node_t* structure was only used for leaves,
so I changed it into a *client_t* attribute.
2012-12-26 21:19:10 +01:00
Bastien Dejean
f7120e3e77 Make function name concur with message name 2012-12-25 23:13:11 +01:00
Bastien Dejean
f37c14902f Rewrite border drawing in focus_node
6ad8160fad introduced a blinking border
bug under the `mon == m` circumstances, the new code tries to keep it
simple while being exhaustive.
2012-12-25 11:59:56 +01:00
Bastien Dejean
36f30a7c3f Make the remote code adhere to the coding style 2012-12-24 18:55:45 +01:00
Thomas Adam
6ad8160fad Correctly honour 'active_border_color' setting
Ensure the explicitly non-focused monitor with a focused window has its
borders down correctly when 'active_border_color' is used.

Previously, the checks handling this did not set the correct monitor to use.
2012-12-24 13:44:40 +00:00
Bastien Dejean
af06168b61 New message: 'toggle_visibility' 2012-12-23 12:11:08 +01:00
Bastien Dejean
ce885e5e32 Use specified fifo ('-s' flag) instead of stdout 2012-12-18 12:38:46 +01:00
Bastien Dejean
939d569dc0 Use full layout name 2012-12-17 22:06:44 +01:00
Bastien Dejean
4de5f0d4b2 Merge branch 'master' into status 2012-12-17 20:27:22 +01:00
Bastien Dejean
9d9b45fd23 Remove duplicate leftover function 2012-12-17 20:15:30 +01:00
Bastien Dejean
89af85404e New setting: 'status_stdout' 2012-12-17 20:12:23 +01:00
Bastien Dejean
f439efb0f5 New setting: 'adaptative_raise' 2012-12-13 14:00:45 +01:00
Bastien Dejean
4c2a3ce021 Actually change the floating rectangle in fit_monitor 2012-12-10 10:07:13 +01:00
Bastien Dejean
171e9b382a New message: "pad" 2012-12-09 12:01:45 +01:00
Bastien Dejean
5c5405e3d4 Store pointer position in 'focus_node'
Since the 'focus', 'cycle', etc. messages skip 'arrange', we need to add
some code to prevent focus stealing if 'focus_follows_mouse' is 'true'.
2012-11-07 12:05:05 +01:00
Bastien Dejean
cba15c9663 Handle stacking order in focus_node 2012-11-04 14:35:17 +01:00
Bastien Dejean
bb12d0575a Remove message: 'magnetise' 2012-11-04 14:16:30 +01:00
Bastien Dejean
edd2e2422d New setting: 'gapless_monocle' 2012-11-04 14:10:08 +01:00
Bastien Dejean
ce4c9f5887 Compact 'arrange' debug message 2012-11-04 12:34:56 +01:00
Bastien Dejean
531029a80e Monocle: change stacking only when the focus is tiled 2012-11-02 20:22:20 +01:00
Bastien Dejean
7d82867020 Refactor *circulate_leaves* 2012-11-02 12:06:20 +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
04bebb797a Fix monocle regression in 'client_message'
The new handling of tiled monocle windows requires to call *arrange*
after *focus_node*.
2012-10-25 19:45:41 +02:00
Bastien Dejean
dfecbdc6e0 Tiled windows should not be above floating windows 2012-10-24 22:17:45 +02:00
Bastien Dejean
0c6a40cbe9 Properly handle 'focus_follows_mouse' 2012-10-23 15:30:30 +02:00