[clfswm-cvs] r333 - in clfswm: . doc src

Philippe Brochard pbrochard at common-lisp.net
Sun Sep 26 19:22:31 UTC 2010


Author: pbrochard
Date: Sun Sep 26 15:22:30 2010
New Revision: 333

Log:
src/clfswm-expose-mode.lisp (expose-mode-display-accel-windows): New functions. Add a window on each child in the expose mode to quickly select them.

Modified:
   clfswm/ChangeLog
   clfswm/doc/corner.html
   clfswm/doc/corner.txt
   clfswm/doc/keys.html
   clfswm/doc/keys.txt
   clfswm/doc/menu.html
   clfswm/doc/menu.txt
   clfswm/src/clfswm-autodoc.lisp
   clfswm/src/clfswm-circulate-mode.lisp
   clfswm/src/clfswm-expose-mode.lisp
   clfswm/src/clfswm-internal.lisp
   clfswm/src/clfswm-layout.lisp
   clfswm/src/config.lisp
   clfswm/src/package.lisp

Modified: clfswm/ChangeLog
==============================================================================
--- clfswm/ChangeLog	(original)
+++ clfswm/ChangeLog	Sun Sep 26 15:22:30 2010
@@ -1,3 +1,12 @@
+2010-09-26  Philippe Brochard  <pbrochard at common-lisp.net>
+
+	* src/clfswm-expose-mode.lisp (expose-mode-display-accel-windows):
+	New functions. Add a window on each child in the expose mode to
+	quickly select them.
+
+	* src/clfswm-internal.lisp (child-x, child-y, child-width)
+	(child-height): New methods to get real child coordinates.
+
 2010-09-25  Philippe Brochard  <pbrochard at common-lisp.net>
 
 	* src/clfswm-layout.lisp (*-layout): Use child-position.

Modified: clfswm/doc/corner.html
==============================================================================
--- clfswm/doc/corner.html	(original)
+++ clfswm/doc/corner.html	Sun Sep 26 15:22:30 2010
@@ -120,7 +120,7 @@
           Bottom-Left:
         </td>
         <td style="color:#0000ff" nowrap>
-          ---
+          Start the file manager
         </td>
       </tr>
     </table>

Modified: clfswm/doc/corner.txt
==============================================================================
--- clfswm/doc/corner.txt	(original)
+++ clfswm/doc/corner.txt	Sun Sep 26 15:22:30 2010
@@ -16,7 +16,7 @@
   Top-Left: Hide/Unhide a terminal
   Top-Right: Close or kill the current window (ask before doing anything)
   Bottom-Right: Present all windows in all frames (An expose like)
-  Bottom-Left: ---
+  Bottom-Left: Start the file manager
 
 *Corner-Second-Mode-Left-Button*:
   Top-Left: ---

Modified: clfswm/doc/keys.html
==============================================================================
--- clfswm/doc/keys.html	(original)
+++ clfswm/doc/keys.html	Sun Sep 26 15:22:30 2010
@@ -241,7 +241,7 @@
       </tr>
       <tr>
         <td align="right" style="color:#ff0000" nowrap>
-           Control 
+           Control  Shift 
         </td>
         <td align="center" nowrap>
           F10
@@ -252,6 +252,28 @@
       </tr>
       <tr>
         <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          F10
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Present all windows in the current frame (An expose like)
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Control 
+        </td>
+        <td align="center" nowrap>
+          F10
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Present all windows in all frames (An expose like)
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
            Mod-1 
         </td>
         <td align="center" nowrap>
@@ -299,7 +321,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          1
+          Ccedilla
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -310,7 +332,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          2
+          Underscore
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -321,7 +343,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          3
+          Egrave
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -332,7 +354,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          4
+          Minus
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -343,7 +365,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          5
+          Parenleft
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -354,7 +376,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          6
+          Quoteright
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -365,7 +387,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          7
+          Quotedbl
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -376,7 +398,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          8
+          Eacute
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -387,7 +409,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          9
+          Ampersand
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -395,15 +417,103 @@
       </tr>
       <tr>
         <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Twosuperior
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Move the pointer to the lower right corner of the screen
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Mod-1 
+        </td>
+        <td align="center" nowrap>
+          F2
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Open the Music Player Daemon (MPD) menu
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
            Mod-1 
         </td>
         <td align="center" nowrap>
-          0
+          Agrave
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
         </td>
       </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Pause
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Open the Reboot/Halt menu
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Control_r
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Move the pointer to the lower right corner of the screen
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          176
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Raise the volume
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          174
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Lower the volume
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Control 
+        </td>
+        <td align="center" nowrap>
+          66
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Present all windows in the current frame (An expose like)
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Control  Shift 
+        </td>
+        <td align="center" nowrap>
+          66
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Present all windows in all frames (An expose like)
+        </td>
+      </tr>
     </table>
     <h3>
       <u>
@@ -807,6 +917,83 @@
       </tr>
       <tr>
         <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Right
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Speed move mouse to right
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Left
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Speed move mouse to left
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Down
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Speed move mouse to down
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Up
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Speed move mouse to up
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Control 
+        </td>
+        <td align="center" nowrap>
+          Left
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Undo last speed mouse move
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Control 
+        </td>
+        <td align="center" nowrap>
+          Up
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Revert to the first speed move mouse
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Control 
+        </td>
+        <td align="center" nowrap>
+          Down
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Reset speed mouse coordinates
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
            Mod-1 
         </td>
         <td align="center" nowrap>
@@ -1137,7 +1324,7 @@
       </tr>
       <tr>
         <td align="right" style="color:#ff0000" nowrap>
-           Control 
+           Control  Shift 
         </td>
         <td align="center" nowrap>
           F10
