[sawfish] cycle-among-groups bugfix.
- From: Christopher Bratusek <chrisb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [sawfish] cycle-among-groups bugfix.
- Date: Sat, 13 Nov 2010 18:10:28 +0000 (UTC)
commit 205c60770bc1a86f02ce9df654a2c9e7a837aa58
Author: Teika kazura <teika lavabit com>
Date: Sat Nov 13 14:45:40 2010 +0900
cycle-among-groups bugfix.
Previously, when window-cycle is limited to the same workspace or viewport,
then not all window groups were not cycled.
lisp/sawfish/wm/commands/x-cycle.jl | 21 ++++++++++++++++++---
man/news.texi | 6 ++++++
2 files changed, 24 insertions(+), 3 deletions(-)
---
diff --git a/lisp/sawfish/wm/commands/x-cycle.jl b/lisp/sawfish/wm/commands/x-cycle.jl
index a50d4d4..5400fd6 100644
--- a/lisp/sawfish/wm/commands/x-cycle.jl
+++ b/lisp/sawfish/wm/commands/x-cycle.jl
@@ -352,9 +352,24 @@ Any extra arguments are passed to each call to define-command."
'cycle-among-groups 'cycle-among-groups-backwards
(lambda ()
"Only cycle the top members of each group."
- (delete-if-not window-in-cycle-p
- (mapcar (lambda (gid) (car (windows-by-group gid t)))
- (window-group-ids)))))
+ (let loop
+ ((wl (window-order
+ (if cycle-all-workspaces
+ nil
+ current-workspace)
+ cycle-include-iconified cycle-all-viewports))
+ grps
+ retval)
+ (when (and (window-in-cycle-p (car wl))
+ (not (memq (window-group-id (car wl)) grps)))
+ (when (window-group-id (car wl))
+ ;; Some windows don't have group.
+ (setq grps (cons (window-group-id (car wl)) grps)))
+ (setq retval (cons (car wl) retval)))
+ (if (cdr wl)
+ (loop (cdr wl) grps retval)
+ (nreverse retval)
+ ))))
(define-cycle-command-pair
'cycle-prefix 'cycle-prefix-backwards
diff --git a/man/news.texi b/man/news.texi
index c4dd1a8..77091bd 100644
--- a/man/news.texi
+++ b/man/news.texi
@@ -62,8 +62,14 @@ invoked, if run without any desktop environment. Fixed it.
It is ensured that SawfishPager builds correctly, by improving @file{sawfish.pc} file.
@item KDE *.desktop files location [Teika Kazura]
+
Previously, user's change of the variable
@code{kde-desktop-directories} was ignored, but this is fixed.
+
+ item Window cycle among groups [Teika Kazura]
+
+Some windows were skipped in window cycles among groups. This is fixed.
+
@end itemize
@item Misc Changes
@itemize @minus
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]