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.
Thomas Adam [Wed, 26 Dec 2012 00:41:23 +0000 (00:41 +0000)]
Fix drawing of urgency border colour
It looks as though commit f37c14902fd639b87090659433d815f20fe3a42a
introduced a regression in the way urgency borders are rendered. Because
each window is considered across all desktops for monitors, we must now
augment the checking of an urgent client when looking up the border colours
for focused windows also.
Without this, a single window on a desk on an unfocused monitor will be
correctly set as having an urgent hint, but its borders will not pick up on
any urgent border colour settings.
Bastien Dejean [Tue, 25 Dec 2012 10:59:56 +0000 (11:59 +0100)]
Rewrite border drawing in `focus_node`
6ad8160fadb24e422ebb75c7ea855ff2b4f2e402 introduced a blinking border
bug under the `mon == m` circumstances, the new code tries to keep it
simple while being exhaustive.
Bastien Dejean [Thu, 20 Dec 2012 10:14:38 +0000 (11:14 +0100)]
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.