[openbox] FAQ No. 4: can we talk?

Tore Anderson tore at linpro.no
Thu Mar 30 14:24:57 EST 2006

* s. keeling

>         --------------------------------------
> 4. When I lower, raise or move windows with a keybinding, focus
>    doesn't follow the mouse!
>    This is a feature, how large is the chance that the mouse
>    accidentally enters a window you want to focus when you move or
>    lower/raise something?
>         --------------------------------------
> What does that explanation have to do with anything?

  Consider the following use case:

  +-------+      +-----+
  | +-------+    |   * |
  | |       |    +-----+
  | |  C.F. |
  +-|       |

  The pointer is at *, and C.F. means currently focused.  So you lower
 or shade/roll up C.F. using a keybinding, and:

> I assume that a window rolled up will give focus to whatever window
> was immediately under it.

  ...but it won't, if you use the pointer position as the key.  It will
 move to the rightmost window.  Did you expect or want that?  Even if
 the pointer was hovering over C.F. to begin with, you can't be certain
 to get the behaviour you want - if the pointer was hovering all the way
 to the right edge of C.F., for instance.

> Surely you understand what "focus follows mouse" means.

  Well.  I understand it so that when the mouse moves, so does the
 focus - "following" after the pointer.  Conversely, if the pointer do
 not move, I do not expect the focus to do so either.  I feel the
 current behaviour is correct.  I do not expect a _keyboard_ action to
 trigger any focusFollows_Mouse_ changes.  Why should I need to care
 about where the pointer is when I manipulate the windows using keyboard

  I think your problem could be solved by adding a "move focus to
 whatever window the pointer is hovering over"-action.  Then you could
 just chain that together with your lower-action, I'd opt not to, and
 we'd both be happy.  I'm sure Mikael would consider such a patch for

  You might also want to take a look at the discussion in

> At the very least, *lose* focus forcing me to click on something,

  I know there's an "unfocus" action.  Jugding by its name I would
 assume you can just invoke that after the "lower" action in your
 <keybind> block to achieve exactly what you suggest.

Tore Anderson

More information about the openbox mailing list