| Re: [Sawfish] Patch for tab.jl |
[ Thread Index | Date Index | More lists.tuxfamily.org/sawfish Archives ]
Hi, On Tue, 28 Aug 2012 02:01:07 +0200 wrote fuchur <flohtransporter@xxxxxxxxx>: >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) > > normal-window-marked.patch: allows only windows '_NET_WM_WINDOW_TYPE_NORMAL to marked as tab. -- Regards, Fuchur GPG Fingerprint: CA3B 8204 5B3E 6D48 6D53 C116 E5BC 70D5 B8D7 B2B0
diff -urNad sawfish.orgi/lisp/sawfish/wm/tabs/tab.jl sawfish/lisp/sawfish/wm/tabs/tab.jl
--- sawfish.orgi/lisp/sawfish/wm/tabs/tab.jl
+++ sawfish/lisp/sawfish/wm/tabs/tab.jl
@@ -175,13 +175,14 @@
"Add a window to a tabgroup. Apply this command on a window, then
on another. The first window will be added to the tabgroup containig
the second."
- (if marked-window
- (progn
- (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 (cons win))))
+ (when (net-wm-window-type-normal-p win)
+ (if marked-window
+ (progn
+ (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 (cons win)))))
(define-command 'tab-add-to-group tab-add-to-group #:spec "%W")
@@ -189,18 +190,19 @@
"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))))
+ (when (net-wm-window-type-normal-p win)
+ (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)))
+ (if (and (car marked-window)
+ (not (window-id (car marked-window))))
(progn
(default-cursor select-cursor)
(setq marked-window nil))))
diff -urNad sawfish.orgi/lisp/sawfish/wm/tabs/tabgroup.jl sawfish/lisp/sawfish/wm/tabs/tabgroup.jl
--- sawfish.orgi/lisp/sawfish/wm/tabs/tabgroup.jl
+++ sawfish/lisp/sawfish/wm/tabs/tabgroup.jl
@@ -22,6 +22,7 @@
(define-structure sawfish.wm.tabs.tabgroup
(export window-tabbed-p
+ net-wm-window-type-normal-p
tab-refresh-group
tab-release-window
tab-raise-left-window
@@ -62,6 +63,9 @@
(define (window-tabbed-p w)
(window-get w 'tabbed))
+ (define (net-wm-window-type-normal-p w)
+ (equal (aref (nth 2 (get-x-property w '_NET_WM_WINDOW_TYPE)) 0) '_NET_WM_WINDOW_TYPE_NORMAL))
+
(define-record-type :tab-group
(tab-build-group p d wl)
tab-group?
@@ -251,8 +255,8 @@
;; exists on another workspace or window type
;; is not a "normal" window (e.g. dock panel ...)
(when (and (not (cdr (window-get win 'workspaces)))
- (equal (aref (nth 2 (get-x-property w '_NET_WM_WINDOW_TYPE)) 0) '_NET_WM_WINDOW_TYPE_NORMAL)
- (equal (aref (nth 2 (get-x-property win '_NET_WM_WINDOW_TYPE)) 0) '_NET_WM_WINDOW_TYPE_NORMAL))
+ (net-wm-window-type-normal-p w)
+ (net-wm-window-type-normal-p win))
(let* ((index (tab-window-group-index win))
(index2 (tab-window-group-index w))
(pos (window-position win))
Attachment:
signature.asc
Description: PGP signature
| Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |