Menu

#27 Another try on FocusOnMap ignored

open
nobody
None
5
2008-08-09
2008-08-07
No

I am closing all the outdated bugs and collecting the behaviorial issues I had, hopefully in a complete fashion, here.

The configuration used is:

07:48 mirage:~/.icewm > grep -v "^#" prefoverride | grep -v '^$'
ClickToFocus=1 # 0/1
FocusOnAppRaise=0 # 0/1
RequestFocusOnAppRaise=1 # 0/1
RaiseOnFocus=0 # 0/1
RaiseOnClickTitleBar=1 # 0/1
RaiseOnClickButton=0 # 0/1
RaiseOnClickFrame=1 # 0/1
FocusChangesWorkspace=0 # 0/1
FocusOnMap=0 # 0/1
FocusOnMapTransient=0 # 0/1
FocusOnMapTransientActive=1 # 0/1
MapInactiveOnTop=1 # 0/1
StrongPointerFocus=0 # 0/1
ManualPlacement=1 # 0/1
DelayPointerFocus=0 # 0/1
TimeFormat="%T"
WorkspaceNames=" 1 ", " 2 ", " 3 ", " 4 "
DesktopBackgroundCenter=1
SupportSemitransparency=1
DesktopBackgroundScaled=1
DesktopBackgroundImage="/usr/share/wallpapers/default-1600x1200.jpg"
07:48 mirage:~/.icewm > cat focus_mode
FocusMode=2

FocusOnMap bug:

New windows are still focused despite FocusOnMap=0. Specifically, focus is on this web browser window right now, and when I start an xterm using the icewm menu, focus switches to the xterm which I deem wrong.

StrongFocus ignored:

I cannot use the "Custom" focusing mode because then there will be no sloppy mouse handling, i.e. moving over a window will not focus it, even if StrongPointerFocus=1. It is like ClickToFocus. Since StrongPointerFocus also seems to be stronger than sloppy mouse focus, there is no possibility to set/unset sloppy focus in prefoverride (is that supposed to be like that, since sloppy is to be set through focus_mode?)

Discussion

  • Marko Macek

    Marko Macek - 2008-08-09
    • labels: 319566 -->
    • milestone: 227668 -->
     
  • Marko Macek

    Marko Macek - 2008-08-09

    Logged In: YES
    user_id=1814
    Originator: NO

    Setting focus_mode (!= 0 - Custom) overrides (final) the following settings:

    switch (focusMode) {
    case 0: /* custom */
    break;
    default: /* click to focus */
    clickFocus = true;
    focusOnAppRaise = false;
    requestFocusOnAppRaise = true;
    raiseOnFocus = true;
    raiseOnClickClient = true;
    focusOnMap = true;
    mapInactiveOnTop = true;
    focusChangesWorkspace = false;
    focusOnMapTransient = false;
    focusOnMapTransientActive = true;
    break;
    case 2: /* mouse focus */
    clickFocus = false;
    focusOnAppRaise = false;
    requestFocusOnAppRaise = true;
    raiseOnFocus = false;
    raiseOnClickClient = true;
    focusOnMap = true;
    mapInactiveOnTop = true;
    focusChangesWorkspace = false;
    focusOnMapTransient = false;
    focusOnMapTransientActive = true;
    break;
    }

     
  • Jan Engelhardt

    Jan Engelhardt - 2008-08-09

    Logged In: YES
    user_id=1287009
    Originator: YES

    I do not think anything should override prefoverride. (If things went my way, I would even say that Focus Mode comes first, then comes /etc/X11/icewm/preferences, and then ~/.icewm/preferences, without a need for prevoderride.)

    And like I said, if I use "Custom" focusing mode, I cannot get the focus-follows-mouse-pointer behavior.

     
  • Marko Macek

    Marko Macek - 2008-08-09

    Logged In: YES
    user_id=1814
    Originator: NO

    Unfortunately, if focusMode did not override everything it would not be
    supportable. Supportability is the reason it was introduced after all.
    This bug is proof of that.

    Selecting focus mode Custom and using this in preferences/prefoverride:

    ClickToFocus=0
    FocusOnAppRaise=0
    RequestFocusOnAppRaise=1
    RaiseOnFocus=0
    RaiseOnClickClient=1
    FocusOnMap=1
    MapInactiveOnTop=1
    FocusChangesWorkspace=1
    FocusOnMapTransient=0
    FocusOnMapTransientActive=1

    should have exactly the same behavior as "Sloppy mouse focus".

    you can then tweak FocusOnMap and other settings to get your
    custom behavior.

     
  • Jan Engelhardt

    Jan Engelhardt - 2008-08-09

    Logged In: YES
    user_id=1287009
    Originator: YES

    Ok, that worked so far.

    17:35 mirage:~/.icewm > grep -v '^$' prefoverride | grep -v '^#'
    ClickToFocus=0 # 0/1
    FocusOnAppRaise=0 # 0/1
    RequestFocusOnAppRaise=1 # 0/1
    RaiseOnFocus=0 # 0/1
    FocusOnClickClient=1 # 0/1
    RaiseOnClickTitleBar=1 # 0/1
    RaiseOnClickButton=0 # 0/1
    RaiseOnClickFrame=1 # 0/1
    FocusChangesWorkspace=1 # 0/1
    FocusOnMap=0 # 0/1
    FocusOnMapTransient=0 # 0/1
    FocusOnMapTransientActive=1 # 0/1
    MapInactiveOnTop=1 # 0/1
    ManualPlacement=1 # 0/1
    DelayPointerFocus=0 # 0/1
    TimeFormat="%T"
    WorkspaceNames=" 1 ", " 2 ", " 3 ", " 4 "
    DesktopBackgroundScaled=1 # 0/1
    DesktopBackgroundColor="rgb:00/20/40"
    DesktopBackgroundImage="/home/jengelh/.icewm/h.tribute-in-lights.jpg"
    17:35 mirage:~/.icewm > cat focus_mode
    FocusMode=0

    With this specific setup, sloppy-mouse works, however, ManualPlacement is ignored.

     
  • Marko Macek

    Marko Macek - 2008-08-11

    Logged In: YES
    user_id=1814
    Originator: NO

    I don't see how ManualPlacement with avoiding focus makes sense. Shouldn't the window be mapped under the cursor when manual placement is needed?

    How do you think it should behave?

     
  • Jan Engelhardt

    Jan Engelhardt - 2008-08-11

    Logged In: YES
    user_id=1287009
    Originator: YES

    >I don't see how ManualPlacement with avoiding focus makes sense.

    icewm 1.2.x with x <= 27 had this nice behavior of whenever you moved the mouse, you moved the new window (ManualPlacement=1), but keyboard operations were still sent to the focused window (FocusOnMap=0). Also, the new window would not be focused when the mouse button is clicked to fixate the new window's position.

     
  • Jan Engelhardt

    Jan Engelhardt - 2008-08-11

    Logged In: YES
    user_id=1287009
    Originator: YES

    An example of where this shows off: you are doing coding and then an IM window pops up. The IM window shall not get focus so that you do not actually start to type in it (which the other side sees and knows you are not-AFK). However, ManualPlacement is important because if the window pops up anywhere on the desktop, especially when the resolution is lower than the virtual desktop size, you will never notice it.

     

Log in to post a comment.