unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
@ 2024-11-23 18:28 Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-11-30 10:23 ` Eli Zaretskii
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-11-23 18:28 UTC (permalink / raw)
  To: 74496

[-- Attachment #1: Type: text/plain, Size: 901 bytes --]


Hello,

When the ctwm window manager is restarted, the emacs fullscreen frame,
set with `F11' key, shifts up by approximately 50 pixels and shows the
desktop background.  The right edge of the frame shifts a little to the
left.  Expect the fullscreen frame to remain unchanged.

To demonstrate,

 1. start, `emacs -Q'
 2. enlarge frame to fullscreen, `F11'
 3. call, `Restart CTWM' from window manager menu on X
 4. see the fullscreen frame bottom edge is shifted up 50 pixels approximately

 X. expect to see no change to fullscreen frame when ctwm restarts
    for comparison, a fullscreen xterm frame remains unchanged when ctwm restarts

=> http://sdf.org/~van.ly/img/emacs-fullscreen-frame-0.webp .
=> http://sdf.org/~van.ly/img/emacs-fullscreen-frame-1-shifts-up.webp .

=> http://mail-index.netbsd.org/netbsd-users/2024/11/23/msg031998.html discussion about shifted fullscreen frame behavior


[-- Attachment #2: gnu emacs bug diagnostics --]
[-- Type: application/octet-stream, Size: 4482 bytes --]

From: xxx@xxx.mail-host-address-is-not-set
To: bug-gnu-emacs@gnu.org
Subject: 30.0.91; x
X-Debbugs-Cc: 
--text follows this line--




In GNU Emacs 30.0.91 (build 2, x86_64--netbsd, X toolkit, cairo version
 1.18.0) of 2024-09-27 built on xxx
Windowing system distributor 'The X.Org Foundation', version 11.0.12101014
System Description: NetBSD xxx 10.0_STABLE NetBSD 10.0_STABLE (GENERIC) #1: Thu Nov  7 15:18:42 AEDT 2024  xxx@xxx:/u/o/n10/amd64/sys/arch/amd64/compile/GENERIC amd64

Configured using:
 'configure --srcdir=/u/xxx/src/emacs/30.0.91 --localstatedir=/var
 --disable-autodepend --with-native-compilation --without-ns --with-rsvg
 --without-imagemagick --without-xaw3d --without-toolkit-scroll-bars
 --x-includes=/usr/X11R7/include --x-libraries=/usr/X11R7/lib
 --with-x-toolkit=lu --prefix=/usr/local --build=x86_64--netbsd
 --host=x86_64--netbsd --infodir=/usr/pkg/info --mandir=/usr/pkg/man
 --enable-option-checking=yes 'CFLAGS=-O2 -I/usr/pkg/include/cairo
 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/freetype2
 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0
 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include
 -I/usr/pkg/include/harfbuzz -I/usr/X11R7/include/libdrm'
 'CPPFLAGS=-DTERMINFO -I/usr/pkg/include -I/usr/include
 -I/usr/pkg/include/freetype2 -I/usr/pkg/include/glib-2.0
 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include
 -I/usr/X11R7/include -I/usr/pkg/include/harfbuzz
 -I/usr/X11R7/include/libdrm' 'LDFLAGS=-Wl,-R/usr/pkg/gcc13/lib
 -Wl,-zrelro -L/usr/pkg/lib -lcairo -L/usr/lib -Wl,-R/usr/lib
 -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib
 -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -lgnutls''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GNUTLS GSETTINGS HARFBUZZ JPEG LCMS2
LIBOTF LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE PDUMPER PNG RSVG SOUND
SQLITE3 THREADS TIFF TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM LUCID
ZLIB

Important settings:
  value of $LC_COLLATE: en_AU.UTF-8
  value of $LC_CTYPE: en_AU.UTF-8
  value of $LC_MESSAGES: en_AU.UTF-8
  value of $LC_MONETARY: en_AU.UTF-8
  value of $LC_NUMERIC: en_AU.UTF-8
  value of $LC_TIME: en_AU.UTF-8
  value of $LANG: en_AU.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search time-date subr-x mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
cl-loaddefs cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd touch-screen 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 dbusbind kqueue lcms2
dynamic-setting system-font-setting font-render-setting cairo x-toolkit
xinput2 x multi-tty move-toolbar make-network-process native-compile
emacs)

Memory information:
((conses 16 49491 9439) (symbols 48 5360 0) (strings 32 14355 2416)
 (string-bytes 1 402093) (vectors 16 8999)
 (vector-slots 8 125392 10454) (floats 8 24 2) (intervals 56 330 0)
 (buffers 992 10))

[-- Attachment #3: Type: text/plain, Size: 9 bytes --]



-- 
vl

^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-11-23 18:28 bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-11-30 10:23 ` Eli Zaretskii
  2024-11-30 10:36   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Eli Zaretskii @ 2024-11-30 10:23 UTC (permalink / raw)
  To: Van Ly, martin rudalics; +Cc: 74496

> Date: Sat, 23 Nov 2024 18:28:16 +0000
> From:  Van Ly via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> 
> When the ctwm window manager is restarted, the emacs fullscreen frame,
> set with `F11' key, shifts up by approximately 50 pixels and shows the
> desktop background.  The right edge of the frame shifts a little to the
> left.  Expect the fullscreen frame to remain unchanged.
> 
> To demonstrate,
> 
>  1. start, `emacs -Q'
>  2. enlarge frame to fullscreen, `F11'
>  3. call, `Restart CTWM' from window manager menu on X
>  4. see the fullscreen frame bottom edge is shifted up 50 pixels approximately
> 
>  X. expect to see no change to fullscreen frame when ctwm restarts
>     for comparison, a fullscreen xterm frame remains unchanged when ctwm restarts
> 
> => http://sdf.org/~van.ly/img/emacs-fullscreen-frame-0.webp .
> => http://sdf.org/~van.ly/img/emacs-fullscreen-frame-1-shifts-up.webp .
> 
> => http://mail-index.netbsd.org/netbsd-users/2024/11/23/msg031998.html discussion about shifted fullscreen frame behavior

Martin, any suggestions?





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-11-30 10:23 ` Eli Zaretskii
@ 2024-11-30 10:36   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-11-30 13:03     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-11-30 10:36 UTC (permalink / raw)
  To: Eli Zaretskii, Van Ly; +Cc: 74496

 > Martin, any suggestions?

Maybe setting ‘frame-resize-pixelwise’ to t could help.  Some window
managers respect size hint increments even for fullscreen frames.

martin

^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-11-30 10:36   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-11-30 13:03     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-11-30 16:53       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-11-30 13:03 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


> Maybe setting ‘frame-resize-pixelwise’ to t could help.

Setting that variable to t had no change on persisting the fullscreen frame.

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-11-30 13:03     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-11-30 16:53       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-11-30 18:21         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-11-30 16:53 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 > Setting that variable to t had no change on persisting the fullscreen frame.

What does (frame-geometry) evaluate to before and after restarting CTWM?
What does (frame-parameter nil 'fullscreen) evaluate to before and after
restarting CTWM?  Does a maximized frame change too?

Thanks, martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-11-30 16:53       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-11-30 18:21         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-11-30 19:01           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-11-30 18:21 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


>
> What does (frame-geometry) evaluate to before and after restarting CTWM?
> What does (frame-parameter nil 'fullscreen) evaluate to before and after
> restarting CTWM?  Does a maximized frame change too?
>

Having the ctwm maximized zoom frame lets both kinds of full frames
persist across ctwm restart.  Then, only having full frames be of the
F11 fullscreen type lets the fullscreen persist across ctwm restart.

The result on Line 27 below seems to be key.

Thanks.

   1  ;; A. F11 fullscreen before
   2  (frame-geometry)
   3  ((outer-position -3 . -3) (outer-size 1920 . 1080) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 0 . 0) (tab-bar-size 1918 . 14) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 0 . 0) (internal-border-width . 1))
   4
   5  ;; Z. F11 fullscreen after
   6  (frame-geometry)
   7  ((outer-position -3 . -3) (outer-size 1920 . 1080) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 0 . 0) (tab-bar-size 1918 . 14) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 0 . 0) (internal-border-width . 1))
   8
   9
  10  ;; A. F11 fullscreen before
  11  (frame-parameter nil 'fullscreen) ; => fullboth
  12
  13
  14  ;; Z. F11 fullscreen after
  15  (frame-parameter nil 'fullscreen) ; => nil
  16
  17
  18  ;; A. ctwm max zoom before
  19  (frame-geometry)
  20  ((outer-position 0 . 0) (outer-size 1914 . 1074) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 0 . 0) (tab-bar-size 1912 . 14) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 0 . 0) (internal-border-width . 1))
  21
  22  ;; Z. ctwm max zoom after
  23  (frame-geometry)
  24  ((outer-position 0 . 0) (outer-size 1914 . 1074) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 0 . 0) (tab-bar-size 1912 . 14) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 0 . 0) (internal-border-width . 1))
  25
  26  ;; A. ctwm max zoom before
=>27  (frame-parameter nil 'fullscreen) ; => maximized
  28
  29  ;; Z. ctwm max zoom after
  30  (frame-parameter nil 'fullscreen) ; => nil


-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-11-30 18:21         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-11-30 19:01           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-11-30 19:25             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-11-30 19:01 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 >> What does (frame-geometry) evaluate to before and after restarting CTWM?
 >> What does (frame-parameter nil 'fullscreen) evaluate to before and after
 >> restarting CTWM?  Does a maximized frame change too?
 >>
 >
 > Having the ctwm maximized zoom frame lets both kinds of full frames
 > persist across ctwm restart.  Then, only having full frames be of the
 > F11 fullscreen type lets the fullscreen persist across ctwm restart.
 >
 > The result on Line 27 below seems to be key.

I'm completely lost.  I nowhere see the frame size change - a fullscreen
frame stays at 1920x1080 a maximized one at 1914x1074 and the positions
remain the same too.  OTOH the value of the fullscreen parameter is
reset to nil in both cases.  Can you run xwininfo to check the sizes
before and after restarting CTWM.

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-11-30 19:01           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-11-30 19:25             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-01  8:46               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-11-30 19:25 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

> I'm completely lost.  I nowhere see the frame size change - a fullscreen
> frame stays at 1920x1080 a maximized one at 1914x1074 and the positions
> remain the same too.  OTOH the value of the fullscreen parameter is
> reset to nil in both cases.  Can you run xwininfo to check the sizes
> before and after restarting CTWM.

An emacs session that never uses CTWM's `toggle zoom' to "maximize" the
frame with border decorations showing to full frame on screen will have
the following result.

Line 7 has the frame size change.

   1  ;; A. F11 fullscreen before
   2  (frame-geometry)
   3  ((outer-position -3 . -3) (outer-size 1920 . 1080) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 0 . 0) (tab-bar-size 1918 . 14) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 0 . 0) (internal-border-width . 1))
   4
   5  ;; Z. F11 fullscreen after
   6  (frame-geometry)
=> 7  ((outer-position -3 . -3) (outer-size 1920 . 1072) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 0 . 0) (tab-bar-size 1918 . 14) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 0 . 0) (internal-border-width . 1))
   8
   9  ;; A. F11 fullscreen before
  10  (frame-parameter nil 'fullscreen) ; => fullboth
  11
  12  ;; Z. F11 fullscreen after
  13  (frame-parameter nil 'fullscreen) ;=> nil

Using CTWM's `toggle zoom' to "maximize" allows the F11 fullscreen to
persist across CTWM restart.

Hope that helps.

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-11-30 19:25             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-01  8:46               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-01  9:59                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-01  8:46 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 > An emacs session that never uses CTWM's `toggle zoom' to "maximize"

Could you please explain how that toggle works and how an emacs session
can use it?  IIUC without it you see the problem below.  With it you
don't see the problem.  Does it have any detrimental side-effects to set
that toggle?

 > the
 > frame with border decorations showing to full frame on screen will have
 > the following result.
 >
 > Line 7 has the frame size change.
 >
 >     1  ;; A. F11 fullscreen before
 >     2  (frame-geometry)
 >     3  ((outer-position -3 . -3) (outer-size 1920 . 1080) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 0 . 0) (tab-bar-size 1918 . 14) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 0 . 0) (internal-border-width . 1))
 >     4
 >     5  ;; Z. F11 fullscreen after
 >     6  (frame-geometry)
 > => 7  ((outer-position -3 . -3) (outer-size 1920 . 1072) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 0 . 0) (tab-bar-size 1918 . 14) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 0 . 0) (internal-border-width . 1))

But this is a difference of 8 pixels and nowhere near the 50 pixels you
mentioned earlier.

 >     8
 >     9  ;; A. F11 fullscreen before
 >    10  (frame-parameter nil 'fullscreen) ; => fullboth
 >    11
 >    12  ;; Z. F11 fullscreen after
 >    13  (frame-parameter nil 'fullscreen) ;=> nil
 >
 > Using CTWM's `toggle zoom' to "maximize" allows the F11 fullscreen to
 > persist across CTWM restart.

Not really IIUC.  The 'fullscreen' status is reset in either case.

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-01  8:46               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-01  9:59                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-01 11:05                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-01  9:59 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

>  > An emacs session that never uses CTWM's `toggle zoom' to "maximize"
>
> Could you please explain how that toggle works and how an emacs session
> can use it?  IIUC without it you see the problem below.  With it you
> don't see the problem.  Does it have any detrimental side-effects to set
> that toggle?
>

I use a CTWM keyboard shortcut that pops up a `Window' context menu over
the emacs frame.  Included is a section that lists

 Window
 - Zoom
 - Zoom-V
 - Zoom-H

Using `Window, Zoom' effects the `maximize' operation on the frame, the
frame border shows while the frame occupies all of the screen.  When
this maximized frame is in a CTWM virtual workspace and has as neighbors
that are F11 invoked fullscreen frames, CTWM restart does not cause the
shift at the bottom frame edge upwards by a few pixels.

>  >     5  ;; Z. F11 fullscreen after
>  >     6  (frame-geometry)
>  > => 7  ((outer-position -3 . -3) (outer-size 1920 . 1072) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 0 . 0) (tab-bar-size 1918 . 14) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 0 . 0) (internal-border-width . 1))
>
> But this is a difference of 8 pixels and nowhere near the 50 pixels you
> mentioned earlier.
>

The 50 pixels was my rough guess estimate.  The measured value is 8 pixels.

