GNU bug report logs - #65840
29.1; desktop-load moves frames to the right and down

Previous Next

Package: emacs;

Reported by: tanzer <at> gg32.com

Date: Sat, 9 Sep 2023 12:34:01 UTC

Severity: normal

Found in version 29.1

To reply to this bug, email your comments to 65840 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#65840; Package emacs. (Sat, 09 Sep 2023 12:34:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to tanzer <at> gg32.com:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 09 Sep 2023 12:34:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: tanzer <at> gg32.com
To: bug-gnu-emacs <at> gnu.org
Subject: 29.1; desktop-load moves frames to the right and down
Date: Sat, 09 Sep 2023 12:32:42 -0000
[Message part 1 (text/plain, inline)]
=============================================================================
In GNU Emacs 29.1, desktop-load moves frames to the right and down.

The three attachements show the shifts in frame positions:

- .emacs.desktop.1 contains the correct frame positions after using
  `desktop-save` and copying .emacs.desktop to .emacs.desktop.1

- Loading .emacs.desktop.1 into Emacs 29 results in the frames being
  shifted. On exiting Emacs 29, the shifted positions are stored in
  .emacs.desktop and copied to .emacs.desktop.2.

- Loading .emacs.desktop.2 into Emacs 29 results in the frames being
  shifted again. On exiting Emacs 29, the shifted positions are stored
  in .emacs.desktop and copied to .emacs.desktop.3.

- Loading any of these .emacs.desktop files into Emacs 28.2 results in
  the expected frame positions (in case of .2 and .3 the positions
  incorrectly shifted to by Emacs 29).
=============================================================================

In GNU Emacs 29.1 (build 1, aarch64-apple-darwin21.6.0, NS
appkit-2113.60 Version 12.6.6 (Build 21G646)) of 2023-07-30 built on
armbob.lan
Windowing system distributor 'Apple', version 10.3.2299
System Description:  macOS 13.5.2

Configured using:
'configure --with-ns '--enable-locallisppath=/Library/Application
Support/Emacs/${version}/site-lisp:/Library/Application
Support/Emacs/site-lisp' --with-modules 'CFLAGS=-DFD_SETSIZE=10000
-DDARWIN_UNLIMITED_SELECT' --with-x-toolkit=no'

Configured features:
ACL GLIB GMP GNUTLS JPEG JSON LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER
PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER ZLIB

Important settings:
  value of $EMACSLOADPATH: /Users/tanzer/.emacs.lib::/Applications/Emacs.app/Contents/Resources/site-lisp:
  value of $LC_CTYPE: UTF-8
  value of $LC_MESSAGES: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Elisp

Minor modes in effect:
  global-display-fill-column-indicator-mode: t
  display-fill-column-indicator-mode: t
  global-auto-revert-mode: t
  recentf-mode: t
  msb-mode: t
  shell-dirtrack-mode: t
  global-hl-line-mode: t
  desktop-save-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: do-auto-fill
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/System/Volumes/Data/Swing/work/project/ls-emacs/javascript hides /Users/tanzer/.emacs.lib/javascript
/Users/tanzer/.emacs.lib/custom hides /Applications/Emacs-29.1.app/Contents/Resources/lisp/custom
/System/Volumes/Data/Swing/work/project/ls-emacs/picture hides /Applications/Emacs-29.1.app/Contents/Resources/lisp/textmodes/picture

Features:
(shadow emacsbug message mailcap yank-media puny dired dired-loaddefs
rfc822 mml mml-sec epa epg rfc6068 epg-config gnus-util mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
cl-extra help-mode time-date flyspell ispell help-at-pt easy-mmode
display-fill-column-indicator autorevert filenotify recentf
tree-widget wid-edit javascript-mode jinja-mode sgml-mode facemenu dom
swing-kartei-quot swing-kartei-person swing-kartei-firma
swing-kartei-bib swing-kartei--summary swing-kartei--entry
swing-command whitespace msb python rx project pcase treesit
lse-python tex-mode shell pcomplete cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs derived lse-cal
lse-tpu-edit-units imenu lse-window lse-vcs lse-range lse-mode-alist
lse-menu lse-mark-stack lse-learn-key lse-language lse-kill lse-keys
lse-interactive lse-git server hl-line desktop frameset lse-session
lse-frame lse-fill-in--search lse-fill-in--delimiters
lse-fill-in-marks lse-fill-in-history lse-hash lse-fill-in-info
lse-flat-fill-in lse-fill-in ffap thingatpt url-parse auth-source
cl-seq eieio eieio-core cl-macs cl-loaddefs cl-lib password-cache json
subr-x map byte-opt gv bytecomp byte-compile url-vars lse-file
lse-face lse-editing lse-define lse-deep-fill-in lse-completion
lse-tpu-keys compile text-property-search comint ansi-osc ansi-color
ring lse-compilation lse-indent lse-comment lse-command
lse-byte-compile lse-buffer-list lse-buffer lse-tpu time picture
lse-pos-ring lse-list-util lse-basics ls-emacs lse-macosx rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple
cl-generic indonesian philippine cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads kqueue
cocoa ns multi-tty make-network-process emacs)

Memory information:
((conses 16 166760 13524)
(symbols 48 17838 36)
(strings 32 54853 1164)
(string-bytes 1 1710148)
(vectors 16 30484)
(vector-slots 8 374800 18658)
(floats 8 73 20)
(intervals 56 1711 144)
(buffers 984 10))
[.emacs.desktop.1 (text/x-lisp, attachement)]
;; -*- mode: emacs-lisp; lexical-binding:t; coding: utf-8-emacs; -*-
;; --------------------------------------------------------------------------
;; Desktop File for Emacs
;; --------------------------------------------------------------------------
;; Created Sat Sep  9 12:44:11 2023
;; Desktop file format version 208
;; Emacs version 29.1

;; Global section:
(setq desktop-saved-frameset [frameset 1 (25852 23179 559581 0) (desktop . "208") "tanzer <at> CTs-MBA-M1.c10a.cluster" nil nil ((((minibuffer . t) (fontsize . 0) (font . "-*-Menlo-regular-normal-normal-*-12-*-*-*-m-0-iso10646-1") (font-parameter . "-*-Menlo-normal-normal-normal-*-12-*-*-*-m-0-iso10646-1") (child-frame-border-width) (vertical-scroll-bars . right) (horizontal-scroll-bars) (line-spacing) (no-special-glyphs) (undecorated) (ns-appearance) (ns-transparent-titlebar) (z-group) (no-focus-on-map) (no-accept-focus) (menu-bar-lines . 1) (tab-bar-lines . 0) (tool-bar-lines . 0) (title) (icon-type) (scroll-bar-height . 15) (alpha-background) (fullscreen) (sticky) (background-mode . light) (last-focus-update) (frameset--id . "984C-20C7-9E97-83AF") (frameset--mini t) (height . 98) (width . 80) (modeline . t) (unsplittable) (left . 1905) (top . 25) (icon-name) (visibility . t) (tool-bar-position . top)) ((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 7) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 56) (min-pixel-width . 70) (min-pixel-height-ignore . 28) (min-pixel-width-ignore . 49) (min-pixel-height-safe . 14) (min-pixel-width-safe . 14)) leaf (pixel-width . 591) (pixel-height . 1358) (total-width . 84) (total-height . 97) (normal-height . 1.0) (normal-width . 1.0) (buffer ".emacs" (selected) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 3 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 25648) (start . 23573))) (((minibuffer . t) (fontsize . 0) (font . "-*-Menlo-regular-normal-normal-*-12-*-*-*-m-0-iso10646-1") (child-frame-border-width) (vertical-scroll-bars . right) (horizontal-scroll-bars) (line-spacing) (no-special-glyphs) (undecorated) (ns-appearance) (ns-transparent-titlebar) (z-group) (no-focus-on-map) (no-accept-focus) (menu-bar-lines . 1) (tab-bar-lines . 0) (tool-bar-lines . 0) (title) (icon-type) (scroll-bar-height . 15) (alpha-background) (fullscreen) (background-mode . light) (font-parameter . "-*-Menlo-normal-normal-normal-*-12-*-*-*-m-0-iso10646-1") (environment) (root-p . t) (title-prefix-suffix . "-Root") (sticky) (last-focus-update . t) (frameset--id . "5E59-10C5-3834-4B6D") (frameset--mini t . t) (height . 48) (width . 80) (modeline . t) (unsplittable) (left . 953) (top . 239) (icon-name) (visibility . t) (tool-bar-position . top)) ((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 7) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 56) (min-pixel-width . 70) (min-pixel-height-ignore . 28) (min-pixel-width-ignore . 49) (min-pixel-height-safe . 14) (min-pixel-width-safe . 14)) leaf (pixel-width . 591) (pixel-height . 658) (total-width . 84) (total-height . 47) (normal-height . 1.0) (normal-width . 1.0) (buffer ".emacs" (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 3 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 21969) (start . 21961)) (prev-buffers ("*scratch*" 1 3))))])

