Bastien Dejean [Mon, 18 Mar 2013 18:44:09 +0000 (19:44 +0100)]
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...
Bastien Dejean [Thu, 7 Mar 2013 20:53:45 +0000 (21:53 +0100)]
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.
Bastien Dejean [Thu, 7 Mar 2013 20:34:33 +0000 (21:34 +0100)]
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.
Bastien Dejean [Thu, 28 Feb 2013 14:04:14 +0000 (15:04 +0100)]
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.
Bastien Dejean [Wed, 6 Feb 2013 21:23:49 +0000 (22:23 +0100)]
Remove the inner and outer borders
The concept of triple border was initially introduced to solve the
visibility problem occurring when the border's environment is similar to
the border itself. In practice however, it doesn't help much and has no
redeeming aesthetic value.
Bastien Dejean [Sun, 13 Jan 2013 10:10:15 +0000 (11:10 +0100)]
New messages: 'drop_to{,monitor}'
'send_to' was broken, '--next' and '--prev' can't be options, and I
don't want to restrain the name of the desktops with 'send_to
DESKTOP_NAME|next|prev [--follow]' or handle multiple options: 'send_to
(DESKTOP_NAME|(next|prev --relative)) [--follow]' so I just created new
messages.
Bastien Dejean [Wed, 9 Jan 2013 20:33:19 +0000 (21:33 +0100)]
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.
Bastien Dejean [Tue, 8 Jan 2013 14:54:39 +0000 (15:54 +0100)]
New messages: '{grab,track,ungrab}_pointer'
'focus_follows_mouse' is renamed to 'focus_follows_pointer'.
The aforementioned option is now handled by motion notify events.
sxhkd is now required to achieve window move/resize actions through
the new '*_pointer' messages as bspwm is not grabbing the pointer anymore.
Thomas Adam [Mon, 7 Jan 2013 09:18:41 +0000 (09:18 +0000)]
Add --next/--prev options to 'send_to_monitor'
This teaches the send_to_monitor command to send a client to either the
next/prev monitor rather than having to always specify a named monitor.
Such options are useful to be able to send clients to monitors relative to
their own position.
Bastien Dejean [Wed, 26 Dec 2012 20:19:10 +0000 (21:19 +0100)]
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.