Subject: 29.0.50; pgtk: Gtk-CRITICAL warning with customized default face
From: Stephen Berman <[email-masked]>
To: [email-masked]
Date: Wed, 09 Feb 2022 17:51:46 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

0. emacs -Q
1. Sanity check: evaluating the following sexp displays a non-GTK
   tooltip and the shell emits no warning:
   (let (use-system-tooltips)
    (tooltip-show "Test"))
2. Evaluate this sexp:
   (custom-set-faces '(default ((t (:background "lightblue")))))
3. Evaluate the sexp in step 1 again:
=> A non-GTK tooltip is displayed and the shell emit a warning:

emacs-pgtk:12321): Gtk-CRITICAL **: 17:05:36.422: gtk_css_provider_load_from_data: assertion 'GTK_IS_CSS_PROVIDER (css_provider)' failed

In my tests this happens only when customizing the `default' face
(though admittedly I haven't tested all faces nor all face attributes).
It also happens when step 2 is replaced by loading any built-in theme
(all of which customize the `default' face).  (As a test I created a
theme that does not customize the `default' face and with that theme did
not get the warning.)

My first pgtk-build that shows this warning is from commit
dc5930ba973c9d921e9124b7afa1a65bba568b45.  My previous pgtk-build at
commit 988d3d79bac0343dd2b1b89d1b15470edbb5e6ac does not show the
warning with the above recipe.  Unfortunately, I don't have time now to
do a git bisect to pinpoint the commit that causes the warning to be
emitted.

There is no warning if use-system-tooltips is non-nil.  And there is no
warning with the above recipe in a non-PGTK GTK3 build.

In GNU Emacs 29.0.50 (build 10, x86_64-pc-linux-gnu, GTK+ Version 3.24.31, cairo version 1.17.4)
 of 2022-02-09 built on strobelfs2
Repository revision: 2386aa8a5d1b8b3f38361ee2d5228f739dfe2c3a
Repository branch: master
System Description: Linux From Scratch r11.0-115

Configured using:
 'configure --with-pgtk --with-xwidgets 'CFLAGS=-Og -g3'
 PKG_CONFIG_PATH=/opt/qt5/lib/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBSYSTEMD LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PGTK PNG
RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP XIM
XWIDGETS GTK3 ZLIB