Skip to content
This repository has been archived by the owner on Mar 13, 2023. It is now read-only.

Glitchy rendering when scrolling large output #1297

Open
contrapunctus-1 opened this issue Jun 6, 2022 · 1 comment
Open

Glitchy rendering when scrolling large output #1297

contrapunctus-1 opened this issue Jun 6, 2022 · 1 comment

Comments

@contrapunctus-1
Copy link
Contributor

Minimal reproducible example -

(in-package :common-lisp-user)
(defpackage "APP"
  (:use :clim :clim-lisp)
  (:export "APP-MAIN"))
(in-package :app)

(define-application-frame superapp ()
  ((dir :initform (error "no dir provided")
        :initarg :dir
        :accessor dir))
  (:pointer-documentation t)
  (:panes
   (app :application
        :height (graft-height (find-graft))
        :width (graft-width (find-graft))
        :incremental-redisplay t
        :display-function 'display-app)
   (int :interactor :height 200 :width 600))
  (:layouts
   (default (vertically () app int))))

(defun display-app (frame pane)
  (loop for file in (uiop:directory-files (dir frame))
        do (with-open-file (stream file)
             (loop for char = (ignore-errors (read-char stream))
                   while char
                   do (format pane "~a" char)))))

(defun app-main (dir)
  (run-frame-top-level (make-application-frame 'superapp :dir dir)))

;; Run with a directory containing many text files. For example -
;; (app-main #P"/media/data/contrapunctus/git/cl/McCLIM/Core/clim-core/presentations/")

Observations -

  1. Scrolling by using the mousewheel or dragging the scroll bar presents garbled output, as if old output was not cleared.
  2. Switching to another application and back corrects CLIM's display.
  3. The presence or absence of :incremental-redisplay t has no effect on this problem.

(clim-lisp:software-version) ;; ⇒ "5.17.0-1-amd64"

@john-a-carroll
Copy link
Contributor

Seems very similar to #1188

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants