| Re: [Sawfish] Patch for tab.jl |
[ Thread Index | Date Index | More lists.tuxfamily.org/sawfish Archives ]
Hi, On Fri, 24 Aug 2012 03:14:43 +0200 wrote fuchur <flohtransporter@xxxxxxxxx>: >Hi, > >On Fri, 24 Aug 2012 00:37:49 +0200 >wrote Christopher Roy Bratusek <nano@xxxxxxxxxxxxx>: > >>On Thursday 23 August 2012 21:10:42 fuchur wrote: >>> Hi, >>> >>> This patch removes "/usr/share/sawfish/lisp/sawfish/wm/util/marks.jl" >>> It seems marks.jl is only for tab.jl. But with a pair small changes >>> in tab.jl we don't need marks.jl >>> >>> I also add a check if the select window for a tab exists (if not >>> exists (maybe you have close the window), then tabs will >>> not work until you restart sawfish, the patch fix that) >>> >>> And also now the cursor changes if you select a window as tab. >> >>Thanks, commited. > >Here is already an update, sorry. We always set the default cursor to >left_ptr. But i am not sure that always the default cursor is left_ptr. >To make sure to have always the default cursor set by >gtk-mouse-theme-selector or other programs we should use also this >patch. > > Two patches: With add-group-as-tabs.patch we have a function and keybinding to add a complete tabgroup to a window or other tabgroup as tabs. The keybinding works by the first or second command if you select a group/window, it makes no difference. tabgroup-bugfix-01.patch have many bugfix for tabsupport (tabgroup.jl) -- Regards, Fuchur GPG Fingerprint: CA3B 8204 5B3E 6D48 6D53 C116 E5BC 70D5 B8D7 B2B0
diff -urNad sawfish.orig/lisp/sawfish/wm/keymaps.jl sawfish/lisp/sawfish/wm/keymaps.jl
--- sawfish.orig/lisp/sawfish/wm/keymaps.jl
+++ sawfish/lisp/sawfish/wm/keymaps.jl
@@ -121,7 +121,8 @@
"Button2-Move" 'resize-window-interactively
"Button1-Off2" 'toggle-window-shaded
"Button1-Move" 'move-window-interactively
- "Button2-Off" 'tab-add-to-group)
+ "Button2-Off" 'tab-add-to-group
+ "C-Button2-Off" 'tabgroup-add-to-group)
"Keymap of window title bar. Mouse-bindings only."
:group bindings
:type keymap)
@@ -130,6 +131,7 @@
"Button1-Off2" 'toggle-window-shaded
"Button1-Move" 'move-window-interactively
"Button2-Off" 'tab-add-to-group
+ "C-Button2-Off" 'tabgroup-add-to-group
"Button3-Click" 'tab-release-window
"Button3-Move" 'move-window-interactively)
"Keymap of window tabbar. Mouse-bindings only."
diff -urNad sawfish.orig/lisp/sawfish/wm/tabs/tab.jl sawfish/lisp/sawfish/wm/tabs/tab.jl
--- sawfish.orig/lisp/sawfish/wm/tabs/tab.jl
+++ sawfish/lisp/sawfish/wm/tabs/tab.jl
@@ -177,14 +177,27 @@
the second."
(if marked-window
(progn
- (tab-group-window marked-window win)
+ (mapcar (lambda (w) (tab-group-window w win)) marked-window)
(default-cursor select-cursor)
(setq marked-window nil))
(default-cursor (get-cursor 'clock))
- (setq marked-window win)))
+ (setq marked-window (cons win))))
(define-command 'tab-add-to-group tab-add-to-group #:spec "%W")
+ (define (tabgroup-add-to-group win)
+ "Add a tabgroup to a tabgroup. Apply this command on a window
+from the tabgroup, then on another. The tabgroup will be added to
+the tabgroup containig the second."
+ (if marked-window
+ (progn
+ (setq marked-window (tab-group-window-index (car marked-window)))
+ (tab-add-to-group win))
+ (default-cursor (get-cursor 'clock))
+ (setq marked-window (tab-group-window-index win))))
+
+ (define-command 'tabgroup-add-to-group tabgroup-add-to-group #:spec "%W")
+
(define (check-win)
(if (and marked-window
(not (window-id marked-window)))
--- sawfish.orgi/lisp/sawfish/wm/tabs/tabgroup.jl 2012-08-28 00:31:22.000000000 +0200
+++ sawfish/lisp/sawfish/wm/tabs/tabgroup.jl 2012-08-28 00:20:19.000000000 +0200
@@ -51,7 +51,6 @@
(define-structure-alias tabgroup sawfish.wm.tabs.tabgroup)
- (define current-win nil)
(define all-wins nil)
(define oldgroup nil)
(define tab-groups nil)
@@ -279,7 +278,8 @@
;; tabgroup to tabgroup
(when (window-tabbed-p w)
(setq release-window nil)
- (tab-delete-window-from-tab-groups w))
+ (tab-delete-window-from-tab-groups w)
+ (setq index2 (tab-window-group-index w)))
(if (window-get win 'iconified) (uniconify-window win))
(let ((group-frame-to-workspaces (car (window-workspaces win))))
(if (window-get win 'shaded) (unshade-window win))
@@ -361,51 +361,39 @@
(lambda (w) (eq w win))
(tab-group-window-list (tab-find-window win)))) )
- (define (tab-group-raise win)
- (if (window-tabbed-p win)
- (tab-refresh-group win 'raise)))
-
- (define (tab-group-sticky win)
- (if (window-get win 'sticky)
- (tab-refresh-group win 'sticky)
- (tab-refresh-group win 'unsticky)))
-
(define (before-move-resize win)
"Releas win from the tabgroup and iconify the rest from the group."
(when (not (window-get win 'fixed-position))
- (when (eq all-wins nil)
- (let* ((index (tab-window-group-index win))
- (wins (tab-group-window-list (nth index tab-groups)))
- (tabs (remove win (tab-group-window-list (nth index tab-groups))))
- (default-window-animator 'none))
- (tab-delete-window-from-group win index)
- (reframe-window win)
- (setq tab-refresh-lock nil)
- (mapcar (lambda (w)
- (when (window-get w 'never-iconify)
- (window-put w 'never-iconify nil)
- (window-put w 'never-iconify-opaque t))
- (iconify-window w)) tabs)
- (setq all-wins wins)
- (setq current-win win))
- (setq tab-refresh-lock t))))
+ (let* ((default-window-animator 'none)
+ (index (tab-window-group-index win))
+ (wins (tab-group-window-list (nth index tab-groups)))
+ (tabs (remove win (tab-group-window-list (nth index tab-groups)))))
+ (tab-delete-window-from-group win index)
+ (reframe-window win)
+ (setq tab-refresh-lock nil)
+ (mapcar (lambda (w)
+ (when (window-get w 'never-iconify)
+ (window-put w 'never-iconify nil)
+ (window-put w 'never-iconify-opaque t))
+ (iconify-window w)) tabs)
+ (setq all-wins wins))
+ (setq tab-refresh-lock t)))
(define (after-move-resize win)
"Add all tabs to the tabgroup from win. (Releas and iconify by before-move-resize)"
(setq tab-refresh-lock nil)
- (let* ((wins all-wins)
- (default-window-animator 'none)
+ (let* ((default-window-animator 'none)
+ (wins all-wins)
(pos (window-position win))
(dim (window-dimensions win))
index index-old)
- (when (and (cdr wins)
- (eq win current-win))
+ (when (cdr wins)
(setq index (tab-window-group-index (car wins)))
(mapcar (lambda (w)
- (when (not (eq index (tab-window-group-index w)))
- (setq index-old (tab-window-group-index w))
- (tab-put-window-in-group w index)
- (tab-delete-window-from-group w index-old))
+ (setq index-old (tab-window-group-index w))
+ (tab-put-window-in-group w index)
+ (tab-delete-window-from-group w index-old)
+ (setq index (tab-window-group-index w))
(move-window-to w (car pos) (cdr pos))
(resize-window-to w (car dim) (cdr dim))
(uniconify-window w)
@@ -414,8 +402,7 @@
(window-put w 'never-iconify t))
(window-put w 'tabbed t)) wins)
(raise-window win)
- (setq all-wins nil)
- (setq current-win nil))
+ (setq all-wins nil))
(setq tab-refresh-lock t)
(when (window-tabbed-p win)
(tab-refresh-group win 'move)
@@ -445,6 +432,11 @@
(when (window-get win 'tab-group)
(setq in-tab-group-name (remove (assoc last-unmap-id in-tab-group-name) in-tab-group-name))))
+ (define (tab-group-sticky win)
+ (if (window-get win 'sticky)
+ (tab-refresh-group win 'sticky)
+ (tab-refresh-group win 'unsticky)))
+
(unless batch-mode
(add-hook 'after-add-window-hook in-tab-group)
(add-hook 'unmap-notify-hook unmap-id)
@@ -469,13 +461,13 @@
(tab-refresh-group win 'depth)
(tab-refresh-group win 'frame))))))
- (add-hook 'focus-in-hook (lambda (win) (tab-group-raise win)))
(when (eq move-outline-mode 'opaque)
(add-hook 'before-move-hook (lambda (win) (if (window-tabbed-p win) (before-move-resize win)))))
(add-hook 'after-move-hook (lambda (win) (after-move-resize win)))
(when (eq resize-outline-mode 'opaque)
(add-hook 'before-resize-hook (lambda (win) (if (window-tabbed-p win) (before-move-resize win)))))
(add-hook 'after-resize-hook (lambda (win) (after-move-resize win)))
+ (add-hook 'focus-in-hook (lambda (win) (if (window-tabbed-p win) (tab-refresh-group win 'raise))))
(add-hook 'shade-window-hook (lambda (win) (if (window-tabbed-p win) (tab-refresh-group win 'shade))))
(add-hook 'unshade-window-hook (lambda (win) (if (window-tabbed-p win) (tab-refresh-group win 'unshade))))
(add-hook 'iconify-window-hook (lambda (win) (if (window-tabbed-p win) (tab-refresh-group win 'iconify))))
@@ -485,5 +477,4 @@
(add-hook 'add-to-workspace-hook (lambda (win) (if (window-tabbed-p win) (tab-refresh-group win 'frame))))
(add-hook 'destroy-notify-hook tab-delete-window-from-tab-groups))
- (gaol-add tab-refresh-group tab-group-window-index)
- )
+ (gaol-add tab-refresh-group tab-group-window-index))
Attachment:
signature.asc
Description: PGP signature
| Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |