[Sawfish] Re: Add new window as tab patch

[ Thread Index | Date Index | More lists.tuxfamily.org/sawfish Archives ]


Hi,

On Tue, 3 Apr 2012 01:24:43 +0200
wrote fuchur <flohtransporter@xxxxxxxxx>:

>Hi,
>
>On Fri, 30 Mar 2012 20:16:58 +0200
>wrote fuchur <flohtransporter@xxxxxxxxx>:
>
>>Hi,
>>
>>On Wed, 28 Mar 2012 23:54:32 +0200
>>wrote fuchur <flohtransporter@xxxxxxxxx>:
>>
>>>Hi,
>>>
>>>On Tue, 27 Mar 2012 18:51:16 +0200
>>>wrote fuchur <flohtransporter@xxxxxxxxx>:
>>>
>>>>>Hi,
>>>>>
>>>>>On Mon, 26 Mar 2012 04:01:26 +0200
>>>>>wrote fuchur <flohtransporter@xxxxxxxxx>:
>>>>>  
>>>>>>Hi,
>>>>>>
>>>>>>Here is a patch to add a new window as tab if have one (the first
>>>>>>created if more as one) of the windows the same 'tab-group property".
>>>>>>'tab-group property can set by window-rules and also save in
>>>>>>window-history. You can choose between 12 tab-groups. If you know how
>>>>>>to grow Tab groups or "automatically" update (maybe by window-names) in
>>>>>>window-rules please send a patch. 
>>>>>>  
>>>>>
>>>>>Here is the same patch as above but with some bugfix.
>>>>>Need more tester/ing.
>>>>>  
>>>
>>>Some Windows not call the unmap-notify-hook e.g. gimp and tabgroup
>>>will not work. This patch for local-master-branch fix that. 
>>>
>>
>>Add support if the new window/tab and the tab-group not at the same
>>workspace. Apply the patch after the patch above.
>>
>
>Two bugfix patches for tabgroup.jl. Apply after 03-tabgroup-fix.patch
>and 04-tabgroup-fix.patch patches from above to the local-master branch.
>

This patch for tabgroup allows only add "normal" windows as tabs
(ignores docks dialogs ...).  

-- 
Regards,
Fuchur

GPG Fingerprint: CA3B 8204 5B3E 6D48 6D53  C116 E5BC 70D5 B8D7 B2B0
--- sawfish/lisp/sawfish/wm/tabs/tabgroup.jl.orig
+++ sawfish/lisp/sawfish/wm/tabs/tabgroup.jl
@@ -248,8 +248,11 @@
   (define (tab-group-window w win)
     "Add window W to tabgroup containing WIN."
     ;; don't add a window as tab, if it already
-    ;; exists on another workspace
-    (when (not (cdr (window-get win 'workspaces)))
+    ;; 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))
       (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/