]> Dogcows Code - chaz/openbox/blob - scripts/builtins.py
dont focus desktops and docks via enter events
[chaz/openbox] / scripts / builtins.py
1 ###########################################################################
2 ### Functions that can be used as callbacks for mouse/keyboard bindings ###
3 ###########################################################################
4
5 def close(data):
6 """Closes the window on which the event occured"""
7 client = Openbox_findClient(openbox, data.window())
8 if client: OBClient_close(client)
9
10 def focus(data):
11 """Focuses the window on which the event occured"""
12 client = Openbox_findClient(openbox, data.window())
13 if not client: return
14 type = OBClient_type(client)
15 # these types of windows dont get focus from window enter events
16 if data.action() == EventEnterWindow:
17 print "enter window"
18 if (type == OBClient_Type_Dock or \
19 type == OBClient_Type_Desktop):
20 return
21 OBClient_focus(client)
22
23 def move(data):
24 """Moves the window interactively. This should only be used with
25 MouseMotion events"""
26 client = Openbox_findClient(openbox, data.window())
27 if not client: return
28
29 dx = data.xroot() - data.pressx()
30 dy = data.yroot() - data.pressy()
31 OBClient_move(client, data.press_clientx() + dx, data.press_clienty() + dy)
32
33 def resize(data):
34 """Resizes the window interactively. This should only be used with
35 MouseMotion events"""
36 client = Openbox_findClient(openbox, data.window())
37 if not client: return
38
39 px = data.pressx()
40 py = data.pressy()
41 dx = data.xroot() - px
42 dy = data.yroot() - py
43
44 # pick a corner to anchor
45 if not (resize_nearest or data.context() == MC_Grip):
46 corner = OBClient_TopLeft
47 else:
48 x = px - data.press_clientx()
49 y = py - data.press_clienty()
50 if y < data.press_clientheight() / 2:
51 if x < data.press_clientwidth() / 2:
52 corner = OBClient_BottomRight
53 dx *= -1
54 else:
55 corner = OBClient_BottomLeft
56 dy *= -1
57 else:
58 if x < data.press_clientwidth() / 2:
59 corner = OBClient_TopRight
60 dx *= -1
61 else:
62 corner = OBClient_TopLeft
63
64 OBClient_resize(client, corner,
65 data.press_clientwidth() + dx,
66 data.press_clientheight() + dy);
67
68 def execute(bin, screen = 0):
69 Openbox_execute(openbox, screen, bin)
70
71 def restart(data):
72 Openbox_restart(openbox, "")
73
74 def toggle_shade(data):
75 print "toggle_shade"
76
77 def raise_win(data):
78 client = Openbox_findClient(openbox, data.window())
79 if not client: return
80 screen = Openbox_screen(openbox, OBClient_screen(client))
81 OBScreen_restack(screen, 1, client)
82
83 def lower_win(data):
84 client = Openbox_findClient(openbox, data.window())
85 if not client: return
86 screen = Openbox_screen(openbox, OBClient_screen(client))
87 OBScreen_restack(screen, 0, client)
88
89 def toggle_shade(data):
90 client = Openbox_findClient(openbox, data.window())
91 if not client: return
92 print "toggle_shade"
93 OBClient_shade(client, not OBClient_shaded(client))
94
95 def shade(data):
96 client = Openbox_findClient(openbox, data.window())
97 if not client: return
98 OBClient_shade(client, 1)
99
100 def unshade(data):
101 client = Openbox_findClient(openbox, data.window())
102 if not client: return
103 OBClient_shade(client, 0)
104
105 print "Loaded builtins.py"
This page took 0.058964 seconds and 5 git commands to generate.