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