Expose mode: strange failures.

Michaël Cadilhac michael at cadilhac.name
Sat Dec 7 12:39:28 UTC 2013


On Sat, Dec 7, 2013 at 11:58 AM, Philippe Brochard
<pbrochard at common-lisp.net> wrote:

> Michaël Cadilhac writes:
>> Merci!  I still have the random crashes with Expose mode though.

> Ok, I spot it. I'm trying to solve it.

Good news!

> For your request for a backtrace. You have to use the main-unprotected
> function. Start a lisp, load clfswm with asdf and then start clfswm with
> main-unprotected instead of main.

Will do, thanks!

>> And two other unrelated things, if I may hijack my own thread:
>> - I modified  reorder-brother-simple so that it behaves like
>> reorder-brother when called with (child-root-p (current-child)), that
>> is, (leave-frame) then (enter-frame).  I believe this is more
>> consistent and should be done in master.
>>
> Ok. Can you send the patch you want to be applied?

Sure thing; attached.  While I'm at it, I think I'm missing the point
of brother circulation.  In Windows, Alt+Tab circulates the windows in
the CLFSWM sense, right?  But then, if I stay on Alt and do successive
tabs, this will go through all the windows; it seems that it's not the
case in CLFSWM, is it?  Is Alt+Tab just a way to switch between the
two top windows on the stack?

>> - If I wanted to add a system tray to the toolbar, would
>> https://github.com/lucashpandolfo/stumpwm-tray be a good start?
>>
> Yes this is a way. I haven't test it in stumpwm and it seems there is
> some code related to stumpwm (for example (in-package :stumpwm)).
>
> You can also look at some independent systray project.

I wanted to have the list of child of the current root displayed in
the toolbar (this I think I can easily do using toolbar.lisp) AND have
a systray (for dropbox and tomboy).  Would you suggest a mixed
approach relying on both toolbar.lisp and an external systray program?

Thanks again Philippe.

M.
-------------- next part --------------
diff --git a/src/clfswm-circulate-mode.lisp b/src/clfswm-circulate-mode.lisp
index 8f1a1bd..957684a 100644
--- a/src/clfswm-circulate-mode.lisp
+++ b/src/clfswm-circulate-mode.lisp
@@ -312,7 +312,10 @@
 
 
 (defun reorder-brother-simple (reorder-fun)
-  (unless (child-root-p (current-child))
+  (let ((is-root-p (child-root-p (current-child))))
+    (when is-root-p
+      (leave-frame)
+      (sleep *spatial-move-delay-before*))
     (no-focus)
     (select-current-frame nil)
     (let ((parent-frame (find-parent-frame (current-child))))
@@ -320,7 +323,10 @@
         (with-slots (child) parent-frame
           (setf child (funcall reorder-fun child)
                 (current-child) (frame-selected-child parent-frame))))
-      (show-all-children t))))
+      (show-all-children t)
+      (when is-root-p
+        (sleep *spatial-move-delay-after*)
+        (enter-frame)))))
 
 
 (defun select-next-brother-simple ()


More information about the clfswm-devel mailing list