@@ -1148,10 +1335,32 @@
       </tr>
       <tr>
         <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          F10
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Present all windows in the current frame (An expose like)
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Control 
+        </td>
+        <td align="center" nowrap>
+          F10
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Present all windows in all frames (An expose like)
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
            Mod-1 
         </td>
         <td align="center" nowrap>
-          1
+          Ccedilla
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -1162,7 +1371,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          2
+          Underscore
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -1173,7 +1382,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          3
+          Egrave
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -1184,7 +1393,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          4
+          Minus
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -1195,7 +1404,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          5
+          Parenleft
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -1206,7 +1415,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          6
+          Quoteright
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -1217,7 +1426,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          7
+          Quotedbl
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -1228,7 +1437,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          8
+          Eacute
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -1239,7 +1448,7 @@
            Mod-1 
         </td>
         <td align="center" nowrap>
-          9
+          Ampersand
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
@@ -1247,15 +1456,48 @@
       </tr>
       <tr>
         <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Twosuperior
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Move the pointer to the lower right corner of the screen
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
            Mod-1 
         </td>
         <td align="center" nowrap>
-          0
+          Agrave
         </td>
         <td style="color:#0000ff" nowrap>
           Bind or jump to a slot (a frame or a window)
         </td>
       </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Space
+        </td>
+        <td style="color:#0000ff" nowrap>
+          start the file manager
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Z
+        </td>
+        <td style="color:#0000ff" nowrap>
+          start the web browser
+        </td>
+      </tr>
     </table>
     <h3>
       <u>
@@ -1645,6 +1887,357 @@
         </td>
       </tr>
     </table>
+    <h3>
+      <u>
+        Circulate mode keys
+      </u>
+    </h3>
+    <table class="ex" cellspacing="5" border="0" width="100%">
+      <tr>
+        <th align="right" width="10%">
+          Modifiers
+        </th>
+        <th align="center" width="10%">
+          Key/Button
+        </th>
+        <th align="left">
+          Function
+        </th>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Escape
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Leave the circulate mode
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Control 
+        </td>
+        <td align="center" nowrap>
+          G
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Leave the circulate mode
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Mod-1 
+        </td>
+        <td align="center" nowrap>
+          Escape
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Leave the circulate mode
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Mod-1  Control 
+        </td>
+        <td align="center" nowrap>
+          G
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Leave the circulate mode
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Mod-1 
+        </td>
+        <td align="center" nowrap>
+          Tab
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Select the next child
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Mod-1  Shift 
+        </td>
+        <td align="center" nowrap>
+          Tab
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Select the previous child
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Mod-1  Shift 
+        </td>
+        <td align="center" nowrap>
+          Iso_left_tab
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Select the previous child
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Mod-1 
+        </td>
+        <td align="center" nowrap>
+          Right
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Select the next brother
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Mod-1 
+        </td>
+        <td align="center" nowrap>
+          Left
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Select the previous borther
+        </td>
+      </tr>
+    </table>
+    <h3>
+      <u>
+        Expose windows mode keys
+      </u>
+    </h3>
+    <table class="ex" cellspacing="5" border="0" width="100%">
+      <tr>
+        <th align="right" width="10%">
+          Modifiers
+        </th>
+        <th align="center" width="10%">
+          Key/Button
+        </th>
+        <th align="left">
+          Function
+        </th>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Escape
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Leave the expose mode
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Control 
+        </td>
+        <td align="center" nowrap>
+          G
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Leave the expose mode
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Mod-1 
+        </td>
+        <td align="center" nowrap>
+          Escape
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Leave the expose mode
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Mod-1  Control 
+        </td>
+        <td align="center" nowrap>
+          G
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Leave the expose mode
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Return
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Valid the expose mode
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Space
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Valid the expose mode
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Tab
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Valid the expose mode
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Right
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Speed move mouse to right
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Left
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Speed move mouse to left
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Down
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Speed move mouse to down
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          Up
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Speed move mouse to up
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Control 
+        </td>
+        <td align="center" nowrap>
+          Left
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Undo last speed mouse move
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Control 
+        </td>
+        <td align="center" nowrap>
+          Up
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Revert to the first speed move mouse
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+           Control 
+        </td>
+        <td align="center" nowrap>
+          Down
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Reset speed mouse coordinates
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+            A
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Leave the expose mode
+        </td>
+      </tr>
+    </table>
+    <h3>
+      <u>
+        Mouse buttons actions in expose windows mode
+      </u>
+    </h3>
+    <table class="ex" cellspacing="5" border="0" width="100%">
+      <tr>
+        <th align="right" width="10%">
+          Modifiers
+        </th>
+        <th align="center" width="10%">
+          Key/Button
+        </th>
+        <th align="left">
+          Function
+        </th>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          1
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Valid the expose mode
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          2
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Leave the expose mode
+        </td>
+      </tr>
+      <tr>
+        <td align="right" style="color:#ff0000" nowrap>
+          
+        </td>
+        <td align="center" nowrap>
+          3
+        </td>
+        <td style="color:#0000ff" nowrap>
+          Leave the expose mode
+        </td>
+      </tr>
+    </table>
     <p>
       <small>
         This documentation was produced with the CLFSWM auto-doc functions. To reproduce it, use the produce-doc-html-in-file or

Modified: clfswm/doc/keys.txt
==============================================================================
--- clfswm/doc/keys.txt	(original)
+++ clfswm/doc/keys.txt	Sun Sep 26 15:22:30 2010
@@ -25,21 +25,31 @@
   Mod-1                F10             Switch between two layouts
   Shift                F10             Show all frames info windows until a key is release
   Mod-1 Shift          F10             Show all frames info windows
-  Control              F10             Show/Hide the root frame
+  Control Shift        F10             Show/Hide the root frame
+                       F10             Present all windows in the current frame (An expose like)
+  Control              F10             Present all windows in all frames (An expose like)
   Mod-1                B               Move the pointer to the lower right corner of the screen
   Control              Escape          Close or kill the current window (ask before doing anything)
   Mod-1                T               Switch to editing mode
   Control              Less            Switch to editing mode