;; Buffer section -- buffers listed in same order as in buffer list:
(desktop-create-buffer 208
  "/System/Volumes/Data/Swing/private/tanzer/Dotfiles/.emacs"
  ".emacs"
  'emacs-lisp-mode
  '(font-lock-mode display-fill-column-indicator-mode eldoc-mode)
  21969
  '(nil nil)
  nil
  nil
  '((buffer-display-time 25852 23177 761046 0) (buffer-file-coding-system . utf-8-unix))
  '((mark-ring nil)))

[.emacs.desktop.2 (text/x-lisp, attachement)]
;; -*- mode: emacs-lisp; lexical-binding:t; coding: utf-8-emacs; -*-
;; --------------------------------------------------------------------------
;; Desktop File for Emacs
;; --------------------------------------------------------------------------
;; Created Sat Sep  9 12:44:32 2023
;; Desktop file format version 208
;; Emacs version 29.1

;; Global section:
(setq desktop-saved-frameset [frameset 1 (25852 23200 193299 0) (desktop . "208") "tanzer <at> CTs-MBA-M1.c10a.cluster" nil nil ((((minibuffer . t) (fontsize . 0) (font . "-*-Menlo-regular-normal-normal-*-12-*-*-*-m-0-iso10646-1") (font-parameter . "-*-Menlo-normal-normal-normal-*-12-*-*-*-m-0-iso10646-1") (child-frame-border-width) (vertical-scroll-bars . right) (horizontal-scroll-bars) (line-spacing) (no-special-glyphs) (undecorated) (ns-appearance) (ns-transparent-titlebar) (z-group) (no-focus-on-map) (no-accept-focus) (menu-bar-lines . 1) (tab-bar-lines . 0) (tool-bar-lines . 0) (title) (icon-type) (scroll-bar-height . 15) (alpha-background) (fullscreen) (sticky) (background-mode . light) (visibility . t) (last-focus-update . t) (frameset--id . "984C-20C7-9E97-83AF") (frameset--mini t) (modeline . t) (unsplittable) (icon-name) (tool-bar-position . top) (height . 98) (width . 80) (left . 1945) (top . 45)) ((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 7) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 56) (min-pixel-width . 70) (min-pixel-height-ignore . 28) (min-pixel-width-ignore . 49) (min-pixel-height-safe . 14) (min-pixel-width-safe . 14)) leaf (pixel-width . 591) (pixel-height . 1358) (total-width . 84) (total-height . 97) (normal-height . 1.0) (normal-width . 1.0) (buffer ".emacs" (selected) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 3 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 25648) (start . 23573))) (((minibuffer . t) (fontsize . 0) (font . "-*-Menlo-regular-normal-normal-*-12-*-*-*-m-0-iso10646-1") (child-frame-border-width) (vertical-scroll-bars . right) (horizontal-scroll-bars) (line-spacing) (no-special-glyphs) (undecorated) (ns-appearance) (ns-transparent-titlebar) (z-group) (no-focus-on-map) (no-accept-focus) (menu-bar-lines . 1) (tab-bar-lines . 0) (tool-bar-lines . 0) (title) (icon-type) (scroll-bar-height . 15) (alpha-background) (fullscreen) (background-mode . light) (font-parameter . "-*-Menlo-normal-normal-normal-*-12-*-*-*-m-0-iso10646-1") (environment) (root-p . t) (title-prefix-suffix . "-Root") (sticky) (last-focus-update . t) (frameset--id . "5E59-10C5-3834-4B6D") (frameset--mini t . t) (modeline . t) (unsplittable) (icon-name) (visibility . t) (tool-bar-position . top) (height . 48) (width . 80) (left . 973) (top . 249)) ((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 7) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 56) (min-pixel-width . 70) (min-pixel-height-ignore . 28) (min-pixel-width-ignore . 49) (min-pixel-height-safe . 14) (min-pixel-width-safe . 14)) leaf (pixel-width . 591) (pixel-height . 658) (total-width . 84) (total-height . 47) (normal-height . 1.0) (normal-width . 1.0) (buffer ".emacs" (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 3 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 21969) (start . 21961)) (prev-buffers ("*scratch*" 1 1))))])