>  >     8
>  >     9  ;; A. F11 fullscreen before
>  >    10  (frame-parameter nil 'fullscreen) ; => fullboth
>  >    11
>  >    12  ;; Z. F11 fullscreen after
>  >    13  (frame-parameter nil 'fullscreen) ;=> nil
>  >
>  > Using CTWM's `toggle zoom' to "maximize" allows the F11 fullscreen to
>  > persist across CTWM restart.
>
> Not really IIUC.  The 'fullscreen' status is reset in either case.
>

In an emacs session, I arrange for 3 CTWM virtual workspaces to each
display an emacs frame fullscreen invoked by F11.  CTWM restart causes
the bottom edge to shift upwards by 8 pixels.  Undesired behavior.

In a new, quit and start again, emacs session, I arrange for 3 CTWM
virtual workspaces to display 2 emacs frames fullscreen invoked by F11
and 1 emacs frame `maximized' full screen with border edges showing.
CTWM restart does not change how the frames are displayed.  Desired behavior.

Using CTWM's `Window, zoom' that sees the following result lets the F11
fullscreen and `maximized' full screen with border edges persist across
CTWM restart.  Desired behavior.

    =>27  (frame-parameter nil 'fullscreen) ; => maximized

The puzzle is why having only F11 `fullboth' fullscreens will shift the
bottom edge up by 8 pixels on CTWM restart.

Hope that helps.

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-01  9:59                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-01 11:05                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-01 14:26                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-02 15:47                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 2 replies; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-01 11:05 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 > The puzzle is why having only F11 `fullboth' fullscreens will shift the
 > bottom edge up by 8 pixels on CTWM restart.

So I see two problems we have to investigate:

- The fullscreen parameters are reset when restarting CWTM regardless of
   whether the frame was maximized or fullboth.  This means that when you
   do F11, restart CWTM and do F11 again the frame will become fullscreen
   again.  Right?

- The size of fullscreen frames shrinks by 8 pixels unless there is a
   maximized frame present.

IIUC you are using Lucid.  Now in xterm.c there are three instances of

store_frame_param (f, Qfullscreen, lval);

Can you put a breakpoint on each of them, ideally conditioned on lval
equaling Qnil, restart CWTM and post a backtrace of whatever happens.
I'd like to find out what kind of event makes us reset the parameter.

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-01 11:05                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-01 14:26                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-01 17:50                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-02 15:47                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-01 14:26 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


>
> - The fullscreen parameters are reset when restarting CWTM regardless of
>    whether the frame was maximized or fullboth.  This means that when you
>    do F11, restart CWTM and do F11 again the frame will become fullscreen
>    again.  Right?

Yes.

> - The size of fullscreen frames shrinks by 8 pixels unless there is a
>    maximized frame present.
>
> IIUC you are using Lucid.  Now in xterm.c there are three instances of

I use Lucid or Xaw, the bug diagnostics report will show it.

>
> store_frame_param (f, Qfullscreen, lval);
>
> Can you put a breakpoint on each of them, ideally conditioned on lval
> equaling Qnil, restart CWTM and post a backtrace of whatever happens.
> I'd like to find out what kind of event makes us reset the parameter.

I'll need to find and read documentation to figure out how that is to be
done.

Meanwhile, some more observations.  Inside xterm or uxterm the keychord
`fn RET' or `meta RET' will fullscreen and persist across CTWM restart.

Now unrelated to CTWM restart, the following is observed when zooming.

Using the `Window' context menu zoom from CTWM on xterm or uxterm
choosing any of the options `Zoom, Zoom-V, Zoom-H' leaves a 

 - gap at the right and bottom edge for `Zoom',
 - gap at bottom edge for `Zoom-V' and
 - gap at the right edge for `Zoom-H'.

The above suggests CTWM has issues calculating the height and width
dimensions for fullscreen on u/xterm.

Also, from a normal 80x24 u/xterm, when I `Window, Zoom' that results in
the gap at right and bottom edge, then when I keychord `meta RET' the
first time, I get the borderless fullscreen, keychord the second time
and u/xterm returns to a normal 80x24 dimension.

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-01 14:26                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-01 17:50                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-02 16:04                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-01 17:50 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 > Meanwhile, some more observations.  Inside xterm or uxterm the keychord
 > `fn RET' or `meta RET' will fullscreen and persist across CTWM restart.

What does `fn RET' do in an Emacs window?  Or in any other window but
the terminal windows you cite above?

 > Now unrelated to CTWM restart, the following is observed when zooming.

What is zooming?  Just maximizing the window or more?

 > Using the `Window' context menu zoom from CTWM on xterm or uxterm
 > choosing any of the options `Zoom, Zoom-V, Zoom-H' leaves a
 >
 >   - gap at the right and bottom edge for `Zoom',
 >   - gap at bottom edge for `Zoom-V' and
 >   - gap at the right edge for `Zoom-H'.
 >
 > The above suggests CTWM has issues calculating the height and width
 > dimensions for fullscreen on u/xterm.

Usually, terminal windows cannot be really maximized.  They want the
window height be a multiple of their font height + line spacing.

 > Also, from a normal 80x24 u/xterm, when I `Window, Zoom' that results in
 > the gap at right and bottom edge, then when I keychord `meta RET' the
 > first time, I get the borderless fullscreen, keychord the second time
 > and u/xterm returns to a normal 80x24 dimension.

I doubt that a fullscreen terminal can display half a line at the
bottom.  So your borderless fullscreen is likely an artefact.

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-01 11:05                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-01 14:26                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-02 15:47                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-02 16:22                       ` Eli Zaretskii
  2024-12-03  8:24                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 2 replies; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-02 15:47 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

>  > The puzzle is why having only F11 `fullboth' fullscreens will shift the
>  > bottom edge up by 8 pixels on CTWM restart.
>
> So I see two problems we have to investigate:
>
> - The fullscreen parameters are reset when restarting CWTM regardless of
>    whether the frame was maximized or fullboth.  This means that when you
>    do F11, restart CWTM and do F11 again the frame will become fullscreen
>    again.  Right?

Yes.

> - The size of fullscreen frames shrinks by 8 pixels unless there is a
>    maximized frame present.

That was the case when I was evaluating those expressions.  But, now
fullboth and maximized frames will adjust up the bottom edge by 8
pixels.

> IIUC you are using Lucid.  Now in xterm.c there are three instances of
>
> store_frame_param (f, Qfullscreen, lval);
>
> Can you put a breakpoint on each of them, ideally conditioned on lval
> equaling Qnil, restart CWTM and post a backtrace of whatever happens.
> I'd like to find out what kind of event makes us reset the parameter.

I pieced together the following steps to make emacs debuggable.  I'll
need pointers to info pages to make progress.



  a.  make distclean
  b.  configure ... 'CFLAGS=-g3 -ggdb -Og ...'
  c.  make



  i.  start, emacs -Q
  ii. use, M-x gdb



   1  For help, type "help".
   2  Type "apropos word" to search for commands related to "word"...
   3  "0x7f7fff604da0s": not in executable format: file format not recognized
   4  No symbol table is loaded.  Use the "file" command.
   5  Breakpoint 1 (xterm.c:18044) pending.
   6  No symbol table is loaded.  Use the "file" command.
   7  Breakpoint 2 (xterm.c:28275) pending.
   8  No symbol table is loaded.  Use the "file" command.
   9  Breakpoint 3 (xterm.c:28343) pending.
  10  (gdb) run
  11  The target does not support running in non-stop mode.



-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-01 17:50                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-02 16:04                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-03  8:24                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-02 16:04 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

>  > Meanwhile, some more observations.  Inside xterm or uxterm the keychord
>  > `fn RET' or `meta RET' will fullscreen and persist across CTWM restart.
>
> What does `fn RET' do in an Emacs window?  Or in any other window but
> the terminal windows you cite above?

`meta RET' will fullscreen the xterm.

`fn RET' will run overwrite-mode, I mislabelled the left hand keychord
which is also `meta RET'.

>  > Now unrelated to CTWM restart, the following is observed when zooming.
>
> What is zooming?  Just maximizing the window or more?

Yes, zooming maximizes fullboth, vertical or horizontal dimensions.

>  > Using the `Window' context menu zoom from CTWM on xterm or uxterm
>  > choosing any of the options `Zoom, Zoom-V, Zoom-H' leaves a
>  >
>  >   - gap at the right and bottom edge for `Zoom',
>  >   - gap at bottom edge for `Zoom-V' and
>  >   - gap at the right edge for `Zoom-H'.
>  >
>  > The above suggests CTWM has issues calculating the height and width
>  > dimensions for fullscreen on u/xterm.
>
> Usually, terminal windows cannot be really maximized.  They want the
> window height be a multiple of their font height + line spacing.
>
>  > Also, from a normal 80x24 u/xterm, when I `Window, Zoom' that results in
>  > the gap at right and bottom edge, then when I keychord `meta RET' the
>  > first time, I get the borderless fullscreen, keychord the second time
>  > and u/xterm returns to a normal 80x24 dimension.
>
> I doubt that a fullscreen terminal can display half a line at the
> bottom.  So your borderless fullscreen is likely an artefact.

This is how emacsclient looks inside a borderless fullscreen xterm.

    http://sdf.org/~van.ly/img/emacs-30-0-91-inside-fullscreen-xterm.webp

The minibuffer area looks stretched more than one line.

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-02 15:47                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-02 16:22                       ` Eli Zaretskii
  2024-12-04  5:15                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-03  8:24                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 57+ messages in thread
From: Eli Zaretskii @ 2024-12-02 16:22 UTC (permalink / raw)
  To: Van Ly; +Cc: rudalics, 74496

> From: Van Ly <van.ly@SDF.ORG>
> Cc: eliz@gnu.org, 74496@debbugs.gnu.org
> Date: Mon, 02 Dec 2024 15:47:35 +0000
> 
> I pieced together the following steps to make emacs debuggable.  I'll
> need pointers to info pages to make progress.
> 
> 
> 
>   a.  make distclean
>   b.  configure ... 'CFLAGS=-g3 -ggdb -Og ...'
>   c.  make
> 
> 
> 
>   i.  start, emacs -Q
>   ii. use, M-x gdb
> 

At this point, you should see a prompt in the minibuffer saysing
something like

 Run gdb (like this): gdb -i=mi SOMETHING

Edit the last part so it says /path/to/emacs instead of SOMETHING, and
then press RET.

>    1  For help, type "help".
>    2  Type "apropos word" to search for commands related to "word"...
>    3  "0x7f7fff604da0s": not in executable format: file format not recognized
>    4  No symbol table is loaded.  Use the "file" command.
>    5  Breakpoint 1 (xterm.c:18044) pending.
>    6  No symbol table is loaded.  Use the "file" command.
>    7  Breakpoint 2 (xterm.c:28275) pending.
>    8  No symbol table is loaded.  Use the "file" command.
>    9  Breakpoint 3 (xterm.c:28343) pending.
>   10  (gdb) run
>   11  The target does not support running in non-stop mode.

This is because you didn't give GDB the executable (emacs) to work on
and run.  If you do it like above, then "run" should start Emacs.






^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-02 15:47                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-02 16:22                       ` Eli Zaretskii
@ 2024-12-03  8:24                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-04  5:47                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-03  8:24 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 >> - The size of fullscreen frames shrinks by 8 pixels unless there is a
 >>     maximized frame present.
 >
 > That was the case when I was evaluating those expressions.  But, now
 > fullboth and maximized frames will adjust up the bottom edge by 8
 > pixels.

Does this mean that restarting CWTM will always shrink all maximized and
fullboth Emacs frames by 8 pixels?  What about fullheight frames?  And
does the width of frames not shrink any more?

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-02 16:04                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-03  8:24                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-04  5:58                             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-03  8:24 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 > This is how emacsclient looks inside a borderless fullscreen xterm.
 >
 >      http://sdf.org/~van.ly/img/emacs-30-0-91-inside-fullscreen-xterm.webp
 >
 > The minibuffer area looks stretched more than one line.

Is the violet background set up by Emacs?  There are a few violet pixels
at the right of the mode line so I suppose it is not.  How does it look
like with

(set-face-attribute 'default nil :background "red")

martin







^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-02 16:22                       ` Eli Zaretskii
@ 2024-12-04  5:15                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-04  9:52                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-04  5:15 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, 74496


Eli Zaretskii <eliz@gnu.org> writes:

>>   i.  start, emacs -Q
>>   ii. use, M-x gdb
>> 
>
> At this point, you should see a prompt in the minibuffer saysing
> something like
>
>  Run gdb (like this): gdb -i=mi SOMETHING
>
> Edit the last part so it says /path/to/emacs instead of SOMETHING, and
> then press RET.
>

Thanks, having the path to emacs will let gdb run.

  33  (gdb) condition 1 lval == Qnil
  34  No symbol "builtin_lisp_symbol" in current context.

What more is needed for a watch at the break conditional on `lval == Qnil'?

   1  For help, type "help".
   2  Type "apropos word" to search for commands related to "word"...
   3  Reading symbols from /src/emacs/build-30-1/src/emacs...
   4  warning: File "/src/emacs/build-30-1/src/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
   5  To enable execution of this file add
   6  	add-auto-load-safe-path /src/emacs/build-30-1/src/.gdbinit
   7  line to your configuration file "/u/xxx/.gdbinit".
   8  To completely disable this security protection add
   9  	set auto-load safe-path /
  10  line to your configuration file "/u/xxx/.gdbinit".
  11  For more information about this security protection see the
  12  "Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
  13  	info "(gdb)Auto-loading safe path"
  14  (gdb) break xterm.c:18044 if lval == Qnil
  15  No symbol "builtin_lisp_symbol" in current context.
  16  (gdb) break xterm.c:28275 if lval == Qnil
  17  No symbol "builtin_lisp_symbol" in current context.
  18  (gdb) break xterm.c:28275 if lval == Qnil
  19  No symbol "builtin_lisp_symbol" in current context.
  20  (gdb) info b
  21  No breakpoints or watchpoints.
  22  (gdb) break xterm.c:18044 
  23  Breakpoint 1 at 0x4d048c: file /src/emacs/30.0.91/src/xterm.c, line 18044.
  24  (gdb) break xterm.c:28275
  25  Breakpoint 2 at 0x4d03c7: file /src/emacs/30.0.91/src/xterm.c, line 28275.
  26  (gdb) break xterm.c:28343
  27  Breakpoint 3 at 0x4e640b: file /src/emacs/30.0.91/src/xterm.c, line 28343.
  28  (gdb) info b
  29  Num     Type           Disp Enb Address            What
  30  1       breakpoint     keep y   0x00000000004d048c in x_net_wm_state at /src/emacs/30.0.91/src/xterm.c:18044
  31  2       breakpoint     keep y   0x00000000004d03c7 in x_handle_net_wm_state at /src/emacs/30.0.91/src/xterm.c:28275
  32  3       breakpoint     keep y   0x00000000004e640b in x_check_fullscreen at /src/emacs/30.0.91/src/xterm.c:28343



-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-03  8:24                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-04  5:47                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-04  9:53                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-04  5:47 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

>  >> - The size of fullscreen frames shrinks by 8 pixels unless there is a
>  >>     maximized frame present.
>  >
>  > That was the case when I was evaluating those expressions.  But, now
>  > fullboth and maximized frames will adjust up the bottom edge by 8
>  > pixels.
>
> Does this mean that restarting CWTM will always shrink all maximized and
> fullboth Emacs frames by 8 pixels?  What about fullheight frames?  And
> does the width of frames not shrink any more?

Below is another go to capture the state of the windowframes.

When I claimed the presence of a maximized full screen would let all
fullscreens stick across ctwm restart, that might've been me seeing an
illusion.

From the data below, I see that a `maximized' full screen will leave a
gap at the bottom border.  The outer-size stays at `1914 . 1069'.  The
gap persists across ctwm restart.

In the case of ctwm restart on `F11 fullscreen' the windowframe
outer-size parameter goes from `1920 . 1080' to `1914 . 1069'.

Emacs 29.4 behaves the same.

More information, CTWM's window context menu for zoom, zoom-v, zoom-h
does the following to an initial frame

  outer-size frame parameter changes
  - 674  . 678  <= initial
  - 1914 . 1069    zoom
  - 674  . 1069    zoom-v
  - 1914 . 678     zoom-h

Hope this helps.

   // zoom zoom-v zoom-h BEGIN

 1 (frame-geometry)
 2 ;; initial window frame parameters
 3 ;; => ((outer-position 629 . 104) (outer-size 674 . 678) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 674 . 28) (tab-bar-size 0 . 0) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 672 . 36) (internal-border-width . 1))
 4 
 5 (frame-geometry)
 6 ;; ctwm window zoom
 7 ;; => ((outer-position 0 . 0) (outer-size 1914 . 1069) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 1914 . 28) (tab-bar-size 0 . 0) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 1912 . 36) (internal-border-width . 1))
 8 
 9 (frame-geometry)