-  Mod-1                1               Bind or jump to a slot (a frame or a window)
-  Mod-1                2               Bind or jump to a slot (a frame or a window)
-  Mod-1                3               Bind or jump to a slot (a frame or a window)
-  Mod-1                4               Bind or jump to a slot (a frame or a window)
-  Mod-1                5               Bind or jump to a slot (a frame or a window)
-  Mod-1                6               Bind or jump to a slot (a frame or a window)
-  Mod-1                7               Bind or jump to a slot (a frame or a window)
-  Mod-1                8               Bind or jump to a slot (a frame or a window)
-  Mod-1                9               Bind or jump to a slot (a frame or a window)
-  Mod-1                0               Bind or jump to a slot (a frame or a window)
+  Mod-1                Ccedilla        Bind or jump to a slot (a frame or a window)
+  Mod-1                Underscore      Bind or jump to a slot (a frame or a window)
+  Mod-1                Egrave          Bind or jump to a slot (a frame or a window)
+  Mod-1                Minus           Bind or jump to a slot (a frame or a window)
+  Mod-1                Parenleft       Bind or jump to a slot (a frame or a window)
+  Mod-1                Quoteright      Bind or jump to a slot (a frame or a window)
+  Mod-1                Quotedbl        Bind or jump to a slot (a frame or a window)
+  Mod-1                Eacute          Bind or jump to a slot (a frame or a window)
+  Mod-1                Ampersand       Bind or jump to a slot (a frame or a window)
+                       Twosuperior     Move the pointer to the lower right corner of the screen
+  Mod-1                F2              Open the Music Player Daemon (MPD) menu
+  Mod-1                Agrave          Bind or jump to a slot (a frame or a window)
+                       Pause           Open the Reboot/Halt menu
+                       Control_r       Move the pointer to the lower right corner of the screen
+                       176             Raise the volume
+                       174             Lower the volume
+  Control              66              Present all windows in the current frame (An expose like)
+  Control Shift        66              Present all windows in all frames (An expose like)
 
 
 Mouse buttons actions in main mode:
@@ -85,6 +95,13 @@
   Mod-1                Left            Select the previous brother
   Mod-1                Down            Select the previous level in frame
   Mod-1                Up              Select the next level in frame
+                       Right           Speed move mouse to right
+                       Left            Speed move mouse to left
+                       Down            Speed move mouse to down
+                       Up              Speed move mouse to up
+  Control              Left            Undo last speed mouse move
+  Control              Up              Revert to the first speed move mouse
+  Control              Down            Reset speed mouse coordinates
   Mod-1                Tab             Select the next child
   Mod-1 Shift          Tab             Select the previouschild
   Shift                Tab             Store the current child and switch to the previous one
@@ -115,17 +132,22 @@
   Mod-1                F10             Switch between two layouts
   Shift                F10             Show all frames info windows until a key is release
   Mod-1 Shift          F10             Show all frames info windows
-  Control              F10             Show/Hide the root frame
-  Mod-1                1               Bind or jump to a slot (a frame or a window)
-  Mod-1                2               Bind or jump to a slot (a frame or a window)
-  Mod-1                3               Bind or jump to a slot (a frame or a window)
-  Mod-1                4               Bind or jump to a slot (a frame or a window)
-  Mod-1                5               Bind or jump to a slot (a frame or a window)
-  Mod-1                6               Bind or jump to a slot (a frame or a window)
-  Mod-1                7               Bind or jump to a slot (a frame or a window)
-  Mod-1                8               Bind or jump to a slot (a frame or a window)
-  Mod-1                9               Bind or jump to a slot (a frame or a window)
-  Mod-1                0               Bind or jump to a slot (a frame or a window)
+  Control Shift        F10             Show/Hide the root frame
+                       F10             Present all windows in the current frame (An expose like)
+  Control              F10             Present all windows in all frames (An expose like)
+  Mod-1                Ccedilla        Bind or jump to a slot (a frame or a window)
+  Mod-1                Underscore      Bind or jump to a slot (a frame or a window)
+  Mod-1                Egrave          Bind or jump to a slot (a frame or a window)
+  Mod-1                Minus           Bind or jump to a slot (a frame or a window)
+  Mod-1                Parenleft       Bind or jump to a slot (a frame or a window)
+  Mod-1                Quoteright      Bind or jump to a slot (a frame or a window)
+  Mod-1                Quotedbl        Bind or jump to a slot (a frame or a window)
+  Mod-1                Eacute          Bind or jump to a slot (a frame or a window)
+  Mod-1                Ampersand       Bind or jump to a slot (a frame or a window)
+                       Twosuperior     Move the pointer to the lower right corner of the screen
+  Mod-1                Agrave          Bind or jump to a slot (a frame or a window)
+                       Space           start the file manager
+                       Z               start the web browser
 
 
 Mouse buttons actions in second mode:
@@ -175,6 +197,48 @@
                        Motion          NIL
 
 
