Update StyleTab patch.

fuchur <[email protected]>
Newsgroups gmane.comp.window-managers.sawfish
Organization W.W
Message-ID <[email protected]>
Hi,

I have add support for sticky viewport in StyleTab.
Now if you select a window to add as tab the tabbar is "hightlight"
with a custom color. I have add some links in StylTabs styles "Default, 
Glass, Reduce, Smoothly, WixDa" folders, without the new links the two
pachtes will crash sawfish. Download complete styles here:
http://mitglied.lycos.de/fuchur2004/StyleTab.tar.bz2

Now my todo/buglist for sawfish is empty :).

-- 
Regards,
Fuchur

GPG Fingerprint: CA3B 8204 5B3E 6D48 6D53  C116 E5BC 70D5 B8D7 B2B0
01-marked.patch (text/x-patch, 1.8 KB)
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
@@ -170,6 +170,9 @@
   (define-frame-class 'tabbar-vertical-bottom-edge
     `((bottom-edge . ,tab-bottom-edge)) t)
 
+  (define (emit-marked-hook w)
+    (call-window-hook 'window-state-change-hook w (list '(marked))))
+
   ;; This function is for interactive use. Use tab-group-window for lisp.
   (define (tab-add-to-group win)
     "Add a window to a tabgroup. Apply this command on a window, then
@@ -178,11 +181,17 @@
     (when (net-wm-window-type-normal-p win)
       (if marked-window
           (progn
-            (mapcar (lambda (w) (tab-group-window w win)) marked-window)
+            (mapcar (lambda (w) 
+                      (window-put w 'marked nil)
+                      (emit-marked-hook w)
+                      (tab-group-window w win)) marked-window)
             (default-cursor select-cursor)
+            (window-put win 'marked nil)
             (setq marked-window nil))
+        (window-put win 'marked t)
         (default-cursor (get-cursor 'clock))
-        (setq marked-window (cons win)))))
+        (setq marked-window (cons win)))
+      (emit-marked-hook win)))
 
   (define-command 'tab-add-to-group tab-add-to-group #:spec "%W")
 
@@ -196,7 +205,10 @@
             (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)))))
+        (setq marked-window (tab-group-window-index win))
+        (mapcar (lambda (w) 
+                  (window-put w 'marked t)
+                  (emit-marked-hook w)) marked-window))))
 
   (define-command 'tabgroup-add-to-group tabgroup-add-to-group #:spec "%W")
02-marked-1.patch (text/x-patch, 22.1 KB)
--- sawfish.orgi/themes/StyleTab/theme.jl	2012-08-29 21:48:01.000000000 +0200
+++ sawfish/themes/StyleTab/theme.jl	2012-08-30 21:07:44.000000000 +0200
@@ -60,6 +60,18 @@
   :options (Default Reduce Glass WixDa Smoothly Brown Darkblue Blue Pink Green)
   :after-set (lambda () (color-changed)))
 
+(defcustom styletab-c:tabbar-marked t "Customize tabbar color if window marked to add as tab."
+  :group (appearance StyleTab:group)
+  :type boolean
+  :after-set (lambda () (botton-color-changed recolor-tab)))
+
+(defcustom styletab-c:tabbar-marked-color (get-color "#DF0000")
+  "Color of tabbar if window marked to add as tab."
+  :group (appearance StyleTab:group)
+  :type color
+  :depends styletab-c:tabbar-marked
+  :after-set (lambda () (botton-color-changed recolor-tab)))
+
 (defcustom styletab-c:hightlight-tabbar nil "Also hightlighted tabbars."
   :group (appearance StyleTab:group)
   :type boolean
@@ -777,7 +789,6 @@
      (table-set styletab-c-frame-cache img image)
      image)))
 
-
 (define (base-tables-images w)
   (let ((focus (do-recolor (do-make-get-image (concat (symbol-name styletab-c:styles) "/" w "-f.png"))
                            (if (eq styletab-c:custom-frame-colors t)
@@ -795,6 +806,12 @@
                            (if (eq styletab-c:custom-frame-colors t)
                                (get-recolor-dark 0 styletab-c:focus-frame-color)
                              (get-recolor-dark 0 (get-color (nth 0 (proposals-colors)))))))
+        (focus-m (do-recolor (do-make-get-image (concat (symbol-name styletab-c:styles) "/" w "-marked-f.png"))
+                             (if (eq styletab-c:tabbar-marked t)
+                                 styletab-c:tabbar-marked-color
+                               (if (eq styletab-c:custom-frame-colors t)
+                                   (get-recolor-bright 20 styletab-c:focus-frame-color)
+                                 (get-recolor-bright 20 (get-color (nth 0 (proposals-colors))))))))
         (highl (do-recolor (do-make-get-image (concat (symbol-name styletab-c:styles) "/" w "-h.png"))
                            (if (eq styletab-c:custom-frame-colors t)
                                (get-recolor-bright 
@@ -804,10 +821,29 @@
                                                                (if (eq styletab-c:hightlight-tabbar t) 
                                                                    (/ (nth 2 (proposals-colors)) 2) 0)
                                                                (get-color (nth 0 (proposals-colors)))))))
+        (highl-m (do-recolor (do-make-get-image (concat (symbol-name styletab-c:styles) "/" w "-marked-h.png"))
+                             (if (eq styletab-c:tabbar-marked t)
+                                 (if (eq styletab-c:hightlight-tabbar t)
+                                     (get-recolor-bright 20 styletab-c:tabbar-marked-color)
+                                   styletab-c:tabbar-marked-color)
+                               (if (eq styletab-c:custom-frame-colors t)
+                                   (get-recolor-bright 
+                                    (if (eq styletab-c:hightlight-tabbar t) 
+                                        (/ (* styletab-c:active-hightlight-brighten 40) 2) 20)
+                                    styletab-c:focus-frame-color) (get-recolor-bright 
+                                                                   (if (eq styletab-c:hightlight-tabbar t) 
+                                                                       (/ (nth 2 (proposals-colors)) 2) 0)
+                                                                   (get-recolor-bright 20 (get-color (nth 0 (proposals-colors)))))))))
         (inact (do-recolor (do-make-get-image (concat (symbol-name styletab-c:styles) "/" w "-i.png"))
                            (if (eq styletab-c:custom-frame-colors t)
                                (get-recolor-dark (* styletab-c:inactive-dimout 20) styletab-c:unfocus-frame-color)
                              (get-recolor-dark (nth 1 (proposals-colors)) (get-color (nth 0 (proposals-colors)))))))
+        (inact-m (do-recolor (do-make-get-image (concat (symbol-name styletab-c:styles) "/" w "-marked-i.png"))
+                             (if (eq styletab-c:tabbar-marked t)
+                                 styletab-c:tabbar-marked-color
+                               (if (eq styletab-c:custom-frame-colors t)
+                                   (get-recolor-bright 20 styletab-c:focus-frame-color)
+                                 (get-recolor-bright 20 (get-color (nth 0 (proposals-colors))))))))
         (in-hi (do-recolor (do-make-get-image (concat (symbol-name styletab-c:styles) "/" w "-ih.png"))
                            (if (eq styletab-c:custom-frame-colors t)
                                (get-recolor-bright 
@@ -818,9 +854,25 @@
                              (get-recolor-bright (if (eq styletab-c:hightlight-tabbar t) 
                                                      (- (/ (nth 3 (proposals-colors)) 2) (nth 1 (proposals-colors)))
                                                    (- (nth 1 (proposals-colors))))
-                                                 (get-color (nth 0 (proposals-colors))))))))
+                                                 (get-color (nth 0 (proposals-colors)))))))
+        (in-hi-m (do-recolor (do-make-get-image (concat (symbol-name styletab-c:styles) "/" w "-marked-ih.png"))
+                             (if (eq styletab-c:tabbar-marked t)
+                                 (if (eq styletab-c:hightlight-tabbar t)
+                                     (get-recolor-bright 20 styletab-c:tabbar-marked-color)
+                                   styletab-c:tabbar-marked-color)
+                               (if (eq styletab-c:custom-frame-colors t)
+                                   (get-recolor-bright 
+                                    (if (eq styletab-c:hightlight-tabbar t) 
+                                        (/ (* styletab-c:active-hightlight-brighten 40) 2) 20)
+                                    styletab-c:focus-frame-color) (get-recolor-bright 
+                                                                   (if (eq styletab-c:hightlight-tabbar t) 
+                                                                       (/ (nth 2 (proposals-colors)) 2) 0)
+                                                                   (get-recolor-bright 20 (get-color (nth 0 (proposals-colors))))))))))
     (table-unset styletab-c-frame-cache w)
-    (table-set styletab-c-frame-cache w `((focused . ,focus) (highlighted . ,highl) (inactive . ,inact) (inactive-highlighted . ,in-hi)))))
+    (table-set styletab-c-frame-cache w `((focused . ,focus) (highlighted . ,highl) (inactive . ,inact) (inactive-highlighted . ,in-hi)))
+    (table-unset styletab-c-frame-cache (concat w "-m"))
+    (table-set styletab-c-frame-cache 
+               (concat w "-m") `((focused . ,focus-m) (highlighted . ,highl-m) (inactive . ,inact-m) (inactive-highlighted . ,in-hi-m)))))
 
 (define (base-button-tables-images w)
   (let ((focus (do-recolor (do-make-get-image (concat (symbol-name styletab-c:styles) "/" w "-f.png"))
@@ -1320,14 +1372,18 @@
     ((class . tabbar-horizontal)
      (x-justify . ,(lambda (w) (- styletab-c:title-dimension 12)))
      (y-justify . ,(lambda (w) (+ (/ styletab-c:title-dimension 2) -7)))
-     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"top-frame-tab")))
+     (background . ,(lambda (w) (if (window-get w 'marked)
+                                    (table-ref styletab-c-frame-cache '"top-frame-tab-m")
+                                  (table-ref styletab-c-frame-cache '"top-frame-tab"))))
      (foreground . ,title-colors-images)
      (top-edge . ,title-edge-s)
      (height . ,title-height-s)
      (text . ,window-name))
     ((class . tabbar-horizontal-left-edge)
      (foreground . ,(lambda (w) (window-icon w)))
-     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"top-frame-tab-left-icon")))
+     (background . ,(lambda (w) (if (window-get w 'marked)
+                                    (table-ref styletab-c-frame-cache '"top-frame-tab-left-icon-m")
+                                  (table-ref styletab-c-frame-cache '"top-frame-tab-left-icon"))))
      (cursor . hand2)
      (top-edge . ,title-edge-s)
      (height . ,title-height-s)
@@ -1335,7 +1391,9 @@
      (y-justify . 2)
      (x-justify . ,(lambda (w) (+ 3 (icon-edge w)))))
     ((class . tabbar-horizontal-right-edge)
-     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"top-frame-tab-right")))
+     (background . ,(lambda (w) (if (window-get w 'marked)
+                                    (table-ref styletab-c-frame-cache '"top-frame-tab-right-m")
+                                  (table-ref styletab-c-frame-cache '"top-frame-tab-right"))))
      (width . ,tabbar-right-edge-width)
      (height . ,title-height-s)
      (top-edge . ,title-edge-s))
@@ -1356,14 +1414,18 @@
     ((class . tabbar-horizontal)
      (x-justify . ,(lambda (w) (- styletab-c:title-dimension 12)))
      (y-justify . ,(lambda (w) (+ (/ styletab-c:title-dimension 2) -7)))
-     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"bottom-frame-tab")))
+     (background . ,(lambda (w) (if (window-get w 'marked)
+                                    (table-ref styletab-c-frame-cache '"bottom-frame-tab-m")
+                                  (table-ref styletab-c-frame-cache '"bottom-frame-tab"))))
      (foreground . ,title-colors-images)
      (bottom-edge . ,title-edge-s)
      (height . ,title-height-s)
      (text . ,window-name))
     ((class . tabbar-horizontal-left-edge)
      (foreground . ,(lambda (w) (window-icon w)))
-     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"bottom-frame-tab-left-icon")))
+     (background . ,(lambda (w) (if (window-get w 'marked)
+                                    (table-ref styletab-c-frame-cache '"bottom-frame-tab-left-icon-m")
+                                  (table-ref styletab-c-frame-cache '"bottom-frame-tab-left-icon"))))
      (cursor . hand2)
      (bottom-edge . ,title-edge-s)
      (height . ,title-height-s)
@@ -1371,7 +1433,9 @@
      (y-justify . 2)
      (x-justify . ,(lambda (w) (+ 3 (icon-edge w)))))
     ((class . tabbar-horizontal-right-edge)
-     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"bottom-frame-tab-right")))
+     (background . ,(lambda (w) (if (window-get w 'marked)
+                                    (table-ref styletab-c-frame-cache '"bottom-frame-tab-right-m")
+                                  (table-ref styletab-c-frame-cache '"bottom-frame-tab-right"))))
      (width . ,tabbar-right-edge-width)
      (height . ,title-height-s)
      (bottom-edge . ,title-edge-s))
@@ -1393,7 +1457,9 @@
      (width . 2))
     ((class . tabbar-vertical-top-edge)
      (foreground . ,(lambda (w) (window-icon w)))
-     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"left-frame-tab-top")))
+     (background . ,(lambda (w) (if (window-get w 'marked)
+                                    (table-ref styletab-c-frame-cache '"left-frame-tab-top-m")
+                                  (table-ref styletab-c-frame-cache '"left-frame-tab-top"))))
      (cursor . hand2)
      (height . ,(lambda (w) (+ 2 (title-height-s w))))
      (width . ,title-height-s)
@@ -1403,12 +1469,16 @@
     ((class . tabbar-vertical)
      (x-justify . 12)
      (y-justify . center)
-     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"left-frame-tab")))
+     (background . ,(lambda (w) (if (window-get w 'marked)
+                                    (table-ref styletab-c-frame-cache '"left-frame-tab-m")
+                                  (table-ref styletab-c-frame-cache '"left-frame-tab"))))
      (left-edge . ,title-edge-s)
      (width . ,title-height-s))
     ((class . tabbar-vertical-bottom-edge)
      (foreground . ,(lambda (w) (window-icon w)))
-     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"left-frame-tab-bottom-icon")))
+     (background . ,(lambda (w) (if (window-get w 'marked)
+                                    (table-ref styletab-c-frame-cache '"left-frame-tab-bottom-icon-m")
+                                  (table-ref styletab-c-frame-cache '"left-frame-tab-bottom-icon"))))
      (left-edge . ,title-edge-s)
      (height . ,title-height-s)
      (width . ,title-height-s)
@@ -1431,7 +1501,9 @@
      (width . 2))
     ((class . tabbar-vertical-top-edge)
      (foreground . ,(lambda (w) (window-icon w)))
-     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"right-frame-tab-top")))
+     (background . ,(lambda (w) (if (window-get w 'marked)
+                                    (table-ref styletab-c-frame-cache '"right-frame-tab-top-m")
+                                  (table-ref styletab-c-frame-cache '"right-frame-tab-top"))))
      (cursor . hand2)
      (height . ,(lambda (w) (+ 2 (title-height-s w))))
      (width . ,title-height-s)
@@ -1441,12 +1513,16 @@
     ((class . tabbar-vertical)
      (x-justify . 12)
      (y-justify . center)
-     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"right-frame-tab")))
+     (background . ,(lambda (w) (if (window-get w 'marked)
+                                    (table-ref styletab-c-frame-cache '"right-frame-tab-m")
+                                  (table-ref styletab-c-frame-cache '"right-frame-tab"))))
      (right-edge . ,title-edge-s)
      (width . ,title-height-s))
     ((class . tabbar-vertical-bottom-edge)
      (foreground . ,(lambda (w) (window-icon w)))
-     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"right-frame-tab-bottom-icon")))
+     (background . ,(lambda (w) (if (window-get w 'marked)
+                                    (table-ref styletab-c-frame-cache '"right-frame-tab-bottom-icon-m")
+                                  (table-ref styletab-c-frame-cache '"right-frame-tab-bottom-icon"))))
      (right-edge . ,title-edge-s)
      (height . ,title-height-s)
      (width . ,title-height-s)
@@ -1658,7 +1734,8 @@
 (define top-frame-sticky-button
   `((class . sticky-button)
     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"top-frame-button")))
-    (foreground . ,(lambda (w) (if (window-get w 'sticky) 
+    (foreground . ,(lambda (w) (if (or (window-get w 'sticky)
+                                       (window-get w 'sticky-viewport))
                                    (table-ref styletab-c-frame-cache '"top-frame-unsticky-button") 
                                  (table-ref styletab-c-frame-cache '"top-frame-sticky-button"))))
     (cursor . hand2)
@@ -1669,7 +1746,8 @@
 (define bottom-frame-sticky-button
   `((class . sticky-button)
     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"bottom-frame-button")))
-    (foreground . ,(lambda (w) (if (window-get w 'sticky) 
+    (foreground . ,(lambda (w) (if (or (window-get w 'sticky) 
+                                       (window-get w 'sticky-viewport))
                                    (table-ref styletab-c-frame-cache '"bottom-frame-unsticky-button") 
                                  (table-ref styletab-c-frame-cache '"bottom-frame-sticky-button"))))
     (cursor . hand2)
@@ -1680,7 +1758,8 @@
 (define left-frame-sticky-button
   `((class . sticky-button)
     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"left-frame-button")))
-    (foreground . ,(lambda (w) (if (window-get w 'sticky) 
+    (foreground . ,(lambda (w) (if (or (window-get w 'sticky) 
+                                       (window-get w 'sticky-viewport))
                                    (table-ref styletab-c-frame-cache '"left-frame-unsticky-button") 
                                  (table-ref styletab-c-frame-cache '"left-frame-sticky-button"))))
     (cursor . hand2)
@@ -1691,7 +1770,8 @@
 (define right-frame-sticky-button
   `((class . sticky-button)
     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"right-frame-button")))
-    (foreground . ,(lambda (w) (if (window-get w 'sticky) 
+    (foreground . ,(lambda (w) (if (or (window-get w 'sticky) 
+                                       (window-get w 'sticky-viewport))
                                    (table-ref styletab-c-frame-cache '"right-frame-unsticky-button") 
                                  (table-ref styletab-c-frame-cache '"right-frame-sticky-button"))))
     (cursor . hand2)
@@ -1730,7 +1810,7 @@
 (define top-frame-prev-button
   `((class . previous-workspace-button)
     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"top-frame-button")))
-    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-first-workspace) 1)) (window-get w 'sticky))
+    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-first-workspace) 1)) (window-get w 'sticky) (window-get w 'sticky-viewport))
                                    (table-ref styletab-c-frame-cache '"top-frame-prev-last-button")   
                                  (table-ref styletab-c-frame-cache '"top-frame-prev-button"))))    
     (cursor . hand2)
@@ -1741,7 +1821,7 @@
 (define bottom-frame-prev-button
   `((class . previous-workspace-button)
     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"bottom-frame-button")))
-    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-first-workspace) 1)) (window-get w 'sticky))
+    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-first-workspace) 1)) (window-get w 'sticky) (window-get w 'sticky-viewport))
                                    (table-ref styletab-c-frame-cache '"bottom-frame-prev-last-button")   
                                  (table-ref styletab-c-frame-cache '"bottom-frame-prev-button"))))    
     (cursor . hand2)
@@ -1752,7 +1832,7 @@
 (define left-frame-prev-button
   `((class . previous-workspace-button)
     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"left-frame-button")))
-    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-first-workspace) 1)) (window-get w 'sticky))
+    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-first-workspace) 1)) (window-get w 'sticky) (window-get w 'sticky-viewport))
                                    (table-ref styletab-c-frame-cache '"left-frame-prev-last-button")   
                                  (table-ref styletab-c-frame-cache '"left-frame-prev-button"))))    
     (cursor . hand2)
@@ -1763,7 +1843,7 @@
 (define right-frame-prev-button
   `((class . previous-workspace-button)
     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"right-frame-button")))
-    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-first-workspace) 1)) (window-get w 'sticky))
+    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-first-workspace) 1)) (window-get w 'sticky) (window-get w 'sticky-viewport))
                                    (table-ref styletab-c-frame-cache '"right-frame-prev-last-button")   
                                  (table-ref styletab-c-frame-cache '"right-frame-prev-button"))))    
     (cursor . hand2)
@@ -1774,7 +1854,7 @@
 (define top-frame-next-button
   `((class . next-workspace-button)
     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"top-frame-button")))
-    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-last-workspace) 1)) (window-get w 'sticky))
+    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-last-workspace) 1)) (window-get w 'sticky) (window-get w 'sticky-viewport))
                                    (table-ref styletab-c-frame-cache '"top-frame-next-last-button")   
                                  (table-ref styletab-c-frame-cache '"top-frame-next-button"))))    
     (cursor . hand2)
@@ -1785,7 +1865,7 @@
 (define bottom-frame-next-button
   `((class . next-workspace-button)
     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"bottom-frame-button")))
-    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-last-workspace) 1)) (window-get w 'sticky))
+    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-last-workspace) 1)) (window-get w 'sticky) (window-get w 'sticky-viewport))
                                    (table-ref styletab-c-frame-cache '"bottom-frame-next-last-button")   
                                  (table-ref styletab-c-frame-cache '"bottom-frame-next-button"))))    
     (cursor . hand2)
@@ -1796,7 +1876,7 @@
 (define left-frame-next-button
   `((class . next-workspace-button)
     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"left-frame-button")))
-    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-last-workspace) 1)) (window-get w 'sticky))
+    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-last-workspace) 1)) (window-get w 'sticky) (window-get w 'sticky-viewport))
                                    (table-ref styletab-c-frame-cache '"left-frame-next-last-button")   
                                  (table-ref styletab-c-frame-cache '"left-frame-next-button"))))    
     (cursor . hand2)
@@ -1807,7 +1887,7 @@
 (define right-frame-next-button
   `((class . next-workspace-button)
     (background . ,(lambda (w) (table-ref styletab-c-frame-cache '"right-frame-button")))
-    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-last-workspace) 1)) (window-get w 'sticky))
+    (foreground . ,(lambda (w) (if (or (window-in-workspace-p w (- (get-last-workspace) 1)) (window-get w 'sticky) (window-get w 'sticky-viewport))
                                    (table-ref styletab-c-frame-cache '"right-frame-next-last-button")   
                                  (table-ref styletab-c-frame-cache '"right-frame-next-button"))))    
     (cursor . hand2)
@@ -2505,6 +2585,10 @@
     (when (eq (window-get w 'current-frame-style) theme-name)
       (reframe-window w))))
 
+(define (reframe-marked w)
+  (when (eq (window-get w 'current-frame-style) theme-name)
+    (reframe-window w)))
+
 ;; reframe-with-style, resize bottons
 ;; reset icon cache
 (define (clear-icon-cache-reframe)
@@ -2571,6 +2655,7 @@
 
 (add-frame-style theme-name get-frame)
 
+(call-after-state-changed '(marked) reframe-marked)
 (call-after-state-changed '(maximized sticky fixed-position stacking) reframe-one)
 (add-hook 'remove-from-workspace-hook reframe-one)
signature.asc (application/pgp-signature, 198 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)

iEYEARECAAYFAlA/xGEACgkQ5bxw1bjXsrBXPQCgpxaYIXq+offyzQachG9fKYSo
xnkAoKK66jxdmajx8NZFCqWn5kVjXSbf
=j9Ph
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.