From 95e9e2a9c3d67b8797c5c48cac56f3c270b77769 Mon Sep 17 00:00:00 2001 From: cage Date: Sat, 20 May 2023 17:31:11 +0200 Subject: [PATCH] - [GUI] added configuration directive to enable or disable TOC autoresize. --- etc/gui.conf | 2 ++ src/gui/client/client-configuration.lisp | 9 ++++++++- src/gui/client/main-window.lisp | 3 ++- src/package.lisp | 1 + 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/etc/gui.conf b/etc/gui.conf index d7b75b3..b6f826d 100644 --- a/etc/gui.conf +++ b/etc/gui.conf @@ -181,6 +181,8 @@ toc.slant = roman toc.underline = no +toc.autoresize = yes + # Keybinding # see: https://www.tcl.tk/man/tcl8.7/TkCmd/bind.html#M7 diff --git a/src/gui/client/client-configuration.lisp b/src/gui/client/client-configuration.lisp index 12d84c4..3f9d97b 100644 --- a/src/gui/client/client-configuration.lisp +++ b/src/gui/client/client-configuration.lisp @@ -47,7 +47,8 @@ select emphasize wrapped - asterisk) + asterisk + autoresize) (defun load-config-file (&optional (virtual-filepath +client-conf-filename+) (perform-missing-value-check nil)) @@ -284,6 +285,12 @@ swconf:+key-minimum+ swconf:+key-width+) +(swconf:gen-simple-access (toc-autoresize-p + :transform-value-fn (lambda (a) (not (swconf:false-value-p a))) + :configuration-tree *client-configuration*) + swconf:+key-toc+ + +key-autoresize+) + (swconf:gen-simple-access (gemtext-padding :transform-value-fn (lambda (a) (parse-integer a)) :configuration-tree *client-configuration*) diff --git a/src/gui/client/main-window.lisp b/src/gui/client/main-window.lisp index 4c0ff26..83a2908 100644 --- a/src/gui/client/main-window.lisp +++ b/src/gui/client/main-window.lisp @@ -1287,7 +1287,8 @@ listbox-items)) (width-pixel (gui:font-measure font (strcat longest-value "MM")))) (gui:configure inner-listbox :width new-width) - (gui:sash-place gemini-paned-frame 0 width-pixel)))) + (when (client-configuration:config-toc-autoresize-p) + (gui:sash-place gemini-paned-frame 0 width-pixel))))) (defun print-info-message (message &key (color (gui-goodies:parse-color "black")) diff --git a/src/package.lisp b/src/package.lisp index b82c029..5e81221 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -3289,6 +3289,7 @@ :gemini-preformatted-text-justification :config-toc-maximum-width :config-toc-minimum-width + :config-toc-autoresize-p :toc-font-configuration :get-keybinding :config-keybinding-tour-shuffle