+Circulate mode keys:
+-------------------
+
+                       Escape          Leave the circulate mode
+  Control              G               Leave the circulate mode
+  Mod-1                Escape          Leave the circulate mode
+  Mod-1 Control        G               Leave the circulate mode
+  Mod-1                Tab             Select the next child
+  Mod-1 Shift          Tab             Select the previous child
+  Mod-1 Shift          Iso_left_tab    Select the previous child
+  Mod-1                Right           Select the next brother
+  Mod-1                Left            Select the previous borther
+
+
+Expose windows mode keys:
+------------------------
+
+                       Escape          Leave the expose mode
+  Control              G               Leave the expose mode
+  Mod-1                Escape          Leave the expose mode
+  Mod-1 Control        G               Leave the expose mode
+                       Return          Valid the expose mode
+                       Space           Valid the expose mode
+                       Tab             Valid the expose mode
+                       Right           Speed move mouse to right
+                       Left            Speed move mouse to left
+                       Down            Speed move mouse to down
+                       Up              Speed move mouse to up
+  Control              Left            Undo last speed mouse move
+  Control              Up              Revert to the first speed move mouse
+  Control              Down            Reset speed mouse coordinates
+                       A               Leave the expose mode
+
+
+Mouse buttons actions in expose windows mode:
+--------------------------------------------
+
+                       1               Valid the expose mode
+                       2               Leave the expose mode
+                       3               Leave the expose mode
+
+
 
 This documentation was produced with the CLFSWM auto-doc functions.
 To reproduce it, use the produce-doc-in-file or the produce-all-docs

Modified: clfswm/doc/menu.html
==============================================================================
--- clfswm/doc/menu.html	(original)
+++ clfswm/doc/menu.html	Sun Sep 26 15:22:30 2010
@@ -81,6 +81,105 @@
     <p>
       v: Show the current CLFSWM version
     </p>
+    <p>
+      F2: <a href="#MPD-MENU">< Music Player Daemon (MPD) menu ></a>
+    </p>
+    <p>
+      x: <a href="#XMMS-MENU">< XMMS menu ></a>
+    </p>
+    <p>
+      i: <a href="#CDPLAYER-MENU">< CDPLAYER menu ></a>
+    </p>
+    <hr>
+    <h3>
+      <a name="MPD-MENU"></a><a href="#HELP-MENU">Mpd-Menu</a>
+    </h3>
+    <p>
+      i: Show MPD informations
+    </p>
+    <p>
+      p: Play the previous song in the current playlist
+    </p>
+    <p>
+      n: Play the next song in the current playlist
+    </p>
+    <p>
+      t: Toggles Play/Pause, plays if stopped
+    </p>
+    <p>
+      y: Start playing
+    </p>
+    <p>
+      k: Stop the currently playing playlists
+    </p>
+    <p>
+      x: Seeks to +5%
+    </p>
+    <p>
+      w: Seeks to -5%
+    </p>
+    <p>
+      l: Show the current MPD playlist
+    </p>
+    <p>
+      s: Start sonata
+    </p>
+    <p>
+      g: Start gmpc
+    </p>
+    <hr>
+    <h3>
+      <a name="XMMS-MENU"></a><a href="#HELP-MENU">Xmms-Menu</a>
+    </h3>
+    <p>
+      r: Lanch XMMS
+    </p>
+    <p>
+      s: Show the current xmms status
+    </p>
+    <p>
+      l: Show the current xmms playlist
+    </p>
+    <p>
+      n: Play the next XMMS track
+    </p>
+    <p>
+      p: Play the previous XMMS track
+    </p>
+    <p>
+      e: open xmms "Load file(s)" dialog window.
+    </p>
+    <hr>
+    <h3>
+      <a name="CDPLAYER-MENU"></a><a href="#HELP-MENU">Cdplayer-Menu</a>
+    </h3>
+    <p>
+      y: Start playing CD
+    </p>
+    <p>
+      k: Stop playing CD
+    </p>
+    <p>
+      t: Toggle pause
+    </p>
+    <p>
+      s: Show the current CD status
+    </p>
+    <p>
+      l: Show the current CD playlist
+    </p>
+    <p>
+      n: Play the next CD track
+    </p>
+    <p>
+      p: Play the previous CD track
+    </p>
+    <p>
+      e: Eject CD
+    </p>
+    <p>
+      c: Close CD
+    </p>
     <hr>
     <h3>
       <a name="STANDARD-MENU"></a><a href="#MAIN">Standard-Menu</a>
@@ -650,6 +749,9 @@
       |: SolarWolf
     </p>
     <p>
+      |: Spring - An open source RTS with similar gameplay to TA
+    </p>
+    <p>
       |: SuperTux 2 - Play a classic 2D platform game
     </p>
     <p>
@@ -1168,6 +1270,9 @@
       |: Disk Utility - Manage Drives and Media
     </p>
     <p>
+      |: rxvt-unicode - An Unicode capable rxvt clone
+    </p>
+    <p>
       |: UNetbootin - Tool for creating Live USB drives
     </p>
     <p>
@@ -1337,6 +1442,9 @@
       |: Scilab - A scientific software package for numerical computations
     </p>
     <p>
+      |: Tilda
+    </p>
+    <p>
       |: About Xfce
     </p>
     <p>
@@ -1400,6 +1508,12 @@
     <p>
       d: LXTerminal - Use the command line
     </p>
+    <p>
+      e: rxvt-unicode - An Unicode capable rxvt clone
+    </p>
+    <p>
+      f: Tilda
+    </p>
     <hr>
     <h3>
       <a name="ARCHLINUX"></a><a href="#STANDARD-MENU">Archlinux</a>
@@ -2626,16 +2740,16 @@
       d: <a href="#CONF-IDENTIFY-KEY-GROUP">< Identify key group ></a>
     </p>
     <p>
-      e: <a href="#CONF-SECOND-MODE-GROUP">< Second mode group ></a>
+      e: <a href="#CONF-CORNER-GROUP">< Corner group ></a>
     </p>
     <p>
-      f: <a href="#CONF-CORNER-GROUP">< Corner group ></a>
+      f: <a href="#CONF-QUERY-STRING-GROUP">< Query string group ></a>
     </p>
     <p>
-      g: <a href="#CONF-QUERY-STRING-GROUP">< Query string group ></a>
+      g: <a href="#CONF-CIRCULATE-MODE-GROUP">< Circulate mode group ></a>
     </p>
     <p>
