]> Dogcows Code - chaz/openbox/blobdiff - scripts/builtins.py
remove the word "sticky" from everywhere, and replace with "all desktops". change...
[chaz/openbox] / scripts / builtins.py
index 729f3a6b34494beea24915cf9d0c59ab71ce7c77..e3424001c156c409c8569dd3ce8c46ae297687e6 100644 (file)
@@ -141,19 +141,26 @@ def prev_desktop(data, no_wrap=0):
         d = n - 1
     change_desktop(data, d)
 
-def send_to_all_desktops(data):
-    """Sends a client to all desktops"""
-    if not data.client: return
-    send_client_msg(display.screenInfo(data.screen).rootWindow(),
-                    Property_atoms().net_wm_desktop, data.client.window(),
-                    0xffffffff)
-    
 def send_to_desktop(data, num):
     """Sends a client to a specified desktop"""
     if not data.client: return
     send_client_msg(display.screenInfo(data.screen).rootWindow(),
                     Property_atoms().net_wm_desktop, data.client.window(), num)
 
+def toggle_all_desktops(data):
+    """Toggles between sending a client to all desktops and to the current
+       desktop."""
+    if not data.client: return
+    if not data.client.desktop() == 0xffffffff:
+        send_to_desktop(data, 0xffffffff)
+    else:
+        send_to_desktop(data, openbox.screen(data.screen).desktop())
+    
+def send_to_all_desktops(data):
+    """Sends a client to all desktops"""
+    if not data.client: return
+    send_to_desktop(data, 0xffffffff)
+    
 def send_to_next_desktop(data, no_wrap=0, follow=1):
     """Sends a window to the next desktop, optionally (by default) cycling
        around to the first when going past the last. Also optionally moving to
@@ -255,6 +262,7 @@ def setup_window_clicks():
 
 def setup_window_buttons():
     """Sets up the default behaviors for the buttons in the window titlebar."""
+    mbind("Left", MC_AllDesktopsButton, MouseClick, toggle_all_desktops)
     mbind("Left", MC_CloseButton, MouseClick, close)
 
 def setup_scroll():
@@ -317,12 +325,13 @@ ob_rand = None
 import random
 def placewindows_random(data):
     if not data.client: return
-    frame_area = data.client.frame.area()
-    print "AAAAAAAAASA " + str(frame_area.width())
+    client_area = data.client.area()
+    frame_size = data.client.frame.size()
     screen = display.screenInfo(data.screen)
-    # XXX - USE THE FRAME'S SIZE!!
-    width = screen.width() - frame_area.width()
-    height = screen.height() - frame_area.height()
+    width = screen.width() - (client_area.width() +
+                              frame_size.left + frame_size.right)
+    height = screen.height() - (client_area.height() + 
+                                frame_size.top + frame_size.bottom)
     global ob_rand
     if not ob_rand: ob_rand = random.Random()
     x = ob_rand.randrange(0, width-1)
This page took 0.02508 seconds and 4 git commands to generate.