> These are the two options on the table? > > (let ((frame-inhibit-make-frame-hidden-buffer-check t)) > (with-current-buffer " *string-pixel-width*" > (make-frame))) > ;; could also do this if users want the behavior all the time > (setq frame-inhibit-make-frame-hidden-buffer-check t) > > (with-current-buffer " *string-pixel-width*" > (setq-local frame-inhibit-make-frame-hidden-buffer-check t) > (make-frame) > (kill-local-variable 'frame-inhibit-make-frame-hidden-buffer-check)) > > I prefer the former over the latter. I prefer these ones (let ((frame-inhibit-make-frame-hidden-buffer-check t)) (with-current-buffer " *string-pixel-width*" (make-frame))) ;; Set the default for all buffers. (setq-default frame-inhibit-make-frame-hidden-buffer-check t) ;; Set the buffer-local value. (with-current-buffer " *string-pixel-width*" (setq frame-inhibit-make-frame-hidden-buffer-check t)) with the attached patch. > It seems harmonious with other > frame-related controls such as frame-resize-pixelwise > and frame-inhibit-implied-resize, unless I'm missing some subtlety, which I > surely am. The subtlety is that a leading space in a buffer name is a buffer-local property, a property which affects only the buffer wearing that name and no other buffers. 'frame-resize-pixelwise' and 'frame-inhibit-implied-resize' are (or better should be) frame properties, properties that affect a frame and consequently all buffers displayed on that frame. martin