;; Buffer section -- buffers listed in same order as in buffer list:
(desktop-create-buffer 208
  "/System/Volumes/Data/Swing/private/tanzer/Dotfiles/.emacs"
  ".emacs"
  'emacs-lisp-mode
  '(eldoc-mode display-fill-column-indicator-mode font-lock-mode)
  21969
  '(nil nil)
  nil
  nil
  '((buffer-display-time 25852 23199 264537 0) (buffer-file-coding-system . utf-8-unix))
  '((mark-ring nil)))

[.emacs.desktop.3 (text/x-lisp, attachement)]
;; -*- mode: emacs-lisp; lexical-binding:t; coding: utf-8-emacs; -*-
;; --------------------------------------------------------------------------
;; Desktop File for Emacs
;; --------------------------------------------------------------------------
;; Created Sat Sep  9 12:44:48 2023
;; Desktop file format version 208
;; Emacs version 29.1

;; Global section:
(setq desktop-saved-frameset [frameset 1 (25852 23216 348689 0) (desktop . "208") "tanzer <at> CTs-MBA-M1.c10a.cluster" nil nil ((((minibuffer . t) (fontsize . 0) (font . "-*-Menlo-regular-normal-normal-*-12-*-*-*-m-0-iso10646-1") (font-parameter . "-*-Menlo-normal-normal-normal-*-12-*-*-*-m-0-iso10646-1") (child-frame-border-width) (vertical-scroll-bars . right) (horizontal-scroll-bars) (line-spacing) (no-special-glyphs) (undecorated) (ns-appearance) (ns-transparent-titlebar) (z-group) (no-focus-on-map) (no-accept-focus) (menu-bar-lines . 1) (tab-bar-lines . 0) (tool-bar-lines . 0) (title) (icon-type) (scroll-bar-height . 15) (alpha-background) (fullscreen) (sticky) (background-mode . light) (visibility . t) (last-focus-update . t) (frameset--id . "984C-20C7-9E97-83AF") (frameset--mini t) (modeline . t) (unsplittable) (icon-name) (tool-bar-position . top) (height . 98) (width . 80) (left . 1985) (top . 65)) ((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 7) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 56) (min-pixel-width . 70) (min-pixel-height-ignore . 28) (min-pixel-width-ignore . 49) (min-pixel-height-safe . 14) (min-pixel-width-safe . 14)) leaf (pixel-width . 591) (pixel-height . 1358) (total-width . 84) (total-height . 97) (normal-height . 1.0) (normal-width . 1.0) (buffer ".emacs" (selected) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 3 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 25648) (start . 23573))) (((minibuffer . t) (fontsize . 0) (font . "-*-Menlo-regular-normal-normal-*-12-*-*-*-m-0-iso10646-1") (child-frame-border-width) (vertical-scroll-bars . right) (horizontal-scroll-bars) (line-spacing) (no-special-glyphs) (undecorated) (ns-appearance) (ns-transparent-titlebar) (z-group) (no-focus-on-map) (no-accept-focus) (menu-bar-lines . 1) (tab-bar-lines . 0) (tool-bar-lines . 0) (title) (icon-type) (scroll-bar-height . 15) (alpha-background) (fullscreen) (background-mode . light) (font-parameter . "-*-Menlo-normal-normal-normal-*-12-*-*-*-m-0-iso10646-1") (environment) (root-p . t) (title-prefix-suffix . "-Root") (sticky) (last-focus-update . t) (frameset--id . "5E59-10C5-3834-4B6D") (frameset--mini t . t) (modeline . t) (unsplittable) (icon-name) (visibility . t) (tool-bar-position . top) (height . 48) (width . 80) (left . 993) (top . 259)) ((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 7) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 56) (min-pixel-width . 70) (min-pixel-height-ignore . 28) (min-pixel-width-ignore . 49) (min-pixel-height-safe . 14) (min-pixel-width-safe . 14)) leaf (pixel-width . 591) (pixel-height . 658) (total-width . 84) (total-height . 47) (normal-height . 1.0) (normal-width . 1.0) (buffer ".emacs" (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 3 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 21969) (start . 21961)) (prev-buffers ("*scratch*" 1 1))))])