-      h: <a href="#CONF-CIRCULATE-MODE-GROUP">< Circulate mode group ></a>
+      h: <a href="#CONF-SECOND-MODE-GROUP">< Second mode group ></a>
     </p>
     <p>
       i: <a href="#CONF-PLACEMENT-GROUP">< Placement group ></a>
@@ -2715,28 +2829,6 @@
     </p>
     <hr>
     <h3>
-      <a name="CONF-SECOND-MODE-GROUP"></a><a href="#CONFIGURATION-MENU">Conf-Second-Mode-Group</a>
-    </h3>
-    <p>
-      a: Configure SM-BACKGROUND-COLOR
-    </p>
-    <p>
-      b: Configure SM-HEIGHT
-    </p>
-    <p>
-      c: Configure SM-WIDTH
-    </p>
-    <p>
-      d: Configure SM-FOREGROUND-COLOR
-    </p>
-    <p>
-      e: Configure SM-BORDER-COLOR
-    </p>
-    <p>
-      f: Configure SM-FONT-STRING
-    </p>
-    <hr>
-    <h3>
       <a name="CONF-CORNER-GROUP"></a><a href="#CONFIGURATION-MENU">Conf-Corner-Group</a>
     </h3>
     <p>
@@ -2774,10 +2866,10 @@
       <a name="CONF-QUERY-STRING-GROUP"></a><a href="#CONFIGURATION-MENU">Conf-Query-String-Group</a>
     </h3>
     <p>
-      a: Configure QUERY-FONT-STRING
+      a: Configure QUERY-BACKGROUND
     </p>
     <p>
-      b: Configure QUERY-BACKGROUND
+      b: Configure QUERY-FONT-STRING
     </p>
     <p>
       c: Configure QUERY-BORDER
@@ -2790,16 +2882,16 @@
       <a name="CONF-CIRCULATE-MODE-GROUP"></a><a href="#CONFIGURATION-MENU">Conf-Circulate-Mode-Group</a>
     </h3>
     <p>
-      a: Configure CIRCULATE-WIDTH
+      a: Configure CIRCULATE-BORDER
     </p>
     <p>
-      b: Configure CIRCULATE-TEXT-LIMITE
+      b: Configure CIRCULATE-WIDTH
     </p>
     <p>
-      c: Configure CIRCULATE-BORDER
+      c: Configure CIRCULATE-HEIGHT
     </p>
     <p>
-      d: Configure CIRCULATE-HEIGHT
+      d: Configure CIRCULATE-TEXT-LIMITE
     </p>
     <p>
       e: Configure CIRCULATE-FONT-STRING
@@ -2812,6 +2904,28 @@
     </p>
     <hr>
     <h3>
+      <a name="CONF-SECOND-MODE-GROUP"></a><a href="#CONFIGURATION-MENU">Conf-Second-Mode-Group</a>
+    </h3>
+    <p>
+      a: Configure SM-FOREGROUND-COLOR
+    </p>
+    <p>
+      b: Configure SM-BACKGROUND-COLOR
+    </p>
+    <p>
+      c: Configure SM-HEIGHT
+    </p>
+    <p>
+      d: Configure SM-WIDTH
+    </p>
+    <p>
+      e: Configure SM-BORDER-COLOR
+    </p>
+    <p>
+      f: Configure SM-FONT-STRING
+    </p>
+    <hr>
+    <h3>
       <a name="CONF-PLACEMENT-GROUP"></a><a href="#CONFIGURATION-MENU">Conf-Placement-Group</a>
     </h3>
     <p>
@@ -2938,6 +3052,28 @@
     <p>
       x: Exit clfswm
     </p>
+    <p>
+      Pause: <a href="#REBOOT-HALT-MENU">< Suspend/Reboot/Halt menu ></a>
+    </p>
+    <hr>
+    <h3>
+      <a name="REBOOT-HALT-MENU"></a><a href="#CLFSWM-MENU">Reboot-Halt-Menu</a>
+    </h3>
+    <p>
+      -: Do nothing
+    </p>
+    <p>
+      s: Suspend the computer to RAM
+    </p>
+    <p>
+      d: Suspend the computer to DISK
+    </p>
+    <p>
+      r: Reboot the computer
+    </p>
+    <p>
+      h: Halt the computer
+    </p>
     <hr>
     <p>
       <small>

Modified: clfswm/doc/menu.txt
==============================================================================
--- clfswm/doc/menu.txt	(original)
+++ clfswm/doc/menu.txt	Sun Sep 26 15:22:30 2010
@@ -24,6 +24,41 @@
 p: Show current processes sorted by CPU usage
 m: Show current processes sorted by memory usage
 v: Show the current CLFSWM version
+F2: < Music Player Daemon (MPD) menu >
+x: < XMMS menu >
+i: < CDPLAYER menu >
+
+Mpd-Menu
+i: Show MPD informations
+p: Play the previous song in the current playlist
+n: Play the next song in the current playlist
+t: Toggles Play/Pause, plays if stopped
+y: Start playing
+k: Stop the currently playing playlists
+x: Seeks to +5%
+w: Seeks to -5%
+l: Show the current MPD playlist
+s: Start sonata
+g: Start gmpc
+
+Xmms-Menu
+r: Lanch XMMS
+s: Show the current xmms status
+l: Show the current xmms playlist
+n: Play the next XMMS track
+p: Play the previous XMMS track
+e: open xmms "Load file(s)" dialog window.
+
+Cdplayer-Menu
+y: Start playing CD
+k: Stop playing CD
+t: Toggle pause
+s: Show the current CD status
+l: Show the current CD playlist
+n: Play the next CD track
+p: Play the previous CD track
+e: Eject CD
+c: Close CD
 
 Standard-Menu
 a: < TEXTEDITOR >
@@ -220,6 +255,7 @@
 |: Neverputt - A 3D mini golf game
 |: OpenArena - A Quake3-based FPS Game
 |: SolarWolf
