Subject: Re: bug#38497: 27.0.50; Frame is not rendered when frame-resize-pixelwise it 't

From: Ihor Radchenko <[email-masked]>
Date: Sat, 07 Dec 2019 21:35:19 +0800

> ... Couldy you try in
> widget.c and xterm.c to selectively make frame_resize_pixelwise have
> no effect, so we could possibly locate the direct source of the
> problem?  

The attached patch is the minimal patch making the rendering issue
disappear. Also, I cannot reproduce the issue when I try to configure
emacs just with ./configure --with-x-toolkit=lucid. The options I used
to compile emacs in my OS (I am using gentoo) are

./configure --prefix=/usr --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --mandir=/usr/share/man
--infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc
--localstatedir=/var/lib --disable-silent-rules
--docdir=/usr/share/doc/emacs-vcs-27.0.9999
--htmldir=/usr/share/doc/emacs-vcs-27.0.9999/html --libdir=/usr/lib64
--program-suffix=-emacs-27-vcs --includedir=/usr/include/emacs-27-vcs
--infodir=/usr/share/info/emacs-27-vcs --localstatedir=/var
--enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp
--without-compress-install --without-hesiod --without-pop
--with-dumping=pdumper --with-file-notification=inotify --enable-acl
--with-dbus --with-modules --without-gameuser --with-libgmp --with-gpm
--without-json --without-kerberos --without-kerberos5 --with-lcms2
--with-xml2 --without-mailutils --without-selinux --with-gnutls
--without-libsystemd --with-threads --without-wide-int --with-zlib
--with-sound=alsa --with-x --without-ns --without-gconf
--without-gsettings --without-toolkit-scroll-bars --with-gif --with-jpeg
--with-png --with-rsvg --with-tiff --with-xpm --with-imagemagick
--with-xft --with-cairo --without-harfbuzz --without-libotf
--without-m17n-flt --with-x-toolkit=lucid --with-xaw3d 

Regards,
Ihor

diff --git a/src/widget.c b/src/widget.c
index e8eaf0fadf..f92baa2cef 100644
--- a/src/widget.c
+++ b/src/widget.c
@@ -268,12 +268,8 @@ set_frame_size (EmacsFrame ew)
   if (! XtIsSubclass (wmshell, shellWidgetClass)) emacs_abort ();
 
   char_to_pixel_size (ew, w, h, &pixel_width, &pixel_height);
-  ew->core.width = (frame_resize_pixelwise
-		    ? FRAME_PIXEL_WIDTH (f)
-		    : pixel_width);
-  ew->core.height = (frame_resize_pixelwise
-		     ? FRAME_PIXEL_HEIGHT (f)
-		     : pixel_height);
+  ew->core.width = (pixel_width);
+  ew->core.height = (pixel_height);
 
   frame_size_history_add
     (f, Qset_frame_size, FRAME_TEXT_WIDTH (f), FRAME_TEXT_HEIGHT (f),
@@ -315,8 +311,8 @@ update_wm_hints (EmacsFrame ew)
   XtVaSetValues (wmshell,
 		 XtNbaseWidth, (XtArgVal) base_width,
 		 XtNbaseHeight, (XtArgVal) base_height,
-		 XtNwidthInc, (XtArgVal) (frame_resize_pixelwise ? 1 : cw),
-		 XtNheightInc, (XtArgVal) (frame_resize_pixelwise ? 1 : ch),
+		 XtNwidthInc, (XtArgVal) (cw),
+		 XtNheightInc, (XtArgVal) (ch),
 		 XtNminWidth, (XtArgVal) base_width,
 		 XtNminHeight, (XtArgVal) base_height,
 		 NULL);

martin rudalics <[email-masked]> writes:

>  > Oh. I meant maximised, not full screen. Initially, I observed the issue
>  > with maximised emacs frames. (My title bar is located at the bottom of
>  > the frame, not on top).
>
> I see it, now.  The following is a bit tedious: Couldy you try in
> widget.c and xterm.c to selectively make frame_resize_pixelwise have
> no effect, so we could possibly locate the direct source of the
> problem?  There are four instances of this, three in widget.c and one
> in xterm.c.  For example, for the latter, you would have to change the
> two lines
>
>    size_hints.width_inc = frame_resize_pixelwise ? 1 : FRAME_COLUMN_WIDTH (f);
>    size_hints.height_inc = frame_resize_pixelwise ? 1 : FRAME_LINE_HEIGHT (f);
>
> in x_wm_set_size_hint in xterm.c to
>
>    size_hints.width_inc = FRAME_COLUMN_WIDTH (f);
>    size_hints.height_inc = FRAME_LINE_HEIGHT (f);
>
> Thanks, martin