Re: [Sawfish] Re: Patches for styletab and compton |
[ Thread Index | Date Index | More lists.tuxfamily.org/sawfish Archives ]
Hi, I now know what the problem is. If you load a theme.jl you can use in theme.jl (make-image "Default/left-frame-maximize-button-f.png"). But if the theme is loaded and you run make-image in theme.jl you need the complete path: (make-image "/usr/share/sawfish/themes/StyleTab/Default/left-frame-maximize-button-f.png") 01-styletab-start.patch Changes: * gaol-add "find-frame-style" in sawfish/wm/frames.jl * improve start/restart time from Styletab theme On Thu, 18 Sep 2014 16:53:10 +0200 wrote Christopher Roy Bratusek <nano@xxxxxxxxxxx>: >that's not the case for me (starts blazing fast), but I'll do some more >tests. > >On 17.09.2014 23:41, fuchur wrote: >> Hi, >> >> On Wed, 17 Sep 2014 23:00:16 +0200 >> wrote Christopher Roy Bratusek <nano@xxxxxxxxxxx>: >> >>> try latest git head, it does not fail anymore for me and loads almost >>> instantly. >>> >>> Regards, >>> Chris >>> >>> On 17.09.2014 18:46, fuchur wrote: >>>> Hi, >>>> >>>> On Tue, 16 Sep 2014 17:59:06 +0200 >>>> wrote fuchur <flohtransporter@xxxxxxxxx>: >>>> >>>>> Hi, >>>>> >>>>> On Mon, 15 Sep 2014 17:28:52 +0200 >>>>> wrote Christopher Roy Bratusek <nano@xxxxxxxxxxx>: >>>>> >>>>>> works fine. >>>>> >>>>> No. I can reproduces this. I have a copy from StyleTab in >>>>> ~/,sawfish/themes/My-StyleTab. If i start sawfish with StyleTab and >>>>> then load My-StyleTab and restart sawfish i got "Lisp backtraces". >>>>> I try to fix this (if i found what is wrong). >>>>> >>>> >>>> I now know what the problem is. If you run make-image after the theme >>>> file is loaded sawfish crash. Put this in theme.jl from Styletab after >>>> the other defcustom: >>>> >>>> >>>> (defvar make-image-start nil) >>>> (setq make-image-start (make-image "Default/left-frame-maximize-button-f.png")) >>>> >>>> (defvar make-image-load nil) >>>> (define (make-image-l) >>>> (setq make-image-load (make-image "Default/left-frame-maximize-button-f.png"))) >>>> (make-image-load) >>>> >>>> >>>> (defcustom styletab-c:make-image nil "Crash sawfish." >>>> :group (appearance StyleTab:group) >>>> :type boolean >>>> :after-set (lambda () (crash-make-image))) >>>> >>>> (defvar crash-image nil) >>>> (define (crash-make-image) >>>> (setq crash-image (make-image "Default/left-frame-maximize-button-f.png"))) >>>> >>>> >>>> >>>> >>>> Now restart sawfish. Open sawfish-client: >>>> >>>> client > make-image-start >>>> #<image 20x32> >>>> client > make-image-load >>>> #<image 20x32> >>>> client > crash-image >>>> () >>>> >>>> If you now enable or disable the checkbox "Crash sawfish." you got >>>> "Lisp backtraces". >>>> >>>> I can't fix this. Can you fix this? >>>> >>>> >>> >> >> Bevor your changes restart time 4 - 5 seconds now 11 -12 seconds. >> The problem is that we can't run make-image in theme.jl after >> initialization. If we can't fix this the start/restart time is always >> over 10 seconds (on my system). And also without a fix for make-image >> we can't use my two patches from this thread, with this patches it can >> happens that you can't start sawfish any more. >> >> > -- Regards, Fuchur GPG Fingerprint: CA3B 8204 5B3E 6D48 6D53 C116 E5BC 70D5 B8D7 B2B0
diff -urNad sawfish.orgi/lisp/sawfish/wm/frames.jl sawfish/lisp/sawfish/wm/frames.jl --- sawfish.orgi/lisp/sawfish/wm/frames.jl +++ sawfish/lisp/sawfish/wm/frames.jl @@ -1065,7 +1065,8 @@ frame-part-get frame-part-put frame-part-window frame-part-x-window frame-part-position frame-part-dimensions frame-part-state map-frame-parts refresh-frame-part refresh-window rebuild-frame-part - reload-frame-style update-title-x-offsets update-title-y-offsets) + reload-frame-style update-title-x-offsets update-title-y-offsets + find-frame-style) (add-hook 'add-window-hook reframe-window t) (add-hook 'shape-notify-hook reframe-window t) diff -urNad sawfish.orgi/themes/StyleTab/theme.jl sawfish/themes/StyleTab/theme.jl --- sawfish.orgi/themes/StyleTab/theme.jl +++ sawfish/themes/StyleTab/theme.jl @@ -788,17 +788,20 @@ (define (get-recolor-bright bright color) (brighten-color color bright)) +(define start-lock 't) (define (do-recolor img color) (if (and (eq styletab-c:styles 'Flat) (not flat-buttons)) (make-sized-image 1 1 color) (if (not (eq styletab-c:styles 'Flat)) - (let ((recolorer - (make-image-recolorer color - #:zero-channel blue-channel - #:index-channel green-channel))) - (recolorer img) - img) + (if start-lock + img + (let ((recolorer + (make-image-recolorer color + #:zero-channel blue-channel + #:index-channel green-channel))) + (recolorer img) + img)) img))) (define (do-make-get-image img) @@ -808,7 +811,7 @@ (or (table-ref styletab-c-frame-cache img) (let ((image - (make-image img))) + (make-image (concat (find-frame-style theme-name) "/" img)))) (table-set styletab-c-frame-cache img image) image)))) @@ -2598,7 +2601,6 @@ (define frame nil) (define button-alist nil) (define current-title styletab-c:titlebar-place) -(define recolor-lock t) (define current-type nil) ;; botton list table @@ -2877,39 +2879,33 @@ ;; reframe-with-style, resize bottons ;; reset icon cache (define (clear-icon-cache-reframe) - (when recolor-lock - (setq recolor-lock nil) + (when (not start-lock) (recolor-all-buttons) (setq styletab-c-icon-cache (make-weak-table eq-hash eq)) (make-buttons) - (reframe-with-style) - (setq recolor-lock t))) + (reframe-with-style))) (define (color-changed) - (when recolor-lock - (setq recolor-lock nil) + (when (not start-lock) (recolor-all) - (reframe-with-style) - (setq recolor-lock t))) + (reframe-with-style))) (define (bright-changed) - (when recolor-lock - (setq recolor-lock nil) + (when (not start-lock) (recolor-tab) (recolor-all-buttons) - (reframe-with-style) - (setq recolor-lock t))) + (reframe-with-style))) (define (botton-color-changed botton) - (when recolor-lock - (setq recolor-lock nil) + (when (not start-lock) (botton) - (reframe-with-style) - (setq recolor-lock t))) + (reframe-with-style))) -(define (reload-frame-style-reframe) - (reload-frame-style theme-name) - (reframe-with-style)) +(define (build-style) + (when (not start-lock) + (recolor-all) + (make-buttons) + (reframe-with-style))) (define (frame-style-name w) (when (eq (window-get w 'current-frame-style) theme-name) @@ -2942,10 +2938,6 @@ ((shaped-transient) (make-frame w 'shaped-transient-frame current-title))))) -;; initialize theme -(require 'rep.io.timers) -(make-timer (lambda () t) (quotient 1000 1000) (mod 1000 1000)) - (add-frame-style theme-name get-frame) (call-after-state-changed '(tab-theme-name) frame-style-name) @@ -2954,7 +2946,7 @@ (call-after-state-changed '(maximized sticky fixed-position fixed-size stacking) reframe-one) (add-hook 'remove-from-workspace-hook reframe-one) -(custom-set-property 'styletab-c:styles ':after-set reload-frame-style-reframe) +(custom-set-property 'styletab-c:styles ':after-set build-style) (custom-set-property 'styletab-c:title-dimension ':after-set clear-icon-cache-reframe) (custom-set-property 'styletab-c:custom-button-width ':after-set clear-icon-cache-reframe) (custom-set-property 'styletab-c:button-width ':after-set clear-icon-cache-reframe) @@ -2969,5 +2961,12 @@ (custom-set-property 'styletab-c:right-top-buttons ':after-set make-buttons-reframe-with-style) (custom-set-property 'styletab-c:right-bottom-buttons ':after-set make-buttons-reframe-with-style) -(color-changed) -(make-buttons) +(define (timer-theme-load) + (require 'rep.io.timers) + (setq start-lock + (make-timer (lambda () + (setq start-lock nil) + (build-style)) + (quotient 10 1000) (mod 10 1000)))) + +(timer-theme-load)
Attachment:
signature.asc
Description: PGP signature
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |