Hi ! Probable bug in void xfns.c → x_real_pos_and_offsets interpreting _NET_FRAME_EXTENTS set in Application Window Properties by WM. Current visible Emacs frame parameters: _NET_FRAME_EXTENTS(CARDINAL) = 5, 5, 29, 5 That means these are Emacs frame border and frame title thicknesses. The Window Manager MUST set _NET_FRAME_EXTENTS to the extents of the window's frame. left, right, top and bottom are widths of the respective borders added by the Window Manager. ----- Original Reference: [[ https://specifications.freedesktop.org/wm-spec/1.4/ar01s05.html][Application Window Properties]] On Tue, 09 Jan 2024 21:58:10 +0200 Eli Zaretskii wrote: > Ping! Ping! Can we make some progress here, please? > > > Cc: 67753@debbugs.gnu.org > > Date: Sat, 23 Dec 2023 11:05:22 +0200 > > From: Eli Zaretskii > > > > Ping! Po Lu, can we make some progress here? > > > > > From: soliidne@gmail.com > > > Date: Sat, 16 Dec 2023 14:53:47 +0200 > > > Cc: Eli Zaretskii , 67753@debbugs.gnu.org > > > > > > On Sat, 16 Dec 2023 20:18:07 +0800 > > > Po Lu wrote: > > > > > > > Eli Zaretskii writes: > > > > > > > > >> From: soliidne@gmail.com > > > > >> Date: Sun, 10 Dec 2023 19:45:49 +0200 > > > > >> > > > > >> Always for all frames, position constantly affected by: left > > > > >> - 5 and top - 29. It seems like a bug, but it could also be > > > > >> an oversight. Can someone comment please ? > > > > >> > > > > >> Thanks ! > > > > >> > > > > >> xfwm4 4.18.0 > > > > >> xorg-server 21.1.9 > > > > >> Emacs 28.2, 29.1 > > > > >> Archlinux > > > > >> > > > > >> How to reproduce: > > > > >> ################# > > > > >> > > > > >> $ emacs --fg-daemon -Q > > > > >> ... > > > > >> Starting Emacs daemon. > > > > >> $ emacsclient --eval "(make-frame-on-display \":0\")" > > > > >> # > > > > >> $ emacsclient --eval "(frame-position (nth 0 (frame-list)))" > > > > >> (185 . 130) > > > > >> $ emacsclient --eval "(make-frame-invisible (nth 0 > > > > >> (frame-list)) t)" nil > > > > >> $ emacsclient --eval "(frame-position (nth 0 (frame-list)))" > > > > >> (180 . 101) > > > > >> > > > > >> Moving frame to left-top corner > > > > >> ############################### > > > > >> > > > > >> $ emacsclient --eval "(make-frame-visible (nth 0 > > > > >> (frame-list)))" # > > > >> 0x558cf8d7d120> $ emacsclient --eval "(frame-position (nth 0 > > > > >> 0x558cf8d7d120> (frame-list)))" > > > > >> (0 . 0) > > > > >> $ emacsclient --eval "(make-frame-invisible (nth 0 > > > > >> (frame-list)) t)" nil > > > > >> $ emacsclient --eval "(frame-position (nth 0 (frame-list)))" > > > > >> (-5 . -29) > > > > >> $ emacsclient --eval "(make-frame-visible (nth 0 > > > > >> (frame-list)))" # > > > >> 0x558cf8d7d120> $ emacsclient --eval "(frame-position (nth 0 > > > > >> 0x558cf8d7d120> (frame-list)))" > > > > >> (-5 . 0) > > > > >> $ emacsclient --eval "(make-frame-invisible (nth 0 > > > > >> (frame-list)) t)" nil > > > > >> $ emacsclient --eval "(frame-position (nth 0 (frame-list)))" > > > > >> (-10 . -29) > > > > >> $ emacsclient --eval "(make-frame-visible (nth 0 > > > > >> (frame-list)))" # > > > >> 0x558cf8d7d120> $ emacsclient --eval "(frame-position (nth 0 > > > > >> 0x558cf8d7d120> (frame-list)))" > > > > >> (-10 . 0) > > > > > > > > > > Po Lu, any comments? > > > > > > > > Did the OP mention the toolkit Emacs was built with? > > > > > > $ emacsclient --eval "system-configuration-options" > > > "--sysconfdir=/etc --prefix=/usr --libexecdir=/usr/lib > > > --localstatedir=/var --with-cairo --with-harfbuzz - > > > -with-libsystemd --with-modules --with-x-toolkit=gtk3 > > > 'CFLAGS=-march=x86-64 -mtune=generic -O2 - pipe -fno-plt > > > -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat > > > -Werror=format-security -fstack-clash-protection -fcf-protection > > > -g -ffile-prefix-map=/build/emacs/src=/usr/src/debug/emacs - > > > flto=auto' > > > 'LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now > > > -flto=auto'" > > > > > > > >