;; Buffer section -- buffers listed in same order as in buffer list:
(desktop-create-buffer 208
  "/System/Volumes/Data/Swing/private/tanzer/Dotfiles/.emacs"
  ".emacs"
  'emacs-lisp-mode
  '(font-lock-mode display-fill-column-indicator-mode eldoc-mode)
  21969
  '(nil nil)
  nil
  nil
  '((buffer-display-time 25852 23212 856885 0) (buffer-file-coding-system . utf-8-unix))
  '((mark-ring nil)))


Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65840; Package emacs. (Sat, 09 Sep 2023 13:00:02 GMT) Full text and rfc822 format available.

Message #8 received at 65840 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: tanzer <at> gg32.com, Po Lu <luangruo <at> yahoo.com>
Cc: 65840 <at> debbugs.gnu.org
Subject: Re: bug#65840: 29.1; desktop-load moves frames to the right and down
Date: Sat, 09 Sep 2023 15:59:38 +0300
> Date: Sat, 09 Sep 2023 12:32:42 -0000
> From: tanzer--- via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> In GNU Emacs 29.1, desktop-load moves frames to the right and down.

This is probably specific to macOS, or maybe even to your window
manager, because it doesn't happen to me, and I'm a heavy user of
desktop.el.

When you say "In GNU Emacs 29.1", do you mean this issue is specific
to Emacs 29.1, and does not happen with Emacs 28 and older?

> The three attachements show the shifts in frame positions:
> 
> - .emacs.desktop.1 contains the correct frame positions after using
>   `desktop-save` and copying .emacs.desktop to .emacs.desktop.1
> 
> - Loading .emacs.desktop.1 into Emacs 29 results in the frames being
>   shifted. On exiting Emacs 29, the shifted positions are stored in
>   .emacs.desktop and copied to .emacs.desktop.2.
> 
> - Loading .emacs.desktop.2 into Emacs 29 results in the frames being
>   shifted again. On exiting Emacs 29, the shifted positions are stored
>   in .emacs.desktop and copied to .emacs.desktop.3.
> 
> - Loading any of these .emacs.desktop files into Emacs 28.2 results in
>   the expected frame positions (in case of .2 and .3 the positions
>   incorrectly shifted to by Emacs 29).

You are aware, I hope, that on X and similar GUI systems, the
coordinates of the frames we request from the window-manager are
advisory: the WM doesn't have to adhere to what we request.  I'm not
sure what you see is not a manifestation of that.

Po Lu, can you chime in, please?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65840; Package emacs. (Sat, 09 Sep 2023 13:36:01 GMT) Full text and rfc822 format available.

Message #11 received at 65840 <at> debbugs.gnu.org (full text, mbox):

From: Po Lu <luangruo <at> yahoo.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 65840 <at> debbugs.gnu.org, tanzer <at> gg32.com
Subject: Re: bug#65840: 29.1; desktop-load moves frames to the right and down
Date: Sat, 09 Sep 2023 21:35:01 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

> You are aware, I hope, that on X and similar GUI systems, the
> coordinates of the frames we request from the window-manager are
> advisory: the WM doesn't have to adhere to what we request.  I'm not
> sure what you see is not a manifestation of that.
>
> Po Lu, can you chime in, please?

Thanks, but I'm not well versed in Mac OS window management.  I would
begin an investigation into this behavior by calling:

  (set-frame-position f 10 10)

waiting for a MOVE_FRAME_EVENT to arrive:

      emacsframe->left_pos = (NSMinX (r)
			      - NS_PARENT_WINDOW_LEFT_POS (emacsframe));
      emacsframe->top_pos = (NS_PARENT_WINDOW_TOP_POS (emacsframe)
			     - NSMaxY (r));

and attempting to establish which factors influence both the position
set by ns_set_offset and that returned within the consequent
MOVE_FRAME_EVENT.  With that information at hand, it should become
possible to then devise a method of compensating for such factors, so as
to guarantee that the frame position through `set-frame-position' is
reflected faithfully within the frame's `left' and `top' properties,
insofar as the window manager elects to respect said position.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65840; Package emacs. (Sat, 09 Sep 2023 14:48:02 GMT) Full text and rfc822 format available.

Message #14 received at 65840 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Christian Tanzer <tanzer <at> gg32.com>
Cc: 65840 <at> debbugs.gnu.org
Subject: Re: bug#65840: 29.1; desktop-load moves frames to the right and down
Date: Sat, 09 Sep 2023 17:47:37 +0300
[Please use Reply All to reply, to keep the bug tracker CC'ed.]

> From: Christian Tanzer <tanzer <at> gg32.com>
> Date: Sat, 9 Sep 2023 14:47:34 +0100
> 
> On 09.09.2023, at 13:59, Eli Zaretskii <eliz <at> gnu.org> wrote:
> > 
> >> Date: Sat, 09 Sep 2023 12:32:42 -0000
> >> From: tanzer--- via "Bug reports for GNU Emacs,
> >> the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> >> 
> >> In GNU Emacs 29.1, desktop-load moves frames to the right and down.
> > 
> > This is probably specific to macOS, or maybe even to your window
> > manager, because it doesn't happen to me, and I'm a heavy user of
> > desktop.el.
> 
> I am using plain macOS without any additional window manager.
> 
> > When you say "In GNU Emacs 29.1", do you mean this issue is specific
> > to Emacs 29.1, and does not happen with Emacs 28 and older?
> 
> It doesn’t happen on 28.2 or older. 

So it could be due to massive changes in the macOS display code we did
in Emacs 29.

> 
> >> The three attachements show the shifts in frame positions:
> >> 
> >> - .emacs.desktop.1 contains the correct frame positions after using
> >>  `desktop-save` and copying .emacs.desktop to .emacs.desktop.1
> >> 
> >> - Loading .emacs.desktop.1 into Emacs 29 results in the frames being
> >>  shifted. On exiting Emacs 29, the shifted positions are stored in
> >>  .emacs.desktop and copied to .emacs.desktop.2.
> >> 
> >> - Loading .emacs.desktop.2 into Emacs 29 results in the frames being
> >>  shifted again. On exiting Emacs 29, the shifted positions are stored
> >>  in .emacs.desktop and copied to .emacs.desktop.3.
> >> 
> >> - Loading any of these .emacs.desktop files into Emacs 28.2 results in
> >>  the expected frame positions (in case of .2 and .3 the positions
> >>  incorrectly shifted to by Emacs 29).
> > 
> > You are aware, I hope, that on X and similar GUI systems, the
> > coordinates of the frames we request from the window-manager are
> > advisory: the WM doesn't have to adhere to what we request.  I'm not
> > sure what you see is not a manifestation of that.
> 
> I am aware of that but there is a clear regression here. 
> 
> Loading the same .emacs.desktop in 28.2 works as expected while in 29.1 all frames are shifted (one of my test frames first to behind the dock and then partly outside the visible screen). In 29.1, each load/save cycle of the .emacs.desktop will shift all the frames a bit farther right and down. 
> 
> If the WM was the real culprit I would expect the version of Emacs to be irrelevant!
> 
> For me, the desktop machinery started getting flaky with Emacs 28.1 which crashes when reading larger desktop files written by Emacs 27. Emacs 29.1 still shows that behavior. Unfortunately I have not been able to find a small reproducible test case for these crashes.
> 
> Both 28.2 and 29.1 work with a smaller desktop file that I created with 29.1 but then I noticed the frames being shifted by each restart of 29.1, which 28.2 doesn’t do.
> 
> I don’t want to be stuck with Emacs 27 and I am getting nervous about the desktop problems of 28 and 29.

Hopefully, the advice posted by Po Lu could lead us to understanding
the problem.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65840; Package emacs. (Wed, 13 Sep 2023 05:10:01 GMT) Full text and rfc822 format available.

Message #17 received at 65840 <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Po Lu <luangruo <at> yahoo.com>, 65840 <at> debbugs.gnu.org, tanzer <at> gg32.com
Subject: Re: bug#65840: 29.1; desktop-load moves frames to the right and down
Date: Wed, 13 Sep 2023 07:09:38 +0200
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Date: Sat, 09 Sep 2023 12:32:42 -0000
>> From: tanzer--- via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>> 
>> In GNU Emacs 29.1, desktop-load moves frames to the right and down.
>
> This is probably specific to macOS, or maybe even to your window
> manager, because it doesn't happen to me, and I'm a heavy user of
> desktop.el.

I'm afraid I can't reproduce this either, on Ventura/Big Sur, and I
haven't noticed something like this in "real life" either.

I guess this wasn't with emacs -Q, or was it?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65840; Package emacs. (Wed, 13 Sep 2023 05:49:02 GMT) Full text and rfc822 format available.

Message #20 received at 65840 <at> debbugs.gnu.org (full text, mbox):

From: Po Lu <luangruo <at> yahoo.com>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 65840 <at> debbugs.gnu.org, tanzer <at> gg32.com
Subject: Re: bug#65840: 29.1; desktop-load moves frames to the right and down
Date: Wed, 13 Sep 2023 13:48:28 +0800
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:

> I'm afraid I can't reproduce this either, on Ventura/Big Sur, and I
> haven't noticed something like this in "real life" either.
>
> I guess this wasn't with emacs -Q, or was it?

There's a popular series of patches for Emacs under Mac OS which
modifies various aspects of its window management behavior, such as by
disabling the title bar.  Tanzer, are you using any of these, by
happenstance?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65840; Package emacs. (Wed, 13 Sep 2023 18:05:01 GMT) Full text and rfc822 format available.

Message #23 received at 65840 <at> debbugs.gnu.org (full text, mbox):

From: Christian Tanzer <tanzer <at> gg32.com>
To: Po Lu <luangruo <at> yahoo.com>
Cc: Gerd Möllmann <gerd.moellmann <at> gmail.com>,
 Eli Zaretskii <eliz <at> gnu.org>, 65840 <at> debbugs.gnu.org
Subject: Re: bug#65840: 29.1; desktop-load moves frames to the right and down
Date: Wed, 13 Sep 2023 19:04:09 +0100
On 13.09.2023, at 08:30, Po Lu <luangruo <at> yahoo.com> wrote:
> 
> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
> 
>> I'm afraid I can't reproduce this either, on Ventura/Big Sur, and I
>> haven't noticed something like this in "real life" either.
>> 
>> I guess this wasn't with emacs -Q, or was it?
> 
> There's a popular series of patches for Emacs under Mac OS which
> modifies various aspects of its window management behavior, such as by
> disabling the title bar.  Tanzer, are you using any of these, by
> happenstance?

My Emacs came precompiled from https://emacsformacosx.com as linked to by gnu.org/emacs...

I haven’t installed any other Emacs packages but use a substantial elisp library of my own.

I’ve disabled the Emacs tool bar but each frame has a title bar; the menu bar lives at the top of the screen like for any macOS application. 

All that is the same for Emacs 27, 28, and 29.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65840; Package emacs. (Wed, 13 Sep 2023 18:29:01 GMT) Full text and rfc822 format available.

Message #26 received at 65840 <at> debbugs.gnu.org (full text, mbox):

From: Christian Tanzer <tanzer <at> gg32.com>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: Po Lu <luangruo <at> yahoo.com>, Eli Zaretskii <eliz <at> gnu.org>,
 65840 <at> debbugs.gnu.org
Subject: Re: bug#65840: 29.1; desktop-load moves frames to the right and down
Date: Wed, 13 Sep 2023 19:27:52 +0100
On 13.09.2023, at 06:09, Gerd Möllmann <gerd.moellmann <at> gmail.com> wrote:
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
>>> Date: Sat, 09 Sep 2023 12:32:42 -0000
>>> From: tanzer--- via "Bug reports for GNU Emacs,
>>> the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>>> 
>>> In GNU Emacs 29.1, desktop-load moves frames to the right and down.
>> 
>> This is probably specific to macOS, or maybe even to your window
>> manager, because it doesn't happen to me, and I'm a heavy user of
>> desktop.el.
> 
> I'm afraid I can't reproduce this either, on Ventura/Big Sur, and I
> haven't noticed something like this in "real life" either.
> 
> I guess this wasn't with emacs -Q, or was it?

No, it wasn’t.

And with -Q the frame positions are restored correctly.

There is still the question why Emacs 29 behaves differently then 28 or earlier in my environment and shifts the frames upon desktop-read.

Any hints what I should look for in my elisp code in this regard?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65840; Package emacs. (Wed, 13 Sep 2023 18:53:01 GMT) Full text and rfc822 format available.

Message #29 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Christian Tanzer via "Bug reports for GNU Emacs, the Swiss army knife of
 text editors" <bug-gnu-emacs <at> gnu.org>
Cc: Po Lu <luangruo <at> yahoo.com>, Eli Zaretskii <eliz <at> gnu.org>,
 65840 <at> debbugs.gnu.org, Christian Tanzer <tanzer <at> gg32.com>
Subject: Re: bug#65840: 29.1; desktop-load moves frames to the right and down
Date: Wed, 13 Sep 2023 20:51:43 +0200
Christian Tanzer via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs <at> gnu.org> writes:

> On 13.09.2023, at 06:09, Gerd Möllmann <gerd.moellmann <at> gmail.com> wrote:
>> 
>> I guess this wasn't with emacs -Q, or was it?
>
> No, it wasn’t.
>
> And with -Q the frame positions are restored correctly.

Ok, thanks.

> There is still the question why Emacs 29 behaves differently then 28
> or earlier in my environment and shifts the frames upon desktop-read.
>
> Any hints what I should look for in my elisp code in this regard?

Not really, I'm afraid.  Maybe someone else has an idea?

The usual way I find out where something this comes from is a binary
search: disable half of your configuration, and see if the bug is still
there.  If yes, the bug is in the half that's still present.  And so
on...

Maybe a variant of the zsh script below could be helpful for that.  I
wrote it for this bug report to check the behavior of different Emacs
versions on different platforms.

#! /usr/bin/env zsh

emacs=(~/emacs/29/src/emacs -Q)

save_desktop=(--eval '(desktop-save ".")')
read_desktop=(--eval '(desktop-read ".")')
print=(--eval "(print (frame-position (selected-frame)) #'external-debugging-output)")
kill=(--eval '(kill-emacs)')

rm -f .emacs.desktop
$emacs -Q $save_desktop $print $kill
$emacs -Q $read_desktop $print $kill

The script prints the frame position before saving a desktop, and after
restoring it.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65840; Package emacs. (Wed, 13 Sep 2023 18:53:02 GMT) Full text and rfc822 format available.

This bug report was last modified 233 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.