emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs's set-frame-size can not work well with gnome-shell?


From: Dmitry Gutov
Subject: Re: Emacs's set-frame-size can not work well with gnome-shell?
Date: Sat, 18 Jan 2020 05:29:00 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0

On 18.01.2020 5:05, Dmitry Gutov wrote:
Alternatively, if we can't make resizing child frames work reliably, maybe prohibit it on the API level? And then work on making sure that deleting and re-creating a new child frame, and showing a buffer there, is fast enough.

BTW, this already gives me a bit better performance than the original resize-test (0.7s for 10 iterations vs 1.0s for the same, and a lot of that 0.7 is spent in GC):

(defun open-test (buffer width height)
  (display-buffer-in-child-frame
   buffer `((child-frame-parameters
             . ((width . ,width)
                (height . ,height)
                (top . 50)
                (left . 50)
                )))))

(defun resize-test (frame height)
  (let ((width (frame-width))
        (buf (window-buffer (frame-first-window frame))))
    (delete-frame frame)
    (open-test buf width height)))

(setq-local test-buffer (get-buffer-create "test child-frame"))
(setq-local test-frame (window-frame (open-test test-buffer 40 10)))

(benchmark 10 '(setq-local test-frame (window-frame (resize-test test-frame 10))))

But an overlay-based popup is an order of magnitude faster still. And that's important because we really can't make the user wait for 70-100ms for Emacs to react to input.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]