+|: Spring - An open source RTS with similar gameplay to TA
 |: SuperTux 2 - Play a classic 2D platform game
 |: Trackballs - Simple game similar to the classical game Marble Madness
 |: Battle for Wesnoth - A fantasy turn-based strategy game
@@ -396,6 +432,7 @@
 |: Task Manager - Manage running processes
 |: File Browser - Browse the file system with the file manager
 |: Disk Utility - Manage Drives and Media
+|: rxvt-unicode - An Unicode capable rxvt clone
 |: UNetbootin - Tool for creating Live USB drives
 |: Oracle VM VirtualBox
 |: Xfe - A lightweight file manager for X Window
@@ -453,6 +490,7 @@
 |: Network - Browse bookmarked and local network locations
 |: File Manager
 |: Scilab - A scientific software package for numerical computations
+|: Tilda
 |: About Xfce
 |: Application Finder - Find and launch applications installed on your system
 |: File Manager
@@ -475,6 +513,8 @@
 b: Root Terminal - Opens a terminal as the root user, using gksu to ask for the password
 c: Konsole
 d: LXTerminal - Use the command line
+e: rxvt-unicode - An Unicode capable rxvt clone
+f: Tilda
 
 Archlinux
 a: AUR - Archlinux AUR
@@ -902,10 +942,10 @@
 b: < Main mode group >
 c: < Frame colors group >
 d: < Identify key group >
-e: < Second mode group >
-f: < Corner group >
-g: < Query string group >
-h: < Circulate mode group >
+e: < Corner group >
+f: < Query string group >
+g: < Circulate mode group >
+h: < Second mode group >
 i: < Placement group >
 j: < Miscellaneous group >
 k: < Info mode group >
@@ -935,14 +975,6 @@
 c: Configure IDENTIFY-BORDER
 d: Configure IDENTIFY-BACKGROUND
 
-Conf-Second-Mode-Group
-a: Configure SM-BACKGROUND-COLOR
-b: Configure SM-HEIGHT
-c: Configure SM-WIDTH
-d: Configure SM-FOREGROUND-COLOR
-e: Configure SM-BORDER-COLOR
-f: Configure SM-FONT-STRING
-
 Conf-Corner-Group
 a: Configure CORNER-MAIN-MODE-LEFT-BUTTON
 b: Configure CORNER-SECOND-MODE-MIDDLE-BUTTON
@@ -956,20 +988,28 @@
 j: Configure CLFSWM-TERMINAL-NAME
 
 Conf-Query-String-Group
-a: Configure QUERY-FONT-STRING
-b: Configure QUERY-BACKGROUND
+a: Configure QUERY-BACKGROUND
+b: Configure QUERY-FONT-STRING
 c: Configure QUERY-BORDER
 d: Configure QUERY-FOREGROUND
 
 Conf-Circulate-Mode-Group
-a: Configure CIRCULATE-WIDTH
-b: Configure CIRCULATE-TEXT-LIMITE
-c: Configure CIRCULATE-BORDER
-d: Configure CIRCULATE-HEIGHT
+a: Configure CIRCULATE-BORDER
+b: Configure CIRCULATE-WIDTH
+c: Configure CIRCULATE-HEIGHT
+d: Configure CIRCULATE-TEXT-LIMITE
 e: Configure CIRCULATE-FONT-STRING
 f: Configure CIRCULATE-BACKGROUND
 g: Configure CIRCULATE-FOREGROUND
 
+Conf-Second-Mode-Group
+a: Configure SM-FOREGROUND-COLOR
+b: Configure SM-BACKGROUND-COLOR
+c: Configure SM-HEIGHT
+d: Configure SM-WIDTH
+e: Configure SM-BORDER-COLOR
+f: Configure SM-FONT-STRING
+
 Conf-Placement-Group
 a: Configure CIRCULATE-MODE-PLACEMENT
 b: Configure QUERY-MODE-PLACEMENT
@@ -1015,6 +1055,14 @@
 r: Reset clfswm
 l: Reload clfswm
 x: Exit clfswm
+Pause: < Suspend/Reboot/Halt menu >
+
+Reboot-Halt-Menu
+-: Do nothing
+s: Suspend the computer to RAM
+d: Suspend the computer to DISK
+r: Reboot the computer
+h: Halt the computer
 
 
 This documentation was produced with the CLFSWM auto-doc functions. To reproduce it, use the produce-menu-doc-in-file or

Modified: clfswm/src/clfswm-autodoc.lisp
==============================================================================
--- clfswm/src/clfswm-autodoc.lisp	(original)
+++ clfswm/src/clfswm-autodoc.lisp	Sun Sep 26 15:22:30 2010
@@ -85,7 +85,7 @@
   (with-open-file (stream filename :direction :output
 			  :if-exists :supersede :if-does-not-exist :create)
     (produce-doc-html (list *main-keys* *main-mouse* *second-keys* *second-mouse*
-			    *info-keys* *info-mouse*)
+			    *info-keys* *info-mouse* *circulate-keys* *expose-keys* *expose-mouse*)
 		      stream))
   (format t " done~%"))
 
@@ -126,7 +126,7 @@
   (with-open-file (stream filename :direction :output
 			  :if-exists :supersede :if-does-not-exist :create)
     (produce-doc (list *main-keys* *main-mouse* *second-keys* *second-mouse*
-		       *info-keys* *info-mouse*)
+		       *info-keys* *info-mouse* *circulate-keys* *expose-keys* *expose-mouse*)
 		 stream))
   (format t " done~%"))
 

