diff --git a/src/gui/client/main-window.lisp b/src/gui/client/main-window.lisp index 4cdaa24..ebfd7f7 100644 --- a/src/gui/client/main-window.lisp +++ b/src/gui/client/main-window.lisp @@ -490,6 +490,12 @@ :completed) (client-os-utils:open-resource-with-external-program main-window support-file) (wait-enough-data))) + (buffer-filled-enough--to-open-p (buffer-size read-so-far) + (let ((filled-configuration-threshold (and buffer-size + (> read-so-far buffer-size)))) + (or filled-configuration-threshold + (> read-so-far + swconf:+buffer-minimum-size-to-open+)))) (wait-enough-data () (let* ((stream-info (cev:enqueue-request-and-wait-results :gemini-stream-info @@ -505,11 +511,9 @@ (if wait-for-download (maybe-open-if-completed stream-info support-file) (let ((buffer-size (swconf:link-regex->program-to-use-buffer-size support-file))) - (if (or (and buffer-size - (> read-so-far buffer-size)) - (> read-so-far - swconf:+buffer-minimum-size-to-open+)) - (client-os-utils:open-resource-with-external-program main-window support-file) + (if (buffer-filled-enough--to-open-p buffer-size read-so-far) + (client-os-utils:open-resource-with-external-program main-window + support-file) (wait-enough-data)))) (maybe-open-if-completed stream-info support-file)))))) (wait-enough-data)))