10 ;; ctwm window zoom vertical
11 ;; => ((outer-position 629 . 0) (outer-size 674 . 1069) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 674 . 28) (tab-bar-size 0 . 0) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 672 . 36) (internal-border-width . 1))
12 
13 (frame-geometry)
14 ;; ctwm window zoom horizontal
15 ;; => ((outer-position 0 . 104) (outer-size 1914 . 678) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 1914 . 28) (tab-bar-size 0 . 0) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 1912 . 36) (internal-border-width . 1))

   // zoom zoom-v zoom-h END

   -- before ctwm restart F11 fullscreen BEGIN

     1  (frame-geometry)
     2  ;; => ((outer-position -3 . -3) (outer-size 1920 . 1080) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 1920 . 28) (tab-bar-size 0 . 0) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 1918 . 36) (internal-border-width . 1))
     3  (frame-parameter nil 'fullscreen)
     4  ;; => fullboth

     1  $ xprop
     2  CTWM_OTP_AFLAGS(INTEGER) = 4
     3  _MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
     4  XdndAware(ATOM) = BITMAP
     5  WM_STATE(WM_STATE):
     6                  window state: Normal
     7                  icon window: 0x0
  => 8  _NET_WM_STATE(ATOM) = _NET_WM_STATE_FULLSCREEN
     9  _NET_WM_DESKTOP(CARDINAL) = 1
    10  WM_OCCUPATION(STRING) = "2"
    11  _NET_WM_SYNC_FENCES(CARDINAL) = 52428953, 52428954
    12  _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 52428952
    13  _NET_WM_PID(CARDINAL) = 1943
    14  _NET_WM_ICON_NAME(UTF8_STRING) = "*scratch*"
    15  _NET_WM_NAME(UTF8_STRING) = "*scratch*"
    16  WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, WM_SAVE_YOURSELF, _NET_WM_PING, _NET_WM_SYNC_REQUEST
    17  WM_CLIENT_LEADER(WINDOW): window id # 0x3200088
    18  WM_LOCALE_NAME(STRING) = "en_AU.UTF-8"
    19  WM_CLASS(STRING) = "emacs", "Emacs"
    20  WM_HINTS(WM_HINTS):
    21                  Client accepts input or input focus: True
    22                  Initial state is Normal State.
    23                  bitmap id # to use for icon: 0x320002d
    24                  bitmap id # of mask for icon: 0x320002f
    25  WM_NORMAL_HINTS(WM_SIZE_HINTS):
    26                  user specified size: 674 by 678
    27                  program specified minimum size: 34 by 66
    28                  program specified resize increment: 8 by 17
    29                  program specified base size: 34 by 66
    30                  window gravity: NorthWest
    31  WM_CLIENT_MACHINE(STRING) = "xxx"
    32  WM_ICON_NAME(STRING) = "*scratch*"
    33  WM_NAME(STRING) = "*scratch*"


   -- before ctwm restart F11 fullscreen END

   == after ctwm restart F11 fullscreen BEGIN

     1  (frame-geometry)
     2  ;; => ((outer-position -3 . -3) (outer-size 1914 . 1069) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 1914 . 28) (tab-bar-size 0 . 0) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 1912 . 36) (internal-border-width . 1))
     3  (frame-parameter nil 'fullscreen)
     4  ;; => nil

     1  $ xprop
     2  CTWM_OTP_AFLAGS(INTEGER) = 4
     3  _MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
     4  XdndAware(ATOM) = BITMAP
     5  WM_STATE(WM_STATE):
     6                  window state: Normal
     7                  icon window: 0x0
  => 8  _NET_WM_STATE(ATOM) =
     9  _NET_WM_DESKTOP(CARDINAL) = 1
    10  WM_OCCUPATION(STRING) = "2"
    11  _NET_WM_SYNC_FENCES(CARDINAL) = 52428953, 52428954
    12  _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 52428952
    13  _NET_WM_PID(CARDINAL) = 1943
    14  _NET_WM_ICON_NAME(UTF8_STRING) = "*scratch*"
    15  _NET_WM_NAME(UTF8_STRING) = "*scratch*"
    16  WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, WM_SAVE_YOURSELF, _NET_WM_PING, _NET_WM_SYNC_REQUEST
    17  WM_CLIENT_LEADER(WINDOW): window id # 0x3200088
    18  WM_LOCALE_NAME(STRING) = "en_AU.UTF-8"
    19  WM_CLASS(STRING) = "emacs", "Emacs"
    20  WM_HINTS(WM_HINTS):
    21                  Client accepts input or input focus: True
    22                  Initial state is Normal State.
    23                  bitmap id # to use for icon: 0x320002d
    24                  bitmap id # of mask for icon: 0x320002f
    25  WM_NORMAL_HINTS(WM_SIZE_HINTS):
    26                  user specified size: 674 by 678
    27                  program specified minimum size: 34 by 66
    28                  program specified resize increment: 8 by 17
    29                  program specified base size: 34 by 66
    30                  window gravity: NorthWest
    31  WM_CLIENT_MACHINE(STRING) = "xxx"
    32  WM_ICON_NAME(STRING) = "*scratch*"
    33  WM_NAME(STRING) = "*scratch*"

   == after ctwm restart F11 fullscreen END

   -- before ctwm restart zoom maximized full screen BEGIN

     1  (frame-geometry)
     2  ;; => ((outer-position 0 . 0) (outer-size 1914 . 1069) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 1914 . 28) (tab-bar-size 0 . 0) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 1912 . 36) (internal-border-width . 1))
     3  (frame-parameter nil 'fullscreen)
     4  ;; => maximized

     1  $ xprop
     2  CTWM_OTP_AFLAGS(INTEGER) = 4
     3  _MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
     4  XdndAware(ATOM) = BITMAP
     5  WM_STATE(WM_STATE):
     6                  window state: Normal
     7                  icon window: 0x0
  => 8  _NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ
     9  _NET_WM_DESKTOP(CARDINAL) = 2
    10  WM_OCCUPATION(STRING) = "3"
    11  _NET_WM_SYNC_FENCES(CARDINAL) = 52429087, 52429088
    12  _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 52429086
    13  _NET_WM_PID(CARDINAL) = 1943
    14  _NET_WM_ICON_NAME(UTF8_STRING) = "*scratch*"
    15  _NET_WM_NAME(UTF8_STRING) = "*scratch*"
    16  WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, WM_SAVE_YOURSELF, _NET_WM_PING, _NET_WM_SYNC_REQUEST
    17  WM_CLIENT_LEADER(WINDOW): window id # 0x320010e
    18  WM_LOCALE_NAME(STRING) = "en_AU.UTF-8"
    19  WM_CLASS(STRING) = "emacs", "Emacs"
    20  WM_HINTS(WM_HINTS):
    21                  Client accepts input or input focus: True
    22                  Initial state is Normal State.
    23                  bitmap id # to use for icon: 0x320002d
    24                  bitmap id # of mask for icon: 0x320002f
    25  WM_NORMAL_HINTS(WM_SIZE_HINTS):
    26                  user specified size: 674 by 678
    27                  program specified minimum size: 34 by 66
    28                  program specified resize increment: 8 by 17
    29                  program specified base size: 34 by 66
    30                  window gravity: NorthWest
    31  WM_CLIENT_MACHINE(STRING) = "xxx"
    32  WM_ICON_NAME(STRING) = "*scratch*"
    33  WM_NAME(STRING) = "*scratch*"

   -- before ctwm restart zoom maximized full screen END

   == after ctwm restart zoom maximized full screen BEGIN

     1  (frame-geometry)
     2  ;; => ((outer-position 0 . 0) (outer-size 1914 . 1069) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 1914 . 28) (tab-bar-size 0 . 0) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 1912 . 36) (internal-border-width . 1))
     3  (frame-parameter nil 'fullscreen)
     4  ;; => nil

     1  $ xprop
     2  CTWM_OTP_AFLAGS(INTEGER) = 4
     3  _MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
     4  XdndAware(ATOM) = BITMAP
     5  WM_STATE(WM_STATE):
     6                  window state: Normal
     7                  icon window: 0x0
  => 8  _NET_WM_STATE(ATOM) =
     9  _NET_WM_DESKTOP(CARDINAL) = 2
    10  WM_OCCUPATION(STRING) = "3"
    11  _NET_WM_SYNC_FENCES(CARDINAL) = 52429087, 52429088
    12  _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 52429086
    13  _NET_WM_PID(CARDINAL) = 1943
    14  _NET_WM_ICON_NAME(UTF8_STRING) = "*scratch*"
    15  _NET_WM_NAME(UTF8_STRING) = "*scratch*"
    16  WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, WM_SAVE_YOURSELF, _NET_WM_PING, _NET_WM_SYNC_REQUEST
    17  WM_CLIENT_LEADER(WINDOW): window id # 0x320010e
    18  WM_LOCALE_NAME(STRING) = "en_AU.UTF-8"
    19  WM_CLASS(STRING) = "emacs", "Emacs"
    20  WM_HINTS(WM_HINTS):
    21                  Client accepts input or input focus: True
    22                  Initial state is Normal State.
    23                  bitmap id # to use for icon: 0x320002d
    24                  bitmap id # of mask for icon: 0x320002f
    25  WM_NORMAL_HINTS(WM_SIZE_HINTS):
    26                  user specified size: 674 by 678
    27                  program specified minimum size: 34 by 66
    28                  program specified resize increment: 8 by 17
    29                  program specified base size: 34 by 66
    30                  window gravity: NorthWest
    31  WM_CLIENT_MACHINE(STRING) = "xxx"
    32  WM_ICON_NAME(STRING) = "*scratch*"
    33  WM_NAME(STRING) = "*scratch*

   == after ctwm restart zoom maximized full screen END


-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-03  8:24                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-04  5:58                             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-04  9:53                               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-04  5:58 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

> Is the violet background set up by Emacs?  There are a few violet pixels
> at the right of the mode line so I suppose it is not.  How does it look
> like with
>
> (set-face-attribute 'default nil :background "red")
>

The uxterm's color is set from Xresources.

	UXTerm.vt100.foreground: gray66
	UXTerm.vt100.background: darkslateblue

and then tty color is disabled using

	(defun x/tty-color-mode-no ()
	  "Disable color in emacsclient session."
	  (interactive)
	  (set-frame-parameter nil 'tty-color-mode 'no))

evaluating

        (set-face-attribute 'default nil :background "red")

has no effect on the uxterm/emacsclient but changes to red background
the other emacs windowframes sharing this session.

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-04  5:15                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-04  9:52                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-07 11:11                             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-04  9:52 UTC (permalink / raw)
  To: Van Ly, Eli Zaretskii; +Cc: 74496

[-- Attachment #1: Type: text/plain, Size: 886 bytes --]

 >    33  (gdb) condition 1 lval == Qnil
 >    34  No symbol "builtin_lisp_symbol" in current context.

I see.  The condition would have been

   condition 1 EQ (lval, Qnil)

but lval is not a C variable.  So it won't work without modifying the
source.  I have no good idea yet how to do that.  Setting these
breakpoints unconditionally is out of the question - we want to catch
the transition from Qfullboth to Qnil here.

Maybe you can try the attached diff (it's against the release version)
and set breakpoints at the four lines I marked with a

// break-here

comment.  Start gdb via run -Q, do F11 and restart CWTM.  Here you have
to switch to the debugging Emacs (either you have it on another
workspace or you find an equivalent of Alt-TAB used by most window
managers) type "bt" and post the backtrace here.  Maybe it will let us
find out why that parameter gets reset.

martin

[-- Attachment #2: break-fullscreen.diff --]
[-- Type: text/x-patch, Size: 2120 bytes --]

diff --git a/src/frame.c b/src/frame.c
index f6053fca3ef..e4787ae1bf5 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -4539,7 +4539,11 @@ gui_set_frame_parameters_1 (struct frame *f, Lisp_Object alist,
     {
       Lisp_Object old_value = get_frame_param (f, Qfullscreen);
 
-      store_frame_param (f, Qfullscreen, fullscreen);
+      if (EQ (old_value, Qfullboth) && EQ (fullscreen, Qnil))
+	store_frame_param (f, Qfullscreen, fullscreen); // break here
+      else
+	store_frame_param (f, Qfullscreen, fullscreen);
+
       if (!EQ (fullscreen, old_value))
 	gui_set_fullscreen (f, fullscreen, old_value);
     }
diff --git a/src/xterm.c b/src/xterm.c
index fd3e58f85f6..3b5311b0977 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -18041,7 +18041,11 @@ x_net_wm_state (struct frame *f, Window window)
       break;
     }
 
-  store_frame_param (f, Qfullscreen, lval);
+  if (EQ (get_frame_param (f, Qfullscreen), Qfullboth) && EQ (lval, Qnil))
+    store_frame_param (f, Qfullscreen, lval); // break here
+  else
+    store_frame_param (f, Qfullscreen, lval);
+
   store_frame_param (f, Qsticky, sticky ? Qt : Qnil);
   store_frame_param (f, Qshaded, shaded ? Qt : Qnil);
 }
@@ -28272,7 +28276,11 @@ x_handle_net_wm_state (struct frame *f, const XPropertyEvent *event)
       break;
     }
 
-  store_frame_param (f, Qfullscreen, lval);
+  if (EQ (get_frame_param (f, Qfullscreen), Qfullboth) && EQ (lval, Qnil))
+    store_frame_param (f, Qfullscreen, lval); // break here
+  else
+    store_frame_param (f, Qfullscreen, lval);
+
   store_frame_param (f, Qsticky, sticky ? Qt : Qnil);
   store_frame_param (f, Qshaded, shaded ? Qt : Qnil);
 
@@ -28340,7 +28348,10 @@ x_check_fullscreen (struct frame *f)
 
   /* `x_net_wm_state' might have reset the fullscreen frame parameter,
      restore it. */
-  store_frame_param (f, Qfullscreen, lval);
+  if (EQ (get_frame_param (f, Qfullscreen), Qfullboth) && EQ (lval, Qnil))
+    store_frame_param (f, Qfullscreen, lval); // break here
+  else
+    store_frame_param (f, Qfullscreen, lval);
 }
 
 /* This function is called by x_set_offset to determine whether the window

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-04  5:47                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-04  9:53                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-04  9:53 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 >  From the data below, I see that a `maximized' full screen will leave a
 > gap at the bottom border.  The outer-size stays at `1914 . 1069'.  The
 > gap persists across ctwm restart.
 >
 > In the case of ctwm restart on `F11 fullscreen' the windowframe
 > outer-size parameter goes from `1920 . 1080' to `1914 . 1069'.

So we have 6 pixels width and 11 pixels height less.  Doesn't make much
sense to me.

 > Emacs 29.4 behaves the same.
 >
 > More information, CTWM's window context menu for zoom, zoom-v, zoom-h
 > does the following to an initial frame
 >
 >    outer-size frame parameter changes
 >    - 674  . 678  <= initial
 >    - 1914 . 1069    zoom
 >    - 674  . 1069    zoom-v
 >    - 1914 . 678     zoom-h

But this implies that zooming does _not_ do what you want (at least not
entirely) and restarting CTWM is probably not the real cause of the
problem.

 >     // zoom zoom-v zoom-h BEGIN
 >
 >   1 (frame-geometry)
 >   2 ;; initial window frame parameters
 >   3 ;; => ((outer-position 629 . 104) (outer-size 674 . 678) (external-border-size -3 . -3) (outer-border-width . 0) (title-bar-size 0 . 6) (menu-bar-external . t) (menu-bar-size 674 . 28) (tab-bar-size 0 . 0) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 672 . 36) (internal-border-width . 1))

These values are fishy - here I get for an initial emacs -Q Lucid frame

((outer-position 0 . 0) (outer-size 764 . 885) (external-border-size 5 . 5) (outer-border-width . 0) (title-bar-size 0 . 14) (menu-bar-external . t) (menu-bar-size 754 . 31) (tab-bar-size 0 . 0) (tool-bar-external) (tool-bar-position . top) (tool-bar-size 752 . 36) (internal-border-width . 1))

An external border size of -3 can only harm.  The menu bar width should
be the outer frame width minus twice that of the external borders - 764
minus 10 gives 754 here.  Similar for the tool bar where you should also
subtract twice the internal border width.  We have to find out the cause
for this but I don't yet know how.

Now two times 3 gives 6 which _could_ explain the 6 pixels width
decrease but it wouldn't explain the 11 pixels height decrease.

When with gdb in frame_geometry in xfns.c you put a breakpoint at the
line staring with an if below (it's line 6747 here)

   XGetGeometry (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f),
		&rootw, &x_native, &y_native, &native_width, &native_height,
		&x_border_width, &ign);
   /**   XGetWindowAttributes (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), &atts); **/
   if (!FRAME_PARENT_FRAME (f))

run -Q and evaluate (frame-geometry) in the emacs you run, the
breakpoint should be hit.  If you now type

p x_border_width

in the debugging buffer, what does it print?

 >    => 8  _NET_WM_STATE(ATOM) = _NET_WM_STATE_FULLSCREEN
...
 >    => 8  _NET_WM_STATE(ATOM) =


 >    => 8  _NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ
...
 >    => 8  _NET_WM_STATE(ATOM) =

We have to find out who resets them.  Can you try doing this for any
other GUI application that can be made fullscreen via F11?

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-04  5:58                             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-04  9:53                               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-05  2:39                                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-04  9:53 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 > and then tty color is disabled using
 >
 > 	(defun x/tty-color-mode-no ()
 > 	  "Disable color in emacsclient session."
 > 	  (interactive)
 > 	  (set-frame-parameter nil 'tty-color-mode 'no))

Who does that?  And if in that emacs you set

(set-frame-parameter nil 'tty-color-mode 'yes)

and evaluate

 >          (set-face-attribute 'default nil :background "red")

does it have any effect?

BTW I installed CTWM here but I have no idea how to restart it from
within a fullscreen Emacs frame.  Any attemtps to assign f.restart to
"F9" in the init file has CTWM hang and sometimes spills out that the
init file has a syntax error.

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-04  9:53                               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-05  2:39                                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-05  9:23                                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-05  2:39 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

> BTW I installed CTWM here but I have no idea how to restart it from
> within a fullscreen Emacs frame.  Any attemtps to assign f.restart to
> "F9" in the init file has CTWM hang and sometimes spills out that the
> init file has a syntax error.

On a right handed mouse use the left button depressed on the desktop
background to present

  - Restart CTWM
  - Quit

The fullscreen Emacs frame goes in one of the virtual workspaces.  Keep
one workspace showing the desktop background for the mouse to click on.
The following CTWM configuration presents the Restart CTWM menu item on
Super-p or mod4-p keychord

  https://cvsweb.netbsd.org/bsdweb.cgi/src/external/mit/ctwm/etc/system.ctwmrc?rev=1.20;content-type=text%2Fplain

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-05  2:39                                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-05  9:23                                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-05 11:14                                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-05  9:23 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 >> BTW I installed CTWM here but I have no idea how to restart it from
 >> within a fullscreen Emacs frame.  Any attemtps to assign f.restart to
 >> "F9" in the init file has CTWM hang and sometimes spills out that the
 >> init file has a syntax error.
 >
 > On a right handed mouse use the left button depressed on the desktop
 > background to present

When my Emacs window is fullboth there is do desktop background.

 >    - Restart CTWM
 >    - Quit
 >
 > The fullscreen Emacs frame goes in one of the virtual workspaces.  Keep
 > one workspace showing the desktop background for the mouse to click on.

How do I select a workspace showing the desktop background from a
workspace showing a fullboth Emacs frame?


 > The following CTWM configuration presents the Restart CTWM menu item on
 > Super-p or mod4-p keychord
 >
 >    https://cvsweb.netbsd.org/bsdweb.cgi/src/external/mit/ctwm/etc/system.ctwmrc?rev=1.20;content-type=text%2Fplain

But a menu is of no use when I have a fullboth Emacs frame. All I need
is one simple keybinding to restart CTWM in a workspace that is fully
occupied by a fullboth Emacs frame.  Or a shell command that restarts
CTWM.

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-05  9:23                                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-05 11:14                                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-05 18:02                                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-05 11:14 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

>
> When my Emacs window is fullboth there is do desktop background.
>

>
> How do I select a workspace showing the desktop background from a
> workspace showing a fullboth Emacs frame?
>

You'll need to have available CTWM's workspace virtual screens.

See at the top right, there are 5 virtual screens and you use one of
them with the desktop background exposed

    http://sdf.org/~van.ly/img/netbsd-ctwm-workspace-virtual-screens-at-top-right.webp

from the fullboth Emacs windowframe switch to a specific virtual
screen with a  keychord such as super-N or mod4-N where N is a number,
or where N is an arrow key left/right.

>
> But a menu is of no use when I have a fullboth Emacs frame. All I need
> is one simple keybinding to restart CTWM in a workspace that is fully
> occupied by a fullboth Emacs frame.  Or a shell command that restarts
> CTWM.
>

Could send a signal to tell the CTWM process to restart and reload.

Anyway, both Firefox and Chrome will F11 fullscreen and CTWM restart
will let their windowframe dimension persist.

Firefox on `maximize' window, zoom leaves no gap at the bottom edge.

The xterm running emacsclient that is in fullscreen evaluating

	(set-frame-parameter nil 'tty-color-mode 'yes)
	(set-face-attribute 'default nil :background "red")

turns the background color red.

Some more details looking at the dimensions on the xterm are as follows.

  //  *shell* buffer output inside emacsclient session
  // after many CTWM restarts

   1  $ xprop
   2  xprop
   3  _NET_WM_NAME(UTF8_STRING) = "uxterm"
   4  _NET_WM_ICON_NAME(UTF8_STRING) = "xterm"
   5  CTWM_OTP_AFLAGS(INTEGER) = 4
   6  WM_STATE(WM_STATE):
   7                  window state: Normal
   8                  icon window: 0x0
   9  _NET_WM_STATE(ATOM) = 
  10  _NET_WM_DESKTOP(CARDINAL) = 4
  11  WM_OCCUPATION(STRING) = "5"
  12  WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
  13  _NET_WM_PID(CARDINAL) = 4215
  14  WM_CLIENT_LEADER(WINDOW): window id # 0x2a0000c
  15  WM_LOCALE_NAME(STRING) = "en_AU.UTF-8"
  16  WM_CLASS(STRING) = "xterm", "UXTerm"
  17  WM_HINTS(WM_HINTS):
  18                  Client accepts input or input focus: True
  19                  Initial state is Normal State.
  20                  bitmap id # to use for icon: 0x2a0001d
  21                  bitmap id # of mask for icon: 0x2a0001f
  22  WM_NORMAL_HINTS(WM_SIZE_HINTS):
  23                  program specified size: 1920 by 1080
  24                  program specified minimum size: 16 by 28
  25                  program specified resize increment: 1 by 1
  26                  program specified base size: 4 by 4
  27                  window gravity: NorthWest
  28  WM_CLIENT_MACHINE(STRING) = "xxx"
  29  WM_COMMAND(STRING) = { "/usr/X11R7/bin/xterm", "-class", "UXTerm", "-title", "uxterm", "-u8" }
  30  WM_ICON_NAME(STRING) = "xterm"
  31  WM_NAME(STRING) = "uxterm"

  //  plain xterm before CTWM restart

   1  $ xprop
   2  CTWM_OTP_AFLAGS(INTEGER) = 4
   3  WM_STATE(WM_STATE):
   4                  window state: Normal
   5                  icon window: 0x0
   6  _NET_WM_STATE(ATOM) = _NET_WM_STATE_FULLSCREEN
   7  _NET_WM_DESKTOP(CARDINAL) = 2
   8  WM_OCCUPATION(STRING) = "3"
   9  WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
  10  _NET_WM_PID(CARDINAL) = 17153
  11  WM_CLIENT_LEADER(WINDOW): window id # 0x320000c
  12  WM_LOCALE_NAME(STRING) = "en_AU.UTF-8"
  13  WM_CLASS(STRING) = "xterm", "UXTerm"
  14  WM_HINTS(WM_HINTS):
  15                  Client accepts input or input focus: True
  16                  Initial state is Normal State.
  17                  bitmap id # to use for icon: 0x320001d
  18                  bitmap id # of mask for icon: 0x320001f
  19  WM_NORMAL_HINTS(WM_SIZE_HINTS):
  20                  program specified size: 1920 by 1080
  21                  program specified resize increment: 1 by 1
  22                  window gravity: NorthWest
  23  WM_CLIENT_MACHINE(STRING) = "xxx"
  24  WM_COMMAND(STRING) = { "/usr/X11R7/bin/xterm", "-class", "UXTerm", "-title", "uxterm", "-u8" }
  25  WM_ICON_NAME(STRING) = "xterm"
  26  WM_NAME(STRING) = "uxterm"

  //  plain xterm after CTWM restart

  27  $ xprop
  28  CTWM_OTP_AFLAGS(INTEGER) = 4
  29  WM_STATE(WM_STATE):
  30                  window state: Normal
  31                  icon window: 0x0
  32  _NET_WM_STATE(ATOM) = 
  33  _NET_WM_DESKTOP(CARDINAL) = 2
  34  WM_OCCUPATION(STRING) = "3"
  35  WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
  36  _NET_WM_PID(CARDINAL) = 17153
  37  WM_CLIENT_LEADER(WINDOW): window id # 0x320000c
  38  WM_LOCALE_NAME(STRING) = "en_AU.UTF-8"
  39  WM_CLASS(STRING) = "xterm", "UXTerm"
  40  WM_HINTS(WM_HINTS):
  41                  Client accepts input or input focus: True
  42                  Initial state is Normal State.
  43                  bitmap id # to use for icon: 0x320001d
  44                  bitmap id # of mask for icon: 0x320001f
  45  WM_NORMAL_HINTS(WM_SIZE_HINTS):
  46                  program specified size: 1920 by 1080
  47                  program specified resize increment: 1 by 1
  48                  window gravity: NorthWest
  49  WM_CLIENT_MACHINE(STRING) = "xxx"
  50  WM_COMMAND(STRING) = { "/usr/X11R7/bin/xterm", "-class", "UXTerm", "-title", "uxterm", "-u8" }
  51  WM_ICON_NAME(STRING) = "xterm"
  52  WM_NAME(STRING) = "uxterm"



I'll do the source patch and gdb backtrace when I get a chance to.



-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-05 11:14                                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-05 18:02                                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-06 10:42                                         ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-07 13:12                                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 2 replies; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-05 18:02 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 > Some more details looking at the dimensions on the xterm are as follows.

I suppose you won't see any maximized/fullscreen there.  xterms don't
have that.  Can you try with Firefox?

I meanwhile managed to run a Lucid build under CWTM.  The behavior below
shows xwininfo output, 'frame-geometry' and fullscreen frame parameter.

Restarting CWTM does not change the size of a maximized or fullscreen
frame here.  Maximized frames stay at 1674x1007 pixels (1680x1050 outer
size).  Fullboth frames stay at 1680x1050 pixels (1686x1093 outer size).
I suppose the borders sum up to 6 pixels and the title bar to 40 pixels
and for fullboth frames they are "drawn" outside the display.  All these
sum up correctly and there is no shrinking.  Also, the -3 values your
'frame-geometry' reports for external border sizes are not reproducible
here.

What happens though is:

- The fullscreen parameter is reset to nil in both cases after a CTWM
   restart.  This is a bug I will debug tomorrow but it's possible that
   we can't do anything about it.

- When restarting CTWM there is a short moment (less than a second)
   where the frame shrinks slightly in both cases.  I'll take a look into
   this with the frame size history facility.

- A maximized/fullscreen GTK-3 built frame is broken after a CTWM
   restart in the sense that scrollbars are no more positioned correctly
   - they are drawn partially offscreen.  Have you ever tried building
   with GTK-3?

In particular the last issue means that we do not get the expected
values from X routines like XGetGeometry and XGetWindowProperty.

martin


Maximized

xwininfo: Window id: 0x1400181 "*shell*"

   Absolute upper-left X:  3
   Absolute upper-left Y:  40
   Relative upper-left X:  3
   Relative upper-left Y:  40
   Width: 1674
   Height: 1007
   Depth: 24
   Visual: 0x21
   Visual Class: TrueColor
   Border width: 0
   Class: InputOutput
   Colormap: 0x20 (installed)
   Bit Gravity State: NorthWestGravity
   Window Gravity State: NorthWestGravity
   Backing Store State: NotUseful
   Save Under State: no
   Map State: IsViewable
   Override Redirect State: no
   Corners:  +3+40  -3+40  -3-3  +3-3
   -geometry 1642x958+0+0

(frame-geometry) =>
((outer-position 0 . 0) (outer-size 1680 . 1050)
  (external-border-size 3 . 3) (outer-border-width . 0)
  (title-bar-size 0 . 37) (menu-bar-external . t)
  (menu-bar-size 1674 . 31) (tab-bar-size 0 . 0) (tool-bar-external)
  (tool-bar-position . top) (tool-bar-size 0 . 0)
  (internal-border-width . 1))

(frame-parameter nil 'fullscreen) => maximized


Maximized after restart

xwininfo: Window id: 0x1400181 "*shell*"

   Absolute upper-left X:  3
   Absolute upper-left Y:  40
   Relative upper-left X:  3
   Relative upper-left Y:  40
   Width: 1674
   Height: 1007
   Depth: 24
   Visual: 0x21
   Visual Class: TrueColor
   Border width: 0
   Class: InputOutput
   Colormap: 0x20 (installed)
   Bit Gravity State: NorthWestGravity
   Window Gravity State: NorthWestGravity
   Backing Store State: NotUseful
   Save Under State: no
   Map State: IsViewable
   Override Redirect State: no
   Corners:  +3+40  -3+40  -3-3  +3-3
   -geometry 1642x958+0+0

(frame-geometry) =>
((outer-position 0 . 0) (outer-size 1680 . 1050)
  (external-border-size 3 . 3) (outer-border-width . 0)
  (title-bar-size 0 . 37) (menu-bar-external . t)
  (menu-bar-size 1674 . 31) (tab-bar-size 0 . 0) (tool-bar-external)
  (tool-bar-position . top) (tool-bar-size 0 . 0)
  (internal-border-width . 1))

(frame-parameter nil 'fullscreen) => nil


Fullboth after F11

xwininfo: Window id: 0x1400181 "*shell*"

   Absolute upper-left X:  0
   Absolute upper-left Y:  0
   Relative upper-left X:  3
   Relative upper-left Y:  40
   Width: 1680
   Height: 1050
   Depth: 24
   Visual: 0x21
   Visual Class: TrueColor
   Border width: 0
   Class: InputOutput
   Colormap: 0x20 (installed)
   Bit Gravity State: NorthWestGravity
   Window Gravity State: NorthWestGravity
   Backing Store State: NotUseful
   Save Under State: no
   Map State: IsViewable
   Override Redirect State: no
   Corners:  +0+0  -0+0  -0-0  +0-0
   -geometry 1648x1001+-3--3

(frame-geometry) =>
((outer-position -3 . -40) (outer-size 1686 . 1093)
  (external-border-size 3 . 3) (outer-border-width . 0)
  (title-bar-size 0 . 37) (menu-bar-external . t)
  (menu-bar-size 1680 . 31) (tab-bar-size 0 . 0) (tool-bar-external)
  (tool-bar-position . top) (tool-bar-size 0 . 0)
  (internal-border-width . 1))

(frame-parameter nil 'fullscreen) => fullboth


Fullboth after restart

xwininfo: Window id: 0x1400181 "*shell*"

   Absolute upper-left X:  0
   Absolute upper-left Y:  0
   Relative upper-left X:  3
   Relative upper-left Y:  40
   Width: 1680
   Height: 1050
   Depth: 24
   Visual: 0x21
   Visual Class: TrueColor
   Border width: 0
   Class: InputOutput
   Colormap: 0x20 (installed)
   Bit Gravity State: NorthWestGravity
   Window Gravity State: NorthWestGravity
   Backing Store State: NotUseful
   Save Under State: no
   Map State: IsViewable
   Override Redirect State: no
   Corners:  +0+0  -0+0  -0-0  +0-0
   -geometry 1648x1001+-3--3

(frame-geometry) =>
((outer-position -3 . -40) (outer-size 1686 . 1093)
  (external-border-size 3 . 3) (outer-border-width . 0)
  (title-bar-size 0 . 37) (menu-bar-external . t)
  (menu-bar-size 1680 . 31) (tab-bar-size 0 . 0) (tool-bar-external)
  (tool-bar-position . top) (tool-bar-size 0 . 0)
  (internal-border-width . 1))

(frame-parameter nil 'fullscreen) => nil





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-05 18:02                                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-06 10:42                                         ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-07 14:03                                           ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-07 13:12                                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-06 10:42 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

Some further details here:

 > - A maximized/fullscreen GTK-3 built frame is broken after a CTWM
 >    restart in the sense that scrollbars are no more positioned correctly
 >    - they are drawn partially offscreen.  Have you ever tried building
 >    with GTK-3?

This is not entirely correct.  The scrollbars of a maximized/fullscreen
GTK-3 frame are broken right away, no need for a CTWM restart.

More interesting is the following: With 'frame-resize-pixelwise' nil
zooming a frame vertically gets me a pixel height of 962.  With
'frame-resize-pixelwise' t it gets me 976.  So please try again setting

(setq frame-resize-pixelwise t)

and do it in your init file.  Its doc-string says explicitly

   With some window managers you may have to set this to non-nil in order
   to set the size of a frame in pixels, to maximize frames or to make them
   fullscreen.  To resize your initial frame pixelwise, set this option to
   a non-nil value in your init file.

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-04  9:52                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-07 11:11                             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-08 10:58                               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-07 11:11 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

> Maybe you can try the attached diff (it's against the release version)
> and set breakpoints at the four lines I marked with a
>
> // break-here
>
> comment.  Start gdb via run -Q, do F11 and restart CWTM.

Here is the backtrace.

   1  (gdb) info b
   2  Num     Type           Disp Enb Address            What
   3  1       breakpoint     keep y   0x000000000042edfd in gui_set_frame_parameters_1 at /u/xxx/src/emacs/29.4/src/frame.c:4461
   4  2       breakpoint     keep y   0x00000000004cf6fb in x_net_wm_state at /u/xxx/src/emacs/29.4/src/xterm.c:17504
   5  3       breakpoint     keep y   0x00000000004cf5c1 in x_handle_net_wm_state at /u/xxx/src/emacs/29.4/src/xterm.c:27249
   6  4       breakpoint     keep y   0x00000000004e52b5 in x_check_fullscreen at /u/xxx/src/emacs/29.4/src/xterm.c:27324
   7  (gdb) run -Q
   8  Starting program: /u/xxx/src/emacs/build-29-0/src/emacs -Q
   9  [New LWP 7051 of process 24519]
  10  [New LWP 795 of process 24519]
  11  [New LWP 1577 of process 24519]
  12  [New process 24519]
  13  [New process 24519]
  14
  15  Thread 1 "" hit Breakpoint 2, x_net_wm_state (f=f@entry=0x71354096ac10, window=<optimized out>) at /u/xxx/src/emacs/29.4/src/xterm.c:17504
  16  17504	    store_frame_param (f, Qfullscreen, lval); // break here
  17  (gdb) bt
  18  #0  x_net_wm_state (f=f@entry=0x71354096ac10, window=<optimized out>) at /u/xxx/src/emacs/29.4/src/xterm.c:17504
  19  #1  0x00000000004e9343 in handle_one_xevent (dpyinfo=dpyinfo@entry=0x713541033000, event=event@entry=0x7f7fff03c0d0, finish=finish@entry=0x7f7fff03c0cc, hold_quit=hold_quit@entry=0x7f7fff03c1c0) at /u/xxx/src/emacs/29.4/src/xterm.c:20998
  20  #2  0x00000000004f06cd in XTread_socket (terminal=<optimized out>, hold_quit=0x7f7fff03c1c0) at /u/xxx/src/emacs/29.4/src/xterm.c:24812
  21  #3  0x000000000051b7bd in gobble_input () at /u/xxx/src/emacs/29.4/src/keyboard.c:7427
  22  #4  0x000000000051b8d1 in handle_async_input () at /u/xxx/src/emacs/29.4/src/keyboard.c:7658
  23  #5  0x000000000051b8e7 in process_pending_signals () at /u/xxx/src/emacs/29.4/src/keyboard.c:7672
  24  #6  0x00000000005cb17a in wait_reading_process_output (time_limit=<optimized out>, nsecs=nsecs@entry=0, read_kbd=-1, do_display=do_display@entry=true, wait_for_cell=wait_for_cell@entry=0x0, wait_proc=wait_proc@entry=0x0, just_wait_proc=just_wait_proc@entry=0) at /u/xxx/src/emacs/29.4/src/process.c:5304
  25  #7  0x00000000004282e2 in sit_for (timeout=timeout@entry=0x7a, reading=reading@entry=true, display_option=display_option@entry=1) at /u/xxx/src/emacs/29.4/src/dispnew.c:6263
  26  #8  0x000000000051e53b in read_char (commandflag=1, map=map@entry=0x713540069963, prev_event=0x0, used_mouse_menu=used_mouse_menu@entry=0x7f7fff03c6bb, end_time=end_time@entry=0x0) at /u/xxx/src/emacs/29.4/src/lisp.h:767
  27  #9  0x000000000051f5ec in read_key_sequence (keybuf=keybuf@entry=0x7f7fff03c790, prompt=prompt@entry=0x0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false) at /u/xxx/src/emacs/29.4/src/keyboard.c:10084
  28  #10 0x000000000052090f in command_loop_1 () at /u/xxx/src/emacs/29.4/src/keyboard.c:1384
  29  #11 0x0000000000583676 in internal_condition_case (bfun=bfun@entry=0x520748 <command_loop_1>, handlers=handlers@entry=0x90, hfun=hfun@entry=0x5166aa <cmd_error>) at /u/xxx/src/emacs/29.4/src/eval.c:1474
  30  #12 0x00000000005113fb in command_loop_2 (handlers=handlers@entry=0x90) at /u/xxx/src/emacs/29.4/src/keyboard.c:1133
  31  #13 0x00000000005835ef in internal_catch (tag=tag@entry=0xfe40, func=func@entry=0x5113dd <command_loop_2>, arg=arg@entry=0x90) at /u/xxx/src/emacs/29.4/src/eval.c:1197
  32  #14 0x00000000005113ba in command_loop () at /u/xxx/src/emacs/29.4/src/keyboard.c:1111
  33  #15 0x00000000005162b8 in recursive_edit_1 () at /u/xxx/src/emacs/29.4/src/keyboard.c:720
  34  #16 0x00000000005165dd in Frecursive_edit () at /u/xxx/src/emacs/29.4/src/keyboard.c:803
  35  #17 0x0000000000510982 in main (argc=2, argv=0x7f7fff03cad8) at /u/xxx/src/emacs/29.4/src/emacs.c:2521


-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-05 18:02                                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-06 10:42                                         ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-07 13:12                                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-08 11:02                                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-07 13:12 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496

[-- Attachment #1: Type: text/plain, Size: 156 bytes --]


martin rudalics <rudalics@gmx.at> writes:

              Can you try with Firefox?

See attached for Firefox detected screen values.


[-- Attachment #2: ctwm restart before/after firefox screen values --]
[-- Type: application/octet-stream, Size: 7672 bytes --]


  // firefox f11 fullscreen before

   1  $ xprop
   2  xprop
   3  CTWM_OTP_AFLAGS(INTEGER) = 4
   4  _NET_WM_USER_TIME(CARDINAL) = 710287239
   5  WM_STATE(WM_STATE):
   6  		window state: Normal
   7  		icon window: 0x0
   8  _NET_WM_STATE(ATOM) = _NET_WM_STATE_FULLSCREEN
   9  _NET_WM_DESKTOP(CARDINAL) = 1
  10  WM_OCCUPATION(STRING) = "2"
  11  WM_HINTS(WM_HINTS):
  12  		Client accepts input or input focus: True
  13  		Initial state is Normal State.
  14  		bitmap id # to use for icon: 0x2e00019
  15  		bitmap id # of mask for icon: 0x2e00020
  16  		window id # of group leader: 0x2e00001
  17  _GTK_THEME_VARIANT(UTF8_STRING) = "dark"
  18  _NET_WM_BYPASS_COMPOSITOR(CARDINAL) = 2
  19  WM_WINDOW_ROLE(STRING) = "browser"
  20  XdndAware(ATOM) = BITMAP
  21  _NET_WM_ICON(CARDINAL) = 	Icon (128 x 128):
  22  	(not shown)
  23  	Icon (32 x 32):
  24  ;; not shown
  25  	Icon (48 x 48):
  26  	(not shown)
  27  	Icon (64 x 64):
  28  	(not shown)
  29  	Icon (16 x 16):
  30  ;; not shown
  31  
  32  _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
  33  _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 48234519, 48234520
  34  _NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x2e00016
  35  WM_CLIENT_LEADER(WINDOW): window id # 0x2e00001
  36  _NET_WM_PID(CARDINAL) = 4275
  37  WM_LOCALE_NAME(STRING) = "en_AU.UTF-8"
  38  WM_CLIENT_MACHINE(STRING) = "xxx"
  39  WM_NORMAL_HINTS(WM_SIZE_HINTS):
  40  		program specified minimum size: 450 by 120
  41  		program specified maximum size: 16384 by 16384
  42  		program specified base size: 450 by 120
  43  		window gravity: NorthWest
  44  WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
  45  WM_CLASS(STRING) = "Navigator", "firefox128-default"
  46  WM_ICON_NAME(STRING) = "Nightly"
  47  _NET_WM_ICON_NAME(UTF8_STRING) = "Nightly"
  48  WM_NAME(STRING) = "Nightly"
  49  _NET_WM_NAME(UTF8_STRING) = "Nightly"


  // firefox f11 fullscreen after

   1  $ xprop
   2  xprop
   3  CTWM_OTP_AFLAGS(INTEGER) = 4
   4  _NET_WM_USER_TIME(CARDINAL) = 710452294
   5  WM_STATE(WM_STATE):
   6  		window state: Normal
   7  		icon window: 0x0
   8  _NET_WM_STATE(ATOM) = 
   9  _NET_WM_DESKTOP(CARDINAL) = 1
  10  WM_OCCUPATION(STRING) = "2"
  11  WM_HINTS(WM_HINTS):
  12  		Client accepts input or input focus: True
  13  		Initial state is Normal State.
  14  		bitmap id # to use for icon: 0x2e00019
  15  		bitmap id # of mask for icon: 0x2e00020
  16  		window id # of group leader: 0x2e00001
  17  _GTK_THEME_VARIANT(UTF8_STRING) = "dark"
  18  _NET_WM_BYPASS_COMPOSITOR(CARDINAL) = 2
  19  WM_WINDOW_ROLE(STRING) = "browser"
  20  XdndAware(ATOM) = BITMAP
  21  _NET_WM_ICON(CARDINAL) = 	Icon (128 x 128):
  22  	(not shown)
  23  	Icon (32 x 32):
  24  ;; not shown
  25  	Icon (48 x 48):
  26  	(not shown)
  27  	Icon (64 x 64):
  28  	(not shown)
  29  	Icon (16 x 16):
  30  ;; not shown
  31  
  32  _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
  33  _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 48234519, 48234520
  34  _NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x2e00016
  35  WM_CLIENT_LEADER(WINDOW): window id # 0x2e00001
  36  _NET_WM_PID(CARDINAL) = 4275
  37  WM_LOCALE_NAME(STRING) = "en_AU.UTF-8"
  38  WM_CLIENT_MACHINE(STRING) = "xxx"
  39  WM_NORMAL_HINTS(WM_SIZE_HINTS):
  40  		program specified minimum size: 450 by 120
  41  		program specified maximum size: 16384 by 16384
  42  		program specified base size: 450 by 120
  43  		window gravity: NorthWest
  44  WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
  45  WM_CLASS(STRING) = "Navigator", "firefox128-default"
  46  WM_ICON_NAME(STRING) = "Nightly"
  47  _NET_WM_ICON_NAME(UTF8_STRING) = "Nightly"
  48  WM_NAME(STRING) = "Nightly"
  49  _NET_WM_NAME(UTF8_STRING) = "Nightly"


  // firefox maximized full screen before

   1  $ xprop
   2  xprop
   3  WM_STATE(WM_STATE):
   4  		window state: Normal
   5  		icon window: 0x0
   6  _NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ
   7  _NET_WM_DESKTOP(CARDINAL) = 2
   8  WM_OCCUPATION(STRING) = "3"
   9  WM_HINTS(WM_HINTS):
  10  		Client accepts input or input focus: True
  11  		Initial state is Normal State.
  12  		bitmap id # to use for icon: 0x2e00051
  13  		bitmap id # of mask for icon: 0x2e00057
  14  		window id # of group leader: 0x2e00001
  15  _GTK_THEME_VARIANT(UTF8_STRING) = "dark"
  16  _NET_WM_BYPASS_COMPOSITOR(CARDINAL) = 2
  17  WM_WINDOW_ROLE(STRING) = "browser"
  18  XdndAware(ATOM) = BITMAP
  19  _NET_WM_ICON(CARDINAL) = 	Icon (128 x 128):
  20  	(not shown)
  21  	Icon (32 x 32):
  22  ;; not shown
  23  	Icon (48 x 48):
  24  	(not shown)
  25  	Icon (64 x 64):
  26  	(not shown)
  27  	Icon (16 x 16):
  28  ;; not shown
  29  
  30  _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
  31  _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 48234575, 48234576
  32  _NET_WM_USER_TIME(CARDINAL) = 710456534
  33  _NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x2e0004e
  34  WM_CLIENT_LEADER(WINDOW): window id # 0x2e00001
  35  _NET_WM_PID(CARDINAL) = 4275
  36  WM_LOCALE_NAME(STRING) = "en_AU.UTF-8"
  37  WM_CLIENT_MACHINE(STRING) = "xxx"
  38  WM_NORMAL_HINTS(WM_SIZE_HINTS):
  39  		program specified minimum size: 450 by 120
  40  		program specified maximum size: 16384 by 16384
  41  		program specified base size: 450 by 120
  42  		window gravity: NorthWest
  43  WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
  44  WM_CLASS(STRING) = "Navigator", "firefox128-default"
  45  WM_ICON_NAME(STRING) = "Nightly"
  46  _NET_WM_ICON_NAME(UTF8_STRING) = "Nightly"
  47  WM_NAME(STRING) = "Nightly"
  48  _NET_WM_NAME(UTF8_STRING) = "Nightly"
  49  

  // firefox maximized full screen after

   1  $ xprop
   2  xprop
   3  WM_STATE(WM_STATE):
   4  		window state: Normal
   5  		icon window: 0x0
   6  _NET_WM_STATE(ATOM) = 
   7  _NET_WM_DESKTOP(CARDINAL) = 2
   8  WM_OCCUPATION(STRING) = "3"
   9  WM_HINTS(WM_HINTS):
  10  		Client accepts input or input focus: True
  11  		Initial state is Normal State.
  12  		bitmap id # to use for icon: 0x2e00051
  13  		bitmap id # of mask for icon: 0x2e00057
  14  		window id # of group leader: 0x2e00001
  15  _GTK_THEME_VARIANT(UTF8_STRING) = "dark"
  16  _NET_WM_BYPASS_COMPOSITOR(CARDINAL) = 2
  17  WM_WINDOW_ROLE(STRING) = "browser"
  18  XdndAware(ATOM) = BITMAP
  19  _NET_WM_ICON(CARDINAL) = 	Icon (128 x 128):
  20  	(not shown)
  21  	Icon (32 x 32):
  22  ;; not shown
  23  	Icon (48 x 48):
  24  	(not shown)
  25  	Icon (64 x 64):
  26  	(not shown)
  27  	Icon (16 x 16):
  28  ;; not shown
  29  
  30  _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
  31  _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 48234575, 48234576
  32  _NET_WM_USER_TIME(CARDINAL) = 710661510
  33  _NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x2e0004e
  34  WM_CLIENT_LEADER(WINDOW): window id # 0x2e00001
  35  _NET_WM_PID(CARDINAL) = 4275
  36  WM_LOCALE_NAME(STRING) = "en_AU.UTF-8"
  37  WM_CLIENT_MACHINE(STRING) = "xxx"
  38  WM_NORMAL_HINTS(WM_SIZE_HINTS):
  39  		program specified minimum size: 450 by 120
  40  		program specified maximum size: 16384 by 16384
  41  		program specified base size: 450 by 120
  42  		window gravity: NorthWest
  43  WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
  44  WM_CLASS(STRING) = "Navigator", "firefox128-default"
  45  WM_ICON_NAME(STRING) = "Nightly"
  46  _NET_WM_ICON_NAME(UTF8_STRING) = "Nightly"
  47  WM_NAME(STRING) = "Nightly"
  48  _NET_WM_NAME(UTF8_STRING) = "Nightly"
  49  

[-- Attachment #3: Type: text/plain, Size: 735 bytes --]


                                                     the -3 values your
> 'frame-geometry' reports for external border sizes are not reproducible
> here.

My dot ctwmrc has these options commented out.  They may explain the
minus 3 pixel value detected.

 #UseThreeDIconManagers
 #UseThreeDWMap
 #UseThreeDBorders
 #UseThreeDMenus
 #UseThreeDTitles

                                            Have you ever tried building
>    with GTK-3?

I'm not able to use the gtk-3 build as it causes the tty/emacsclient session
to lockup.  The bug is documented.

The gtk-3 build is the default option from pkgsrc.

-- 
vl

^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-06 10:42                                         ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-07 14:03                                           ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-07 15:52                                             ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-07 14:03 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

> More interesting is the following: With 'frame-resize-pixelwise' nil
> zooming a frame vertically gets me a pixel height of 962.  With
> 'frame-resize-pixelwise' t it gets me 976.  So please try again setting
>
> (setq frame-resize-pixelwise t)
>
> and do it in your init file.  Its doc-string says explicitly
>
>    With some window managers you may have to set this to non-nil in order
>    to set the size of a frame in pixels, to maximize frames or to make them
>    fullscreen.  To resize your initial frame pixelwise, set this option to
>    a non-nil value in your init file.



That first time I measured the frame attributes and the values persisted
after a ctwm restart was from

        (setq frame-resize-pixelwise t)

you were expecting values to be different from the first data capture I
reported and I had misattributed the cause to be the presence of a
maximized full screen.

I hadn't put that setting in the init file and forgot about that.

Below is the state of the windowframes.



;; with frame-resize-pixelwise setting confirmed
(setq-default frame-resize-pixelwise t)



Fullboth after F11

xwininfo: Window id: 0x4001aa "*About GNU Emacs*"

  Absolute upper-left X:  0
  Absolute upper-left Y:  0
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 1920
  Height: 1080
  Depth: 24
  Visual: 0x20
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x22 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +0+0  -0+0  -0-0  +0-0
  -geometry 1902x1057+-3+-3

(frame-geometry)  =>
((outer-position -3 . -3) (outer-size 1920 . 1080)
(external-border-size -3 . -3) (outer-border-width . 0)
(title-bar-size 0 . 6) (menu-bar-external . t)
(menu-bar-size 0 . 0) (tab-bar-size 1918 . 21)
(tool-bar-external) (tool-bar-position . top)
(tool-bar-size 0 . 0) (internal-border-width . 1))

(frame-parameter nil 'fullscreen) =>
fullboth



Fullboth after restart

xwininfo: Window id: 0x4001aa "*About GNU Emacs*"

  Absolute upper-left X:  0
  Absolute upper-left Y:  0
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 1920
  Height: 1080
  Depth: 24
  Visual: 0x20
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x22 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +0+0  -0+0  -0-0  +0-0
  -geometry 1902x1057+-3+-3

(frame-geometry) =>
((outer-position -3 . -3) (outer-size 1920 . 1080)
(external-border-size -3 . -3) (outer-border-width . 0)
(title-bar-size 0 . 6) (menu-bar-external . t)
(menu-bar-size 0 . 0) (tab-bar-size 1918 . 21)
(tool-bar-external) (tool-bar-position . top)
(tool-bar-size 0 . 0) (internal-border-width . 1))

(frame-parameter nil 'fullscreen) => 
nil



Maximized

xwininfo: Window id: 0x400220 "*About GNU Emacs*"

  Absolute upper-left X:  3
  Absolute upper-left Y:  3
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 1914
  Height: 1074
  Depth: 24
  Visual: 0x20
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x22 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +3+3  -3+3  -3-3  +3-3
  -geometry 1896x1051+0+0

(frame-geometry) =>
((outer-position 0 . 0) (outer-size 1914 . 1074)
(external-border-size -3 . -3) (outer-border-width . 0)
(title-bar-size 0 . 6) (menu-bar-external . t)
(menu-bar-size 0 . 0) (tab-bar-size 1912 . 21)
(tool-bar-external) (tool-bar-position . top)
(tool-bar-size 0 . 0) (internal-border-width . 1))  

(frame-parameter nil 'fullscreen) =>
maximized



Maximized after restart

xwininfo: Window id: 0x400220 "*About GNU Emacs*"

  Absolute upper-left X:  3
  Absolute upper-left Y:  3
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 1914
  Height: 1074
  Depth: 24
  Visual: 0x20
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x22 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +3+3  -3+3  -3-3  +3-3
  -geometry 1896x1051+0+0

(frame-geometry) =>
((outer-position 0 . 0) (outer-size 1914 . 1074)
(external-border-size -3 . -3) (outer-border-width . 0)
(title-bar-size 0 . 6) (menu-bar-external . t)
(menu-bar-size 0 . 0) (tab-bar-size 1912 . 21)
(tool-bar-external) (tool-bar-position . top)
(tool-bar-size 0 . 0) (internal-border-width . 1))

(frame-parameter nil 'fullscreen) =>
nil



-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-07 14:03                                           ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-07 15:52                                             ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-07 16:33                                               ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-07 15:52 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

I'll take a look into
 >   this with the frame size history facility.
 > That first time I measured the frame attributes and the values persisted
 > after a ctwm restart was from
 >
 >          (setq frame-resize-pixelwise t)
 >
 > you were expecting values to be different from the first data capture I
 > reported and I had misattributed the cause to be the presence of a
 > maximized full screen.
 >
 > I hadn't put that setting in the init file and forgot about that.

I should have told you but I forgot as well.  We'd eventually have to
install a watcher for this variable.  Whenever it is (re-)set that would
(re-)set the size hints accordingly, maybe even in a let-binding.  But
this requires some experimenting.  At the time 'frame-resize-pixelwise'
was implemented, variable watchers were not available yet.

 > ;; with frame-resize-pixelwise setting confirmed
 > (setq-default frame-resize-pixelwise t)
 >
 >
 >
 > Fullboth after F11
...
 >    Width: 1920
 >    Height: 1080
...
 > (frame-parameter nil 'fullscreen) =>
 > fullboth
...
 > Fullboth after restart
...
 >    Width: 1920
 >    Height: 1080
...
 > (frame-parameter nil 'fullscreen) =>
 > nil
...
 > Maximized
 >
 > xwininfo: Window id: 0x400220 "*About GNU Emacs*"
...
 >    Width: 1914
 >    Height: 1074
....
 > (frame-parameter nil 'fullscreen) =>
 > maximized
...
 > Maximized after restart
...
 >    Width: 1914
 >    Height: 1074
...
 > (frame-parameter nil 'fullscreen) =>
 > nil

So IIUC the unexpected resizing with CTWM restart can be fixed by
setting 'frame-resize-pixelwise' to t.  The fullscreen parameter
settings are still broken.  These might be related to an obscure
variable I coined 'x-frame-normalize-before-maximize' years ago but I
have to experiment with it myself before telling you more.

BTW, earlier I wrote that

 > - When restarting CTWM there is a short moment (less than a second)
 >   where the frame shrinks slightly in both cases.

Meanwhile I noticed the same behavior with all "vertically zoomed"
windows including those on xterms.  Can you observe a similar effect?

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-07 15:52                                             ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-07 16:33                                               ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-07 17:36                                                 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-07 16:33 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

> So IIUC the unexpected resizing with CTWM restart can be fixed by
> setting 'frame-resize-pixelwise' to t.  The fullscreen parameter
> settings are still broken.  These might be related to an obscure
> variable I coined 'x-frame-normalize-before-maximize' years ago but I
> have to experiment with it myself before telling you more.
>
> BTW, earlier I wrote that
>
>  > - When restarting CTWM there is a short moment (less than a second)
>  >   where the frame shrinks slightly in both cases.
>
> Meanwhile I noticed the same behavior with all "vertically zoomed"
> windows including those on xterms.  Can you observe a similar effect?

Having the setting 'frame-resize-pixelwise' to t in place I don't see
any slight shrinkage in any of the cases at the time of ctwm restart.

After ctwm restart, in all cases of F11 fullscreen, zoom, zoom vertical,
and zoom horizontal, the ability to toggle to previous frame size is
lost.  What I there do is move the entire frame to one side, C-x 5 2 to
create a new frame of default size, C-x 5 0 to remove the windowframe
that is unable to toggle between fullscreen and previous size because of
ctwm restart.

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-07 16:33                                               ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-07 17:36                                                 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-08  6:26                                                   ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-07 17:36 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 > After ctwm restart, in all cases of F11 fullscreen, zoom, zoom vertical,
 > and zoom horizontal, the ability to toggle to previous frame size is
 > lost.

What happens is that whatever the non-nil fullscreen state is, the size
of the frame in the state immediately before restarting CTWM is frozen:
It becomes the frame's new "normal" size after CTWM has restarted.  You
still can transit from maximized to fullboth and vice-versa but the
previous normal size is lost.

Not that the "normal" size works well with each and every window manager
but the behavior on CTWM is quite singular.  OTOH I don't know of any WM
that supports its own restart on-the-fly.  Maybe that's the prize one
has to pay for it.

 > What I there do is move the entire frame to one side, C-x 5 2 to
 > create a new frame of default size, C-x 5 0 to remove the windowframe
 > that is unable to toggle between fullscreen and previous size because of
 > ctwm restart.

But this is a problem you had without setting 'frame-resize-pixelwise'
too.  Right?

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-07 17:36                                                 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-08  6:26                                                   ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-08 16:57                                                     ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-08  6:26 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

>  > What I there do is move the entire frame to one side, C-x 5 2 to
>  > create a new frame of default size, C-x 5 0 to remove the windowframe
>  > that is unable to toggle between fullscreen and previous size because of
>  > ctwm restart.
>
> But this is a problem you had without setting 'frame-resize-pixelwise'
> too.  Right?

Yes.

The frame-resize-pixelwise setting is what I need.  Would be good to see
it in the FAQ windowmanager section.  Would be better for that section
to be retrievable from an apropos-init-file command.

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-07 11:11                             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-08 10:58                               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-08 12:42                                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-09  7:35                                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 2 replies; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-08 10:58 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

[-- Attachment #1: Type: text/plain, Size: 6565 bytes --]

 >> Maybe you can try the attached diff (it's against the release version)
 >> and set breakpoints at the four lines I marked with a
 >>
 >> // break-here
 >>
 >> comment.  Start gdb via run -Q, do F11 and restart CWTM.
 >
 > Here is the backtrace.
 >
 >     1  (gdb) info b
 >     2  Num     Type           Disp Enb Address            What
 >     3  1       breakpoint     keep y   0x000000000042edfd in gui_set_frame_parameters_1 at /u/xxx/src/emacs/29.4/src/frame.c:4461
 >     4  2       breakpoint     keep y   0x00000000004cf6fb in x_net_wm_state at /u/xxx/src/emacs/29.4/src/xterm.c:17504
 >     5  3       breakpoint     keep y   0x00000000004cf5c1 in x_handle_net_wm_state at /u/xxx/src/emacs/29.4/src/xterm.c:27249
 >     6  4       breakpoint     keep y   0x00000000004e52b5 in x_check_fullscreen at /u/xxx/src/emacs/29.4/src/xterm.c:27324
 >     7  (gdb) run -Q
 >     8  Starting program: /u/xxx/src/emacs/build-29-0/src/emacs -Q
 >     9  [New LWP 7051 of process 24519]
 >    10  [New LWP 795 of process 24519]
 >    11  [New LWP 1577 of process 24519]
 >    12  [New process 24519]
 >    13  [New process 24519]
 >    14
 >    15  Thread 1 "" hit Breakpoint 2, x_net_wm_state (f=f@entry=0x71354096ac10, window=<optimized out>) at /u/xxx/src/emacs/29.4/src/xterm.c:17504
 >    16  17504	    store_frame_param (f, Qfullscreen, lval); // break here
 >    17  (gdb) bt
 >    18  #0  x_net_wm_state (f=f@entry=0x71354096ac10, window=<optimized out>) at /u/xxx/src/emacs/29.4/src/xterm.c:17504
 >    19  #1  0x00000000004e9343 in handle_one_xevent (dpyinfo=dpyinfo@entry=0x713541033000, event=event@entry=0x7f7fff03c0d0, finish=finish@entry=0x7f7fff03c0cc, hold_quit=hold_quit@entry=0x7f7fff03c1c0) at /u/xxx/src/emacs/29.4/src/xterm.c:20998
 >    20  #2  0x00000000004f06cd in XTread_socket (terminal=<optimized out>, hold_quit=0x7f7fff03c1c0) at /u/xxx/src/emacs/29.4/src/xterm.c:24812
 >    21  #3  0x000000000051b7bd in gobble_input () at /u/xxx/src/emacs/29.4/src/keyboard.c:7427
 >    22  #4  0x000000000051b8d1 in handle_async_input () at /u/xxx/src/emacs/29.4/src/keyboard.c:7658
 >    23  #5  0x000000000051b8e7 in process_pending_signals () at /u/xxx/src/emacs/29.4/src/keyboard.c:7672
 >    24  #6  0x00000000005cb17a in wait_reading_process_output (time_limit=<optimized out>, nsecs=nsecs@entry=0, read_kbd=-1, do_display=do_display@entry=true, wait_for_cell=wait_for_cell@entry=0x0, wait_proc=wait_proc@entry=0x0, just_wait_proc=just_wait_proc@entry=0) at /u/xxx/src/emacs/29.4/src/process.c:5304
 >    25  #7  0x00000000004282e2 in sit_for (timeout=timeout@entry=0x7a, reading=reading@entry=true, display_option=display_option@entry=1) at /u/xxx/src/emacs/29.4/src/dispnew.c:6263
 >    26  #8  0x000000000051e53b in read_char (commandflag=1, map=map@entry=0x713540069963, prev_event=0x0, used_mouse_menu=used_mouse_menu@entry=0x7f7fff03c6bb, end_time=end_time@entry=0x0) at /u/xxx/src/emacs/29.4/src/lisp.h:767
 >    27  #9  0x000000000051f5ec in read_key_sequence (keybuf=keybuf@entry=0x7f7fff03c790, prompt=prompt@entry=0x0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false) at /u/xxx/src/emacs/29.4/src/keyboard.c:10084
 >    28  #10 0x000000000052090f in command_loop_1 () at /u/xxx/src/emacs/29.4/src/keyboard.c:1384
 >    29  #11 0x0000000000583676 in internal_condition_case (bfun=bfun@entry=0x520748 <command_loop_1>, handlers=handlers@entry=0x90, hfun=hfun@entry=0x5166aa <cmd_error>) at /u/xxx/src/emacs/29.4/src/eval.c:1474
 >    30  #12 0x00000000005113fb in command_loop_2 (handlers=handlers@entry=0x90) at /u/xxx/src/emacs/29.4/src/keyboard.c:1133
 >    31  #13 0x00000000005835ef in internal_catch (tag=tag@entry=0xfe40, func=func@entry=0x5113dd <command_loop_2>, arg=arg@entry=0x90) at /u/xxx/src/emacs/29.4/src/eval.c:1197
 >    32  #14 0x00000000005113ba in command_loop () at /u/xxx/src/emacs/29.4/src/keyboard.c:1111
 >    33  #15 0x00000000005162b8 in recursive_edit_1 () at /u/xxx/src/emacs/29.4/src/keyboard.c:720
 >    34  #16 0x00000000005165dd in Frecursive_edit () at /u/xxx/src/emacs/29.4/src/keyboard.c:803
 >    35  #17 0x0000000000510982 in main (argc=2, argv=0x7f7fff03cad8) at /u/xxx/src/emacs/29.4/src/emacs.c:2521

Thanks.  I attach a new diff to override the previous one which should
now trace all changes from fullheight to nil and vice-versa.  Please set
the breakpoints as you did before in the lines marked with // break here.

The new diff differs from the previous one in that I now trace the
fullheight behavior.  It's similar to the fullscreen one but one can run
it in one and the same virtual space and this make sure that no space
switches interfere.

Run Emacs as above, but zoom the Emacs window vertically verifying that
breakpoints are hit twice - type c to continue in each case - and then
restart CTWM.  Now things should get interesting.  At the first time a
breakpoint is hit do

p lval

It gets me 2 here.  Type c and wait if you get a second hit.  If so type

p lval

again.  This gets me 0 here and we reset the fullscreen parameter to
nil.  Please confirm whether you see the same.

Whatever the cause of this behavior is I observed the following here:

In x_net_wm_state we do

   int value = FULLSCREEN_NONE;

   x_get_current_wm_state (f, window, &value, &sticky, &shaded);

In x_get_current_wm_state we now get in the call for the first
breakpoint mentioned above an actual_size > 0 regardless of whether
xcb_get_property is used or XGetWindowProperty.  For the call of the
second breakpoint we get actual_size = 0 so the result of the call is
probably meaningless.  We use it nevertheless and so we reset the
fullscreen parameter to nil.

Unfortunately, fixing that behavior was of no help here.  Even if I do
not process calls where actual_size is 0 and the 'fullheight' value is
preserved (so Emacs does not reset fullheight by itself), it seems that
CTWM thinks that the window is no more fullheight with the old
fullheight sizes becoming the new normal sizes.

Note also that CTWM restart here triggers the following sequence of events

UnmapNotify, visible | iconified
MapNotify, not hidden & iconified, PS=754x976
UnmapNotify, visible | iconified
PropertyNotify, not hidden & iconified
MapNotify, not hidden & not iconified, PS=754x976

which means that the frame gets unmapped and iconified in between and
only then restored.  Whether and how these affect the fullscreen
behavior is yet unclear to me.

martin

[-- Attachment #2: lucid.diff --]
[-- Type: text/x-patch, Size: 2609 bytes --]

diff --git a/src/xterm.c b/src/xterm.c
index fd3e58f85f6..ef354a54d1e 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -18041,7 +18041,12 @@ x_net_wm_state (struct frame *f, Window window)
       break;
     }
 
-  store_frame_param (f, Qfullscreen, lval);
+  if (EQ (get_frame_param (f, Qfullscreen), Qfullheight)
+      || EQ (lval, Qfullheight))
+    store_frame_param (f, Qfullscreen, lval); // break here
+  else
+    store_frame_param (f, Qfullscreen, lval);
+
   store_frame_param (f, Qsticky, sticky ? Qt : Qnil);
   store_frame_param (f, Qshaded, shaded ? Qt : Qnil);
 }
@@ -21573,6 +21578,14 @@ handle_one_xevent (struct x_display_info *dpyinfo,
 
 #endif /* !defined USE_X_TOOLKIT && !defined USE_GTK */
 
+      if (f && CONSP (frame_size_history))
+	frame_size_history_extra
+	  (f, build_string ("ConfigureNotify"),
+	   FRAME_PIXEL_WIDTH (f), FRAME_PIXEL_HEIGHT (f),
+	       configureEvent.xconfigure.width,
+	   configureEvent.xconfigure.height,
+	   f->new_width, f->new_height);
+
 #ifdef USE_GTK
       if (!f
 	  && (f = any)
@@ -21581,15 +21594,6 @@ handle_one_xevent (struct x_display_info *dpyinfo,
 	      || !(configureEvent.xconfigure.width <= 1
 		   && configureEvent.xconfigure.height <= 1)))
         {
-
-	  if (CONSP (frame_size_history))
-	    frame_size_history_extra
-	      (f, build_string ("ConfigureNotify"),
-	       FRAME_PIXEL_WIDTH (f), FRAME_PIXEL_HEIGHT (f),
-	       configureEvent.xconfigure.width,
-	       configureEvent.xconfigure.height,
-	       f->new_width, f->new_height);
-
 #ifdef HAVE_XDBE
           if (FRAME_X_DOUBLE_BUFFERED_P (f))
             x_drop_xrender_surfaces (f);
@@ -28272,7 +28276,12 @@ x_handle_net_wm_state (struct frame *f, const XPropertyEvent *event)
       break;
     }
 
-  store_frame_param (f, Qfullscreen, lval);
+  if (EQ (get_frame_param (f, Qfullscreen), Qfullheight)
+      || EQ (lval, Qfullheight))
+    store_frame_param (f, Qfullscreen, lval); // break here
+  else
+    store_frame_param (f, Qfullscreen, lval);
+
   store_frame_param (f, Qsticky, sticky ? Qt : Qnil);
   store_frame_param (f, Qshaded, shaded ? Qt : Qnil);
 
@@ -28340,7 +28349,11 @@ x_check_fullscreen (struct frame *f)
 
   /* `x_net_wm_state' might have reset the fullscreen frame parameter,
      restore it. */
-  store_frame_param (f, Qfullscreen, lval);
+  if (EQ (get_frame_param (f, Qfullscreen), Qfullheight)
+      || EQ (lval, Qfullheight))
+    store_frame_param (f, Qfullscreen, lval); // break here
+  else
+    store_frame_param (f, Qfullscreen, lval);
 }
 
 /* This function is called by x_set_offset to determine whether the window

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-07 13:12                                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-08 11:02                                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-08 11:02 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 > My dot ctwmrc has these options commented out.  They may explain the
 > minus 3 pixel value detected.
 >
 >   #UseThreeDIconManagers
 >   #UseThreeDWMap
 >   #UseThreeDBorders
 >   #UseThreeDMenus
 >   #UseThreeDTitles

A value of -3 for the border width is still a pain.

 > I'm not able to use the gtk-3 build as it causes the tty/emacsclient session
 > to lockup.  The bug is documented.

It would suffice to start it once only.  Here the scroll bars are
botched.

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-08 10:58                               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-08 12:42                                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-08 13:58                                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-09  7:35                                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-08 12:42 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

           I attach a new diff to override the previous one which should
> now trace all changes from fullheight to nil and vice-versa.

Having frame.c and xterm.c restored from the release archive, I am
unable to apply lucid.diff without error.

# emacs-29.4 frame.c and xterm.c restored

  $ git apply lucid.diff 
  git apply lucid.diff 
  error: patch failed: src/xterm.c:21573
  error: src/xterm.c: patch does not apply

# emacs-29.4 frame.c and xterm.c restored

  $ git apply break-fullscreen.diff 
  git apply break-fullscreen.diff 
  $ git apply lucid.diff 
  git apply lucid.diff 
  error: patch failed: src/xterm.c:18041
  error: src/xterm.c: patch does not apply

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-08 12:42                                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-08 13:58                                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-08 15:44                                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-08 13:58 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 > Having frame.c and xterm.c restored from the release archive, I am
 > unable to apply lucid.diff without error.
 >
 > # emacs-29.4 frame.c and xterm.c restored
 >
 >    $ git apply lucid.diff
 >    git apply lucid.diff
 >    error: patch failed: src/xterm.c:21573
 >    error: src/xterm.c: patch does not apply
 >
 > # emacs-29.4 frame.c and xterm.c restored
 >
 >    $ git apply break-fullscreen.diff
 >    git apply break-fullscreen.diff
 >    $ git apply lucid.diff
 >    git apply lucid.diff
 >    error: patch failed: src/xterm.c:18041
 >    error: src/xterm.c: patch does not apply

Please forget about break-fullscreen.diff.  Unless you have other
changes you want to preserve do

git reset --hard
git apply lucid.diff

If the latter fails again do

git apply lucid.diff --verbose | tee

and post me here what it says.

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-08 13:58                                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-08 15:44                                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-08 16:16                                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-08 15:44 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

                                              Unless you have other
> changes you want to preserve do
>
> git reset --hard
> git apply lucid.diff

Even if the full release archive is newly unpacked

 $ wget https://ftp.gnu.org/gnu/emacs/emacs-29.4.tar.xz.sig 
 $ wget https://ftp.gnu.org/gnu/emacs/emacs-29.4.tar.xz 
 $ gpg --verify emacs-29.4.tar.xz.sig 
   gpg --verify emacs-29.4.tar.xz.sig 
   gpg: assuming signed data in `emacs-29.4.tar.xz'
   gpg: Signature made 23 June 2024 01:04:32 am AEST using RSA key ID 5957135D
   gpg: Good signature from "Stefan Kangas <stefan@marxist.se>"
   gpg:                 aka "Stefan Kangas <skangas@skangas.se>"
   gpg: Note: This key has expired!
   Primary key fingerprint: CEA1 DE21 AB10 8493 CC9C  6574 2E82 323B 8F43 53EE
        Subkey fingerprint: BB02 E407 AE9E AA87 C9E7  2A1D 2D4E 1FE9 5957 135D
 $ tar xJf emacs-29.4.tar.xz 

the lucid.diff patch fails as follows

 $ git apply lucid.diff
 git apply lucid.diff
 error: patch failed: src/xterm.c:21573
 error: src/xterm.c: patch does not apply
 $ git apply lucid.diff --verbose | tee
 git apply lucid.diff --verbose | tee
 Checking patch src/xterm.c...
 Hunk #1 succeeded at 17500 (offset -541 lines).
 error: while searching for:
 
 #endif /* !defined USE_X_TOOLKIT && !defined USE_GTK */
 
 #ifdef USE_GTK
       if (!f
 	  && (f = any)
 
 error: patch failed: src/xterm.c:21573
 error: src/xterm.c: patch does not apply
 

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-08 15:44                                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-08 16:16                                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-08 16:16 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

[-- Attachment #1: Type: text/plain, Size: 493 bytes --]

 >     gpg: Signature made 23 June 2024 01:04:32 am AEST using RSA key ID 5957135D
...
 >   error: while searching for:
 >
 >   #endif /* !defined USE_X_TOOLKIT && !defined USE_GTK */
 >
 >   #ifdef USE_GTK
 >         if (!f
 >   	  && (f = any)
 >
 >   error: patch failed: src/xterm.c:21573
 >   error: src/xterm.c: patch does not apply

Your tar file is probably too old.  I attach a diff that doesn't contain
that hunk.  If it's needed, I'll tell you later how to do that manually.

martin

[-- Attachment #2: lucid-2.diff --]
[-- Type: text/x-patch, Size: 1552 bytes --]

diff --git a/src/xterm.c b/src/xterm.c
index fd3e58f85f6..3087e10dddf 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -18041,7 +18041,12 @@ x_net_wm_state (struct frame *f, Window window)
       break;
     }
 
-  store_frame_param (f, Qfullscreen, lval);
+  if (EQ (get_frame_param (f, Qfullscreen), Qfullheight)
+      || EQ (lval, Qfullheight))
+    store_frame_param (f, Qfullscreen, lval); // break here
+  else
+    store_frame_param (f, Qfullscreen, lval);
+
   store_frame_param (f, Qsticky, sticky ? Qt : Qnil);
   store_frame_param (f, Qshaded, shaded ? Qt : Qnil);
 }
@@ -28272,7 +28277,12 @@ x_handle_net_wm_state (struct frame *f, const XPropertyEvent *event)
       break;
     }
 
-  store_frame_param (f, Qfullscreen, lval);
+  if (EQ (get_frame_param (f, Qfullscreen), Qfullheight)
+      || EQ (lval, Qfullheight))
+    store_frame_param (f, Qfullscreen, lval); // break here
+  else
+    store_frame_param (f, Qfullscreen, lval);
+
   store_frame_param (f, Qsticky, sticky ? Qt : Qnil);
   store_frame_param (f, Qshaded, shaded ? Qt : Qnil);
 
@@ -28340,7 +28350,11 @@ x_check_fullscreen (struct frame *f)
 
   /* `x_net_wm_state' might have reset the fullscreen frame parameter,
      restore it. */
-  store_frame_param (f, Qfullscreen, lval);
+  if (EQ (get_frame_param (f, Qfullscreen), Qfullheight)
+      || EQ (lval, Qfullheight))
+    store_frame_param (f, Qfullscreen, lval); // break here
+  else
+    store_frame_param (f, Qfullscreen, lval);
 }
 
 /* This function is called by x_set_offset to determine whether the window

^ permalink raw reply related	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-08  6:26                                                   ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-08 16:57                                                     ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-08 18:01                                                       ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-08 16:57 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 > The frame-resize-pixelwise setting is what I need.  Would be good to see
 > it in the FAQ windowmanager section.  Would be better for that section
 > to be retrievable from an apropos-init-file command.

What is the "FAQ windowmanager" section?

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-08 16:57                                                     ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-08 18:01                                                       ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-09  9:10                                                         ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-08 18:01 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

> What is the "FAQ windowmanager" section?

I suppose there is an FAQ for emacs that has a window manager section.

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-08 10:58                               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-08 12:42                                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-09  7:35                                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-09  9:11                                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-09  7:35 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

> Run Emacs as above, but zoom the Emacs window vertically verifying that
> breakpoints are hit twice - type c to continue in each case - and then

Having applied the patch lucid-2.diff, I find gdb is unable to continue
at the first 'c' upon windowframe fullheight toggle.

   1  (gdb) b xterm.c:17505
   2  Breakpoint 1 at 0x4cf672: file /u/xxx/src/emacs/29.4/src/xterm.c, line 17505.
   3  (gdb) b xterm.c:27251
   4  Breakpoint 2 at 0x4cf533: file /u/xxx/src/emacs/29.4/src/xterm.c, line 27251.
   5  (gdb) b xterm.c:27327
   6  Breakpoint 3 at 0x4e5216: file /u/xxx/src/emacs/29.4/src/xterm.c, line 27327.
   7  (gdb) info b
   8  Num     Type           Disp Enb Address            What
   9  1       breakpoint     keep y   0x00000000004cf672 in x_net_wm_state at /u/xxx/src/emacs/29.4/src/xterm.c:17505
  10  2       breakpoint     keep y   0x00000000004cf533 in x_handle_net_wm_state at /u/xxx/src/emacs/29.4/src/xterm.c:27251
  11  3       breakpoint     keep y   0x00000000004e5216 in x_check_fullscreen at /u/xxx/src/emacs/29.4/src/xterm.c:27327
  12  (gdb) run -Q
  13  Starting program: /u/xxx/src/emacs/build-29-0/src/emacs -Q
  14  [New LWP 24268 of process 28138]
  15  [New LWP 27847 of process 28138]
  16  [New LWP 26167 of process 28138]
  17  [New process 28138]
  18  [New process 28138]
  19  
  20  Thread 1 "" hit Breakpoint 1, x_net_wm_state (f=f@entry=0x74cbbd8d4c10, window=<optimized out>) at /u/xxx/src/emacs/29.4/src/xterm.c:17505
  21  17505	    store_frame_param (f, Qfullscreen, lval); // break here
  22  (gdb) c
  23  Continuing.
  24  [New process 28138]
  25  /usr/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/infrun.c:5683: internal-error: int finish_step_over(execution_control_state*): Assertion `ecs->event_thread->control.trap_expected' failed.
  26  A problem internal to GDB has been detected,
  27  further debugging may prove unreliable.
  28  Quit this debugging session? (y or n) n
  29  Please answer y or n.
  30  /usr/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/infrun.c:5683: internal-error: int finish_step_over(execution_control_state*): Assertion `ecs->event_thread->control.trap_expected' failed.
  31  A problem internal to GDB has been detected,
  32  further debugging may prove unreliable.
  33  Quit this debugging session? (y or n)

>  > I'm not able to use the gtk-3 build as it causes the tty/emacsclient session
>  > to lockup.  The bug is documented.
>
> It would suffice to start it once only.  Here the scroll bars are
> botched.

Should I build the gtk-3 variant to check the scroll bars are broken?

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-08 18:01                                                       ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-09  9:10                                                         ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-09 14:48                                                           ` Eli Zaretskii
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-09  9:10 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 > I suppose there is an FAQ for emacs that has a window manager section.

If you find one, please tell me.

Thanks, martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-09  7:35                                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-09  9:11                                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-09 11:11                                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-09 14:51                                     ` Eli Zaretskii
  0 siblings, 2 replies; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-09  9:11 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 >    22  (gdb) c
 >    23  Continuing.
 >    24  [New process 28138]
 >    25  /usr/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/infrun.c:5683: internal-error: int finish_step_over(execution_control_state*): Assertion `ecs->event_thread->control.trap_expected' failed.
 >    26  A problem internal to GDB has been detected,
 >    27  further debugging may prove unreliable.
 >    28  Quit this debugging session? (y or n) n
 >    29  Please answer y or n.
 >    30  /usr/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/infrun.c:5683: internal-error: int finish_step_over(execution_control_state*): Assertion `ecs->event_thread->control.trap_expected' failed.
 >    31  A problem internal to GDB has been detected,
 >    32  further debugging may prove unreliable.
 >    33  Quit this debugging session? (y or n)

Maybe Eli has an idea.  Or maybe you find a newer gdb that doesn't have
that problem.  I have never used NetBSD.

 > Should I build the gtk-3 variant to check the scroll bars are broken?

If you find the time, please do.  It's a problem we should mention in
etc/PROBLEMS so people using CWTM will build with Lucid or Motif
instead.  Here the inner geometry of frames is also broken in the sense
that mouse clicks in the left fringe are no more detected if there is a
scroll bar on the left of that fringe (in another Emacs window).  So
it's not a purely aesthetic problem here either.

martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-09  9:11                                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-09 11:11                                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-10 15:54                                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-09 14:51                                     ` Eli Zaretskii
  1 sibling, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-09 11:11 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

>  > Should I build the gtk-3 variant to check the scroll bars are broken?
>
> If you find the time, please do.  It's a problem we should mention in
> etc/PROBLEMS so people using CWTM will build with Lucid or Motif
> instead.  Here the inner geometry of frames is also broken in the sense
> that mouse clicks in the left fringe are no more detected if there is a
> scroll bar on the left of that fringe (in another Emacs window).  So
> it's not a purely aesthetic problem here either.

When I click on the left fringe, the echo area says,

     <left-fringe><mouse-1> is undefined

where the foreground windowframe is regular size and immediately below
the windowframe is fullheight.

At the transition point when all frame decorations disappear in the
course of ctwm restart, it looks as though the frame translates in the
northwest direction then goes back when the decorations re-appear.

Normally, I don't use the tool bar and make it invisible, here I see the
toolbar has all button icons except for icon+save and icon+undo.

Mousing around to reproduce your observations, I found the toolbar would
flash to all buttons being icon+text when clicking on the scrollbar area
to scroll.  But at the next emacs session I wasn't able to reproduce
this glitch.

Nothing stands out as misbehaving around the scrollbars.  Normally, I
hide the scrollbar.

The following are window frame attributes before and after ctwm restart.

;; (setq-default frame-resize-pixelwise t) => t
;; windowframe is at fullheight

29.4 gtk-3 before ctwm restart

xwininfo: Window id: 0x340001e "*scratch* - GNU Emacs at xxx"

  Absolute upper-left X:  524
  Absolute upper-left Y:  3
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 672
  Height: 1069
  Depth: 32
  Visual: 0x8d
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x340001d (not installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +524+3  -724+3  -724-8  +524-8
  -geometry 79x58+521+0

(frame-geometry) =>
((outer-position 521 . 0) (outer-size 672 . 1069)
 (external-border-size -3 . -3) (outer-border-width . 0)
 (title-bar-size 0 . 6) (menu-bar-external . t)
 (menu-bar-size 672 . 25) (tab-bar-size 0 . 0)
 (tool-bar-external . t) (tool-bar-position . top)
 (tool-bar-size 672 . 41) (internal-border-width . 0))

29.4 gtk-3 after ctwm restart

xwininfo: Window id: 0x340001e "*scratch* - GNU Emacs at xxx"

  Absolute upper-left X:  524
  Absolute upper-left Y:  3
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 672
  Height: 1069
  Depth: 32
  Visual: 0x8d
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x340001d (not installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +524+3  -724+3  -724-8  +524-8
  -geometry 79x58+521+0

(frame-geometry) =>
((outer-position 521 . 0) (outer-size 672 . 1069)
 (external-border-size -3 . -3) (outer-border-width . 0)
 (title-bar-size 0 . 6) (menu-bar-external . t)
 (menu-bar-size 672 . 25) (tab-bar-size 0 . 0)
 (tool-bar-external . t) (tool-bar-position . top)
 (tool-bar-size 672 . 41) (internal-border-width . 0))


-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-09  9:10                                                         ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-09 14:48                                                           ` Eli Zaretskii
  0 siblings, 0 replies; 57+ messages in thread
From: Eli Zaretskii @ 2024-12-09 14:48 UTC (permalink / raw)
  To: martin rudalics; +Cc: van.ly, 74496

> Date: Mon, 9 Dec 2024 10:10:34 +0100
> Cc: eliz@gnu.org, 74496@debbugs.gnu.org
> From: martin rudalics <rudalics@gmx.at>
> 
>  > I suppose there is an FAQ for emacs that has a window manager section.
> 
> If you find one, please tell me.

The phrase "window manager" is found in the Emacs FAQ exactly once.





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-09  9:11                                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-09 11:11                                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-09 14:51                                     ` Eli Zaretskii
  2024-12-09 17:14                                       ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 57+ messages in thread
From: Eli Zaretskii @ 2024-12-09 14:51 UTC (permalink / raw)
  To: martin rudalics; +Cc: van.ly, 74496

> Date: Mon, 9 Dec 2024 10:11:03 +0100
> Cc: eliz@gnu.org, 74496@debbugs.gnu.org
> From: martin rudalics <rudalics@gmx.at>
> 
>  >    22  (gdb) c
>  >    23  Continuing.
>  >    24  [New process 28138]
>  >    25  /usr/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/infrun.c:5683: internal-error: int finish_step_over(execution_control_state*): Assertion `ecs->event_thread->control.trap_expected' failed.
>  >    26  A problem internal to GDB has been detected,
>  >    27  further debugging may prove unreliable.
>  >    28  Quit this debugging session? (y or n) n
>  >    29  Please answer y or n.
>  >    30  /usr/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/infrun.c:5683: internal-error: int finish_step_over(execution_control_state*): Assertion `ecs->event_thread->control.trap_expected' failed.
>  >    31  A problem internal to GDB has been detected,
>  >    32  further debugging may prove unreliable.
>  >    33  Quit this debugging session? (y or n)
> 
> Maybe Eli has an idea.  Or maybe you find a newer gdb that doesn't have
> that problem.  I have never used NetBSD.

Which version of GDB is that?





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-09 14:51                                     ` Eli Zaretskii
@ 2024-12-09 17:14                                       ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-09 18:13                                         ` Eli Zaretskii
  0 siblings, 1 reply; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-09 17:14 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, 74496


Eli Zaretskii <eliz@gnu.org> writes:

>> Maybe Eli has an idea.  Or maybe you find a newer gdb that doesn't have
>> that problem.  I have never used NetBSD.
>
> Which version of GDB is that?

  $ gdb --version
  GNU gdb (GDB) 11.0.50.20200914-git

pkgsrc lists earlier versions

  gdb-10.1nb6          Symbolic debugger for multiple language frontends
  gdb-7.11nb11         Symbolic debugger for multiple language frontends

pkgsrc/wip lists

  gdb-git gdb5    gdb6    gdb8

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-09 17:14                                       ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-09 18:13                                         ` Eli Zaretskii
  2024-12-09 18:30                                           ` Eli Zaretskii
  2024-12-09 22:42                                           ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 2 replies; 57+ messages in thread
From: Eli Zaretskii @ 2024-12-09 18:13 UTC (permalink / raw)
  To: Van Ly; +Cc: rudalics, 74496

> From: Van Ly <van.ly@SDF.ORG>
> Cc: rudalics@gmx.at, 74496@debbugs.gnu.org
> Date: Mon, 09 Dec 2024 17:14:26 +0000
> 
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> Maybe Eli has an idea.  Or maybe you find a newer gdb that doesn't have
> >> that problem.  I have never used NetBSD.
> >
> > Which version of GDB is that?
> 
>   $ gdb --version
>   GNU gdb (GDB) 11.0.50.20200914-git
> 
> pkgsrc lists earlier versions
> 
>   gdb-10.1nb6          Symbolic debugger for multiple language frontends
>   gdb-7.11nb11         Symbolic debugger for multiple language frontends
> 
> pkgsrc/wip lists
> 
>   gdb-git gdb5    gdb6    gdb8

Nothing newer?  The last released version of GDB is 15.2, with 16.1
around the corner.





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-09 18:13                                         ` Eli Zaretskii
@ 2024-12-09 18:30                                           ` Eli Zaretskii
  2024-12-11 17:00                                             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-09 22:42                                           ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 57+ messages in thread
From: Eli Zaretskii @ 2024-12-09 18:30 UTC (permalink / raw)
  To: van.ly; +Cc: rudalics, 74496

> Cc: rudalics@gmx.at, 74496@debbugs.gnu.org
> Date: Mon, 09 Dec 2024 20:13:26 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> 
> > From: Van Ly <van.ly@SDF.ORG>
> > Cc: rudalics@gmx.at, 74496@debbugs.gnu.org
> > Date: Mon, 09 Dec 2024 17:14:26 +0000
> > 
> > 
> > Eli Zaretskii <eliz@gnu.org> writes:
> > 
> > >> Maybe Eli has an idea.  Or maybe you find a newer gdb that doesn't have
> > >> that problem.  I have never used NetBSD.
> > >
> > > Which version of GDB is that?
> > 
> >   $ gdb --version
> >   GNU gdb (GDB) 11.0.50.20200914-git
> > 
> > pkgsrc lists earlier versions
> > 
> >   gdb-10.1nb6          Symbolic debugger for multiple language frontends
> >   gdb-7.11nb11         Symbolic debugger for multiple language frontends
> > 
> > pkgsrc/wip lists
> > 
> >   gdb-git gdb5    gdb6    gdb8
> 
> Nothing newer?  The last released version of GDB is 15.2, with 16.1
> around the corner.

But if not, maybe try to downgrade to gdb-10.1n6, since what you have
now is a development snapshot of GDB 11, which could have bugs.





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-09 18:13                                         ` Eli Zaretskii
  2024-12-09 18:30                                           ` Eli Zaretskii
@ 2024-12-09 22:42                                           ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 0 replies; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-09 22:42 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, 74496


Eli Zaretskii <eliz@gnu.org> writes:

>> pkgsrc/wip lists
>> 
>>   gdb-git gdb5    gdb6    gdb8
>
> Nothing newer?  The last released version of GDB is 15.2, with 16.1
> around the corner.

gdb-git is at 8.0

        https://github.com/wallento/binutils-gdb/

I guess NetBSD project has different priorities.  Or, people roll their
own gdb and haven't packaged that for redistribution.

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-09 11:11                                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-10 15:54                                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-10 17:42                                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 57+ messages in thread
From: martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-10 15:54 UTC (permalink / raw)
  To: Van Ly; +Cc: eliz, 74496

 > When I click on the left fringe, the echo area says,
 >
 >       <left-fringe><mouse-1> is undefined

That's the expected reaction.

 > where the foreground windowframe is regular size and immediately below
 > the windowframe is fullheight.
 >
 > At the transition point when all frame decorations disappear in the
 > course of ctwm restart, it looks as though the frame translates in the
 > northwest direction then goes back when the decorations re-appear.

IIUC that's the behavior for all windows, not just the Emacs ones.

 > Normally, I don't use the tool bar and make it invisible, here I see the
 > toolbar has all button icons except for icon+save and icon+undo.

Interesting: On xfce here these two are the only ones that have the
'both-horiz' style.  Since I never use the tool bar I have no idea how
they should look like.

 > Mousing around to reproduce your observations, I found the toolbar would
 > flash to all buttons being icon+text when clicking on the scrollbar area
 > to scroll.  But at the next emacs session I wasn't able to reproduce
 > this glitch.

Don't worry.  Does the toolbar work as expected under Lucid?

 > Nothing stands out as misbehaving around the scrollbars.  Normally, I
 > hide the scrollbar.

Then let's not bother any more.  Normally the GTK scroll bars follow the
current theme but I have no idea what a theme would be under CTWM.

 > The following are window frame attributes before and after ctwm restart.

These look good IMO.

Thanks for checking, martin





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-10 15:54                                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-10 17:42                                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-10 17:42 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, 74496


martin rudalics <rudalics@gmx.at> writes:

> Don't worry.  Does the toolbar work as expected under Lucid?

On emacs 30.0.91, the tool bar shows all icons under Lucid.

The buttons work as expected.  The "x" icon for discard buffer
intuitively looks "handle with extra care".  Aesthetically, the icons
are difficult on my eyes.  GTK-3 and Lucid have the same file cabinet
icon.

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

* bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts
  2024-12-09 18:30                                           ` Eli Zaretskii
@ 2024-12-11 17:00                                             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 57+ messages in thread
From: Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-11 17:00 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, 74496


Eli Zaretskii <eliz@gnu.org> writes:

>> Nothing newer?  The last released version of GDB is 15.2, with 16.1
>> around the corner.
>
> But if not, maybe try to downgrade to gdb-10.1n6, since what you have
> now is a development snapshot of GDB 11, which could have bugs.
>

The NetBSD folks could patch gdb-11.  The next version is gdb-13 on the
current release redistribution.  I am on the netbsd-10 stable release.

=> https://mail-index.netbsd.org/netbsd-users/2024/12/11/msg032056.html .

The frame-resize-pixelwise t setting is enough to bury this bug report
email trail?

-- 
vl





^ permalink raw reply	[flat|nested] 57+ messages in thread

end of thread, other threads:[~2024-12-11 17:00 UTC | newest]

Thread overview: 57+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-23 18:28 bug#74496: 30.0.91; fullscreen frame set with F11 is shifted when ctwm restarts Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-30 10:23 ` Eli Zaretskii
2024-11-30 10:36   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-30 13:03     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-30 16:53       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-30 18:21         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-30 19:01           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-30 19:25             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-01  8:46               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-01  9:59                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-01 11:05                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-01 14:26                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-01 17:50                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-02 16:04                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-03  8:24                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-04  5:58                             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-04  9:53                               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-05  2:39                                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-05  9:23                                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-05 11:14                                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-05 18:02                                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-06 10:42                                         ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-07 14:03                                           ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-07 15:52                                             ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-07 16:33                                               ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-07 17:36                                                 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-08  6:26                                                   ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-08 16:57                                                     ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-08 18:01                                                       ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-09  9:10                                                         ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-09 14:48                                                           ` Eli Zaretskii
2024-12-07 13:12                                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-08 11:02                                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-02 15:47                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-02 16:22                       ` Eli Zaretskii
2024-12-04  5:15                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-04  9:52                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-07 11:11                             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-08 10:58                               ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-08 12:42                                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-08 13:58                                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-08 15:44                                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-08 16:16                                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-09  7:35                                 ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-09  9:11                                   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-09 11:11                                     ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-10 15:54                                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-10 17:42                                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-09 14:51                                     ` Eli Zaretskii
2024-12-09 17:14                                       ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-09 18:13                                         ` Eli Zaretskii
2024-12-09 18:30                                           ` Eli Zaretskii
2024-12-11 17:00                                             ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-09 22:42                                           ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-03  8:24                       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-04  5:47                         ` Van Ly via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-04  9:53                           ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).