Modified: clfswm/src/clfswm-circulate-mode.lisp
==============================================================================
--- clfswm/src/clfswm-circulate-mode.lisp	(original)
+++ clfswm/src/clfswm-circulate-mode.lisp	Sun Sep 26 15:22:30 2010
@@ -152,6 +152,8 @@
 
 
 (defun circulate-leave-function ()
+  (when *circulate-gc*
+    (xlib:free-gcontext *circulate-gc*))
   (when *circulate-window*
     (xlib:destroy-window *circulate-window*))
   (when *circulate-font*

Modified: clfswm/src/clfswm-expose-mode.lisp
==============================================================================
--- clfswm/src/clfswm-expose-mode.lisp	(original)
+++ clfswm/src/clfswm-expose-mode.lisp	Sun Sep 26 15:22:30 2010
@@ -25,6 +25,9 @@
 
 (in-package :clfswm)
 
+(defparameter *expose-font* nil)
+(defparameter *expose-windows-list* nil)
+
 (defun leave-expose-mode ()
   "Leave the expose mode"
   (throw 'exit-expose-loop nil))
@@ -50,6 +53,8 @@
 (define-handler expose-mode :button-press (code state window root-x root-y)
   (funcall-button-from-code *expose-mouse* code state window root-x root-y *fun-press*))
 
+(define-handler expose-mode :exposure ()
+  (expose-draw-letter))
 
 
 (add-hook *binding-hook* 'set-default-expose-keys)
@@ -73,33 +78,95 @@
   (define-expose-mouse (2) 'mouse-leave-expose-mode)
   (define-expose-mouse (3) 'mouse-leave-expose-mode))
 
+(defmacro define-expose-letter-keys ()
+  (labels ((produce-name (n)
+	     (symb "%" "expose-fun-key-" n "%")))
+    `(progn
+       ,@(loop for n from 0 to 25
+	    collect `(progn
+		       (defun ,(produce-name n) ()
+			 ,(format nil "Select child '~A' (~A)" (number->char n) n)
+			 (let ((child (nth ,n *expose-windows-list*)))
+			   (when child
+			     (xlib:warp-pointer *root* (xlib:drawable-x (first child)) (xlib:drawable-y (first child)))
+			     (when *expose-valid-on-key*
+			       (valid-expose-mode)))))
+		       (define-expose-key (,(number->char n)) ',(produce-name n)))))))
+
+(define-expose-letter-keys)
+
+
+(defun expose-draw-letter ()
+  (loop for lwin in *expose-windows-list*
+       for n from 0 do
+       (xlib:draw-glyphs (first lwin) (second lwin)
+			 (xlib:max-char-width *expose-font*)
+			 (+ (xlib:font-ascent *expose-font*) (xlib:font-descent *expose-font*))
+			 (format nil "~A" (number->char n)))))
+
+(defun expose-create-window (child n)
+  (declare (ignore n))
+  (with-placement (*expose-mode-placement* x y (child-width child) (child-height child))
+    (let* ((window (xlib:create-window :parent *root*
+				       :x (+ (child-x child) x)
+				       :y (+ (child-y child) y)
+				       :width (* (xlib:max-char-width *expose-font*) 3)
+				       :height (* (xlib:font-ascent *expose-font*) 2)
+				       :background (get-color *expose-background*)
+				       :border-width 1
+				       :border (get-color *expose-border*)
+				       :colormap (xlib:screen-default-colormap *screen*)
+				       :event-mask '(:exposure :key-press)))
+	   (gc (xlib:create-gcontext :drawable window
+				     :foreground (get-color *expose-foreground*)
+				     :background (get-color *expose-background*)
+				     :font *expose-font*
+				     :line-style :solid)))
+      (map-window window)
+      (push (list window gc) *expose-windows-list*))))
+
+
 
+(defun expose-mode-display-accel-windows ()
+  (let ((n -1))
+    (with-all-children-reversed (*current-root* child)
+      (when (< n 25)
+	(expose-create-window child (incf n)))))
+  (setf *expose-windows-list* (nreverse *expose-windows-list*))
+  (expose-draw-letter))
 
 
 (defun expose-windows-generic (first-restore-frame body)
+  (setf *expose-font* (xlib:open-font *display* *expose-font-string*)
+	*expose-windows-list* nil)
   (xlib:warp-pointer *root* (truncate (/ (xlib:screen-width *screen*) 2))
 		     (truncate (/ (xlib:screen-height *screen*) 2)))
   (with-all-frames (first-restore-frame frame)
     (setf (frame-data-slot frame :old-layout) (frame-layout frame)
 	  (frame-layout frame) #'tile-space-layout))
   (show-all-children *current-root*)
-  (dbg 'ici)
+  (expose-mode-display-accel-windows)
   (let ((grab-keyboard-p (xgrab-keyboard-p))
 	(grab-pointer-p (xgrab-pointer-p)))
     (xgrab-pointer *root* 92 93)
     (unless grab-keyboard-p
       (ungrab-main-keys)
       (xgrab-keyboard *root*))
-    (dbg 'ici-2)
     (when (generic-mode 'expose-mode 'exit-expose-loop
 			:original-mode '(main-mode))
-      (dbg 'ici-3)
       (multiple-value-bind (x y) (xlib:query-pointer *root*)
 	(let* ((child (find-child-under-mouse x y))
 	       (parent (find-parent-frame child *root-frame*)))
 	  (when (and child parent)
 	    (pfuncall body parent)
 	    (focus-all-children child parent)))))
+    (when *expose-font*
+      (xlib:close-font *expose-font*))
+    (dolist (lwin *expose-windows-list*)
+      (awhen (first lwin)
+	(xlib:destroy-window it))
+      (awhen (second lwin)
+	(xlib:free-gcontext it)))
     (with-all-frames (first-restore-frame frame)
       (setf (frame-layout frame) (frame-data-slot frame :old-layout)
 	    (frame-data-slot frame :old-layout) nil))

Modified: clfswm/src/clfswm-internal.lisp
==============================================================================
--- clfswm/src/clfswm-internal.lisp	(original)
+++ clfswm/src/clfswm-internal.lisp	Sun Sep 26 15:22:30 2010
@@ -197,6 +197,32 @@
   "???")
 
 
+(defgeneric child-x (child))
+(defmethod child-x ((child xlib:window))
+  (xlib:drawable-x child))
+(defmethod child-x ((child frame))
+  (frame-rx child))
+
+(defgeneric child-y (child))
+(defmethod child-y ((child xlib:window))
+  (xlib:drawable-y child))
+(defmethod child-y ((child frame))
+  (frame-ry child))
+
+(defgeneric child-width (child))
+(defmethod child-width ((child xlib:window))
+  (xlib:drawable-width child))
+(defmethod child-width ((child frame))
+  (frame-rw child))
+
+(defgeneric child-height (child))
+(defmethod child-height ((child xlib:window))
+  (xlib:drawable-height child))
+(defmethod child-height ((child frame))
+  (frame-rh child))
+
+
+
 
 
 (defgeneric rename-child (child name))
@@ -230,6 +256,18 @@
        (,rec ,root))))
 
 
+;; (with-all-children (*root-frame* child) (typecase child (xlib:window (print child)) (frame (print (frame-number child)))))
+(defmacro with-all-children-reversed ((root child) &body body)
+  (let ((rec (gensym))
+	(sub-child (gensym)))
+    `(labels ((,rec (,child)
+		, at body
+		(when (frame-p ,child)
+		  (dolist (,sub-child (frame-child ,child))
+		    (,rec ,sub-child)))))
+       (,rec ,root))))
+
+
 ;; (with-all-frames (*root-frame* frame) (print (frame-number frame)))
 (defmacro with-all-frames ((root frame) &body body)
   (let ((rec (gensym))
@@ -450,22 +488,23 @@
       (let ((pos dy))
 	(when (child-equal-p frame *current-root*)
 	  (xlib:draw-glyphs *pixmap-buffer* gc 5 (incf pos dy)
-			    (format nil "~A hidden windows" (length (get-hidden-windows))))
+			    (format nil "  ~A hidden windows" (length (get-hidden-windows))))
 	  (when *child-selection*
 	    (xlib:draw-glyphs *pixmap-buffer* gc 5 (incf pos dy)
 			      (with-output-to-string (str)
-				(format str "Selection: ")
+				(format str "  Selection: ")
 				(dolist (child *child-selection*)
 				  (typecase child
-				    (xlib:window (format str "~A " (xlib:wm-name child)))
-				    (frame (format str "frame:~A[~A] " (frame-number child)
+				    (xlib:window (format str "  ~A " (xlib:wm-name child)))
+				    (frame (format str "  frame:~A[~A] " (frame-number child)
 						   (aif (frame-name child) it "")))))))))
 	(dolist (ch child)
-	  (xlib:draw-glyphs *pixmap-buffer* gc 5 (incf pos dy) (ensure-printable (child-fullname ch))))
+	  (xlib:draw-glyphs *pixmap-buffer* gc 5 (incf pos dy)
+			    (format nil "  ~A" (ensure-printable (child-fullname ch)))))
 	(setf (xlib:gcontext-foreground gc) (get-color *frame-foreground-hidden*))
 	(dolist (ch hidden-children)
 	  (xlib:draw-glyphs *pixmap-buffer* gc 5 (incf pos dy)
-			    (format nil "~A - hidden" (ensure-printable (child-fullname ch))))))
+			    (format nil "  ~A - hidden" (ensure-printable (child-fullname ch))))))
       (copy-pixmap-buffer window gc))))
 
 

Modified: clfswm/src/clfswm-layout.lisp
==============================================================================
--- clfswm/src/clfswm-layout.lisp	(original)
+++ clfswm/src/clfswm-layout.lisp	Sun Sep 26 15:22:30 2010
@@ -303,7 +303,6 @@
 	   (dy (/ rh (ceiling (/ len n))))
 	   (size (or (frame-data-slot parent :tile-space-size) 0.1)))
       (when (> size 0.5) (setf size 0.45))
-      (dbg pos len n dx dy size)  ;; PHIL here
       (values (round (+ rx (truncate (* (mod pos n) dx)) (* dx size) 1))
 	      (round (+ ry (truncate (* (truncate (/ pos n)) dy)) (* dy size) 1))
 	      (round (- dx (* dx size 2) 2))

Modified: clfswm/src/config.lisp
==============================================================================
--- clfswm/src/config.lisp	(original)
+++ clfswm/src/config.lisp	Sun Sep 26 15:22:30 2010
@@ -263,6 +263,19 @@
   "Config(Circulate mode group): Maximum text limite in the circulate window")
 
 
+;;; CONFIG - Expose string colors
+(defparameter *expose-font-string* *default-font-string*
+  "Config(Expose mode group): Expose string window font string")
+(defparameter *expose-background* "black"
+  "Config(Expose mode group): Expose string window background color")
+(defparameter *expose-foreground* "green"
+  "Config(Expose mode group): Expose string window foreground color")
+(defparameter *expose-border* "red"
+  "Config(Expose mode group): Expose string window border color")
+(defparameter *expose-valid-on-key* t
+  "Config(Expose mode group): Valid expose mode when an accel key is pressed")
+
+
 
 ;;; CONFIG - Show key binding colors
 (defparameter *info-color-title* "Magenta"

Modified: clfswm/src/package.lisp
==============================================================================
--- clfswm/src/package.lisp	(original)
+++ clfswm/src/package.lisp	Sun Sep 26 15:22:30 2010
@@ -206,6 +206,8 @@
   "Config(Placement group): Query mode window placement")
 (defparameter *circulate-mode-placement* 'bottom-middle-placement
   "Config(Placement group): Circulate mode window placement")
+(defparameter *expose-mode-placement* 'top-left-placement
+  "Config(Placement group): Expose mode window placement (Selection keys position)")
 
 
 




More information about the clfswm-cvs mailing list