all repos — openbox @ 1862fd052f1843e54225fbc6f213e13c317cbca8

openbox fork - make it a bit more like ryudo

scripts/focusmodel.py (raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
###############################################################################
###           Functions for setting up some default focus models.           ###
###############################################################################

import ob
import callbacks

def setup_click_focus(click_raise = 1):
    """Sets up for focusing windows by clicking on or in the window.
       Optionally, clicking on or in a window can raise the window to the
       front of its stacking layer."""
    ob.mbind("Left", ob.MouseContext.Titlebar,
             ob.MouseAction.Press, callbacks.focus)
    ob.mbind("Left", ob.MouseContext.Handle,
             ob.MouseAction.Press, callbacks.focus)
    ob.mbind("Left", ob.MouseContext.Grip,
             ob.MouseAction.Press, callbacks.focus)
    ob.mbind("Left", ob.MouseContext.Window,
             ob.MouseAction.Press, callbacks.focus)
    #ob.mbind("A-Left", ob.MouseContext.Frame, ob.MouseAction.Press, focus)
    if click_raise:
        ob.mbind("Left", ob.MouseContext.Titlebar,
                 ob.MouseAction.Press, callbacks.raise_win)
        ob.mbind("Left", ob.MouseContext.Handle,
                 ob.MouseAction.Press, callbacks.raise_win)
        ob.mbind("Left", ob.MouseContext.Grip,
                 ob.MouseAction.Press, callbacks.raise_win)
        ob.mbind("Left", ob.MouseContext.Window,
                 ob.MouseAction.Press, callbacks.raise_win)    

def setup_sloppy_focus(click_focus = 1, click_raise = 0):
    """Sets up for focusing windows when the mouse pointer enters them.
       Optionally, clicking on or in a window can focus it if your pointer
       ends up inside a window without focus. Also, optionally, clicking on or
       in a window can raise the window to the front of its stacking layer."""
    ob.ebind(ob.EventAction.EnterWindow, callbacks.focus)
    if click_focus:
        setup_click_focus(click_raise)

print "Loaded focusmodel.py"