branch: externals/bufferlo
commit 135a25f0b3c20def3f5961a460ee287a8db06342
Author: shipmints <shipmi...@gmail.com>
Commit: shipmints <shipmi...@gmail.com>

    GTK frame handling improvements and assq-delete-all fix copy the alist
---
 bufferlo.el | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/bufferlo.el b/bufferlo.el
index 7c86fd8acf..4f449a99db 100644
--- a/bufferlo.el
+++ b/bufferlo.el
@@ -2451,17 +2451,16 @@ Geometry set for FRAME or the current frame, if nil."
   (setq frame (or frame (selected-frame)))
   (let-alist frame-geometry
     (when (and .left .top .width .height) ; defensive in case geometry stored 
from a tty
-      (modify-frame-parameters frame `((user-position . t)
-                                       (left . ,.left)
-                                       (top . ,.top)))
-      (sit-for 0 t)
-      ;; Clamp frame size restored from a larger display
-      (set-frame-parameter frame 'fullscreen nil)
-      (set-frame-size frame
-                      (min .width (display-pixel-width))
-                      (min .height (display-pixel-height))
-                      'pixelwise)
-      (sit-for 0))))
+      (let ((frame-inhibit-implied-resize t))
+        (modify-frame-parameters frame `((fullscreen . nil) ; fullscreen via 
default-frame-alist when set
+                                         (user-position . t)
+                                         (left . ,.left)
+                                         (top . ,.top)
+                                         (user-size . t)
+                                         ;; Clamp frame size restored from a 
larger display
+                                         (width . (text-pixels . ,(min .width 
(display-pixel-width))))
+                                         (height . (text-pixels . ,(min 
.height (display-pixel-height))))))
+        (sit-for 0)))))
 
 (defvar bufferlo--active-sets nil
   "Global active bufferlo sets.
@@ -2502,7 +2501,7 @@ FRAMESET is a bufferlo-filtered `frameset'."
         ;; frameset-restore checks for fullscreen in frame parameters
         ;; and its handling is wonky and the restore filter has no
         ;; effect, so we remove it locally.
-        (default-frame-alist (assq-delete-all 'fullscreen 
default-frame-alist)))
+        (default-frame-alist (assq-delete-all 'fullscreen (copy-tree 
default-frame-alist))))
     (with-temp-buffer
       (ignore-errors
         ;; Sadly, frameset-restore returns neither a status nor a list of 
restored frames.

Reply via email to