[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1051580: bookworm-pu: package gtk+3.0/3.24.38-2~deb12u1



Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian.org@packages.debian.org
Usertags: pu
X-Debbugs-Cc: gtk+3.0@packages.debian.org
Control: affects -1 + src:gtk+3.0

[ Reason ]
New upstream bugfix release. I started looking at cherry-picking these
changes to bookworm, but then decided that taking the new upstream
release in its entirety would be lower-risk.

[ Impact ]
Assorted bug fixes from upstream, some of them fixing known regressions
in 3.24.37, none of them with Debian bug numbers that I have been able
to correlate.

[ Tests ]
A prerelease (equivalent except for the changelog and version number) is
available in https://people.debian.org/~smcv/12.2/pool/main/g/gtk+3.0/,
and I have been using it for a couple of weeks on two bookworm GNOME
machines (a gaming desktop and my partner's laptop) with no obvious
regressions.

The same changes have been in testing and unstable since July.
Subsequent changes in unstable (enabling the libcloudproviders feature)
are intentionally not included.

[ Risks ]
Upstream considers GTK 3 to be a legacy version, so QA on GTK 3 changes
is not always as thorough as we would like. If there are regressions they
are likely to be of a magnitude similar to the bugs fixed here, and on
balance I think we are better off with these changes than without them.

All changes are narrowly-targeted bug fixes, except for the changes in
gtk/inspector/, which are only active when a special debugging UI is
enabled (by running apps with GTK_DEBUG=interactive, or enabling a dconf
setting and then using Ctrl+Shift+D/Ctrl+Shift+I shortcuts). The changes
in gtk/inspector/ are not really something I would normally say is stable
point release material, but they seem harmless enough, and don't seem worth
reverting.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
      (filtered to exclude translations, deleted patches, and
      Windows-/macOS-only code)
  [x] the issue is verified as fixed in unstable

[ Changes ]
d/control.in, d/gbp.conf: Track the bookworm branch.

d/control: Automatically regenerated from d/control.in.
I don't know why this made Jeremy disappear from the Uploaders (possibly
because his name was variously spelled with/without the accent on the
í?) but this doesn't really matter for stable.

gdk/gdkgl.c:
    - Fix application crash with "Couldn't find current GLX or EGL context"
      under unknown circumstances (gtk#5711 upstream, regression in 3.24.37)

gdk/gdkpixbuf-drawable.c (code change involving cairo_surface_mark_dirty):
    - Fix a gnome-flashback crash when taking screenshots
      (gtk#5691, regression in 3.24.37)

gdk/gdkpixbuf-drawable.c (the rest), gtk/gtktext*.c, gtk/gtktreeview*.c:
    - Documentation fixes

gdk/wayland/gdkdisplay-wayland.c:
    - Fix application crash when running under Wayland with the
      cursor-theme-size GSetting set to 0 (gtk#5700)

gdk/wayland/gdkscreen-wayland.c:
    - Ensure apps launched under Wayland after setting
      org.gtk.Settings.Modules will load the desired modules at startup
      (gtk!5733)

gdk/wayland/gdkwindow-wayland.c:
    - Don't crash in Wayland environments that don't implement
      xdg_activation_v1, such as Enlightenment (Closes: #1043000)

gtk/gtkapplication-dbus.c:
    - Fix a crash in gtk_application_set_screensaver_active() during
      app exit (gtk#5775)
      - this is an incomplete solution, and a post-3.24.38 follow-up
        is needed to resolve #1051220, but I want to get that tested in
        testing/unstable before backporting it

gtk/gtkfilechooserwidget.c, gtk/gtkfilesystemmodel.c, gtk/gtkpathbar.c:
    - Silence GFileInfo warnings if used with a backported version of GLib
      (gtk!5645)

gtk/inspector:
    - Show more information in the "inspector" debugging interface: Pango
      backend, input method module (gtk!5706, gtk#4512)

gtk/theme/Adwaita:
    - Use a light colour for the caret in dark themes, making it much
      easier to see in some apps, in particular Evince (evince#1842)

testsuite/reftests/meson.build:
    - testsuite: Disable some reftests that are not reliable

po/, po-properties/ (excluded from diff): Translation updates.

[ Other info ]
There are various other fixes queued up on upstream's gtk-3-24 branch
for release in 3.24.39, but no sign of an upstream release for them
so far. I want to give those changes some testing in testing/unstable
before proposing some or all of them for a stable update - I hope the
stable release managers won't mind reviewing a few smaller updates,
rather than one very large update?

The changes queued post-3.24.38 in gtk-3-24 do not include anything that
is obviously fixing a regression in the changes proposed here.

There *is* a change queued in gtk-3-24 fixing a regression in *3.24.37*
(#1051220), wich in theory already affects bookworm, although in practice
it is accidentally mitigated by bookworm's older version of GLib. I'm
considering that to be the highest-priority of the post-3.24.38 changes.

Thanks,
    smcv
debdiff gtk+3.0_3.24.37-2.dsc gtk+3.0_3.24.38-2~deb12u1.dsc | filterdiff -p1 \
    -x'debian/patches/*.patch' \
    -x'po-properties/*.po' \
    -x'po/*.po' \
    -x'gdk/quartz/*' \
    -x'gdk/win32/*'

diffstat for gtk+3.0-3.24.37 gtk+3.0-3.24.38

 NEWS                                                   |   50 
 debian/changelog                                       |   52 
 debian/control                                         |    4 
 debian/control.in                                      |    2 
 debian/gbp.conf                                        |    2 
 debian/patches/Update-Galician-translation.patch       |  640 --
 debian/patches/Update-Hebrew-translation.patch         | 3165 ------------
 debian/patches/selection-Use-the-right-mime-type.patch |   82 
 debian/patches/series                                  |    3 
 gdk/gdkgl.c                                            |    2 
 gdk/gdkpixbuf-drawable.c                               |   26 
 gdk/quartz/GdkQuartzNSWindow.c                         |    5 
 gdk/quartz/gdkdisplay-quartz.c                         |   17 
 gdk/quartz/gdkdisplay-quartz.h                         |    2 
 gdk/quartz/gdkquartz-cocoa-access.h                    |    4 
 gdk/quartz/gdkwindow-quartz.h                          |    2 
 gdk/wayland/gdkdisplay-wayland.c                       |    3 
 gdk/wayland/gdkscreen-wayland.c                        |    1 
 gdk/wayland/gdkwindow-wayland.c                        |    2 
 gdk/win32/gdkdnd-win32.c                               |    4 
 gdk/win32/gdkglcontext-win32.c                         |    8 
 gdk/win32/gdkselection-win32.c                         |    4 
 gtk/gtkapplication-dbus.c                              |    9 
 gtk/gtkfilechooserwidget.c                             |    6 
 gtk/gtkfilesystemmodel.c                               |   11 
 gtk/gtkpathbar.c                                       |    3 
 gtk/gtktextbuffer.c                                    |    2 
 gtk/gtktextiter.c                                      |    2 
 gtk/gtktextmark.c                                      |    2 
 gtk/gtktexttag.c                                       |    2 
 gtk/gtktexttagtable.c                                  |    2 
 gtk/gtktextview.c                                      |    2 
 gtk/gtktreeview.c                                      |    4 
 gtk/gtktreeviewcolumn.c                                |    2 
 gtk/inspector/general.c                                |   62 
 gtk/inspector/general.ui                               |   70 
 gtk/theme/Adwaita/_colors.scss                         |    1 
 gtk/theme/Adwaita/_common.scss                         |    1 
 meson.build                                            |    2 
 po-properties/ab.po                                    |  968 ---
 po/ab.po                                               | 4340 ++++++++++++++++-
 po/bg.po                                               |  225 
 po/ca.po                                               |  219 
 po/da.po                                               |  224 
 po/de.po                                               |  198 
 po/es.po                                               |  230 
 po/eu.po                                               |  200 
 po/fa.po                                               |  197 
 po/fr.po                                               |  261 -
 po/gl.po                                               |  106 
 po/he.po                                               |  187 
 po/hu.po                                               |  211 
 po/id.po                                               |  206 
 po/it.po                                               |  263 -
 po/ka.po                                               |  736 +-
 po/ko.po                                               |  225 
 po/lt.po                                               |  140 
 po/nl.po                                               |  230 
 po/pl.po                                               |  207 
 po/pt.po                                               |  208 
 po/pt_BR.po                                            |  207 
 po/ru.po                                               |  208 
 po/sl.po                                               |  207 
 po/sr.po                                               |  413 -
 po/sv.po                                               |  380 -
 po/tr.po                                               |  154 
 po/uk.po                                               |  209 
 testsuite/reftests/meson.build                         |    2 
 68 files changed, 7908 insertions(+), 7916 deletions(-)

diff -Nru gtk+3.0-3.24.37/debian/changelog gtk+3.0-3.24.38/debian/changelog
--- gtk+3.0-3.24.37/debian/changelog	2023-03-08 14:52:40.000000000 +0000
+++ gtk+3.0-3.24.38/debian/changelog	2023-09-09 20:30:40.000000000 +0100
@@ -1,3 +1,55 @@
+gtk+3.0 (3.24.38-2~deb12u1) bookworm; urgency=medium
+
+  * Rebuild new upstream release 3.24.38 for Debian 12
+  * Changes since 3.24.37-2 in initial Debian 12 release:
+    - Fix application crash with "Couldn't find current GLX or EGL context"
+      under unknown circumstances (gtk#5711 upstream, regression in 3.24.37)
+    - Fix a gnome-flashback crash when taking screenshots
+      (gtk#5691, regression in 3.24.37)
+    - Fix application crash when running under Wayland with the
+      cursor-theme-size GSetting set to 0 (gtk#5700)
+    - Ensure apps launched under Wayland after setting
+      org.gtk.Settings.Modules will load the desired modules at startup
+      (gtk!5733)
+    - Don't crash in Wayland environments that don't implement
+      xdg_activation_v1, such as Enlightenment (Closes: #1043000)
+    - Fix a crash in gtk_application_set_screensaver_active() during
+      app exit (gtk#5775)
+    - Silence GFileInfo warnings if used with a backported version of GLib
+      (gtk!5645)
+    - Use a light colour for the caret in dark themes, making it much
+      easier to see in some apps, in particular Evince (evince#1842)
+    - Show more information in the "inspector" debugging interface: Pango
+      backend, input method module (gtk!5706, gtk#4512)
+    - Fix broken links in documentation (gtk!5718)
+    - Update documentation to discourage use of
+      gdk_pixbuf_get_from_window() (gtk#5691)
+    - Translation updates: ab, bg, ca, da, de, es, eu, fa, fr, gl, he, hu,
+      id, it, ka, ko, lt, nl, pl, pt, pt_BR, ru, sl, sr, sv, tr, uk
+    - testsuite: Disable some reftests that are not reliable
+    - Windows-specific changes not relevant to Debian
+    - macOS-specific (Quartz) changes not relevant to Debian
+    - d/p/Update-Galician-translation.patch,
+      d/p/Update-Hebrew-translation.patch,
+      d/p/selection-Use-the-right-mime-type.patch:
+      Drop patches that were included in 3.24.38
+
+ -- Simon McVittie <smcv@debian.org>  Sat, 09 Sep 2023 20:30:40 +0100
+
+gtk+3.0 (3.24.38-2) unstable; urgency=medium
+
+  * Release to unstable
+
+ -- Jeremy Bícha <jbicha@ubuntu.com>  Sun, 23 Jul 2023 16:14:18 -0400
+
+gtk+3.0 (3.24.38-1) experimental; urgency=medium
+
+  [ Jeremy Bícha ]
+  * New upstream release
+  * Drop 3 patches applied in new release
+
+ -- Jeremy Bícha <jbicha@ubuntu.com>  Mon, 22 May 2023 13:35:52 -0400
+
 gtk+3.0 (3.24.37-2) unstable; urgency=medium
 
   * d/p/selection-Use-the-right-mime-type.patch:
diff -Nru gtk+3.0-3.24.37/debian/control gtk+3.0-3.24.38/debian/control
--- gtk+3.0-3.24.37/debian/control	2023-03-08 14:52:40.000000000 +0000
+++ gtk+3.0-3.24.38/debian/control	2023-09-09 20:30:40.000000000 +0100
@@ -2,7 +2,7 @@
 Section: libs
 Priority: optional
 Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
-Uploaders: Simon McVittie <smcv@debian.org>, Jeremy Bicha <jbicha@ubuntu.com>
+Uploaders: Simon McVittie <smcv@debian.org>, Dmitry Shachnev <mitya57@debian.org>
 Build-Depends: adwaita-icon-theme-full <!nocheck>,
                at-spi2-core <!nocheck>,
                dbus-daemon <!nocheck>,
@@ -61,7 +61,7 @@
 Rules-Requires-Root: no
 Standards-Version: 4.6.2
 Vcs-Browser: https://salsa.debian.org/gnome-team/gtk3
-Vcs-Git: https://salsa.debian.org/gnome-team/gtk3.git
+Vcs-Git: https://salsa.debian.org/gnome-team/gtk3.git -b debian/bookworm
 Homepage: https://www.gtk.org/
 
 Package: libgtk-3-0
diff -Nru gtk+3.0-3.24.37/debian/control.in gtk+3.0-3.24.38/debian/control.in
--- gtk+3.0-3.24.37/debian/control.in	2023-03-08 14:52:40.000000000 +0000
+++ gtk+3.0-3.24.38/debian/control.in	2023-09-09 20:30:40.000000000 +0100
@@ -61,7 +61,7 @@
 Rules-Requires-Root: no
 Standards-Version: 4.6.2
 Vcs-Browser: https://salsa.debian.org/gnome-team/gtk3
-Vcs-Git: https://salsa.debian.org/gnome-team/gtk3.git
+Vcs-Git: https://salsa.debian.org/gnome-team/gtk3.git -b debian/bookworm
 Homepage: https://www.gtk.org/
 
 Package: @SHARED_PKG@
diff -Nru gtk+3.0-3.24.37/debian/gbp.conf gtk+3.0-3.24.38/debian/gbp.conf
--- gtk+3.0-3.24.37/debian/gbp.conf	2023-03-08 14:52:40.000000000 +0000
+++ gtk+3.0-3.24.38/debian/gbp.conf	2023-09-09 20:30:40.000000000 +0100
@@ -1,6 +1,6 @@
 [DEFAULT]
 pristine-tar = True
-debian-branch = debian/master
+debian-branch = debian/bookworm
 upstream-branch = upstream/latest
 
 [buildpackage]
diff -Nru gtk+3.0-3.24.37/debian/patches/series gtk+3.0-3.24.38/debian/patches/series
--- gtk+3.0-3.24.37/debian/patches/series	2023-03-08 14:52:40.000000000 +0000
+++ gtk+3.0-3.24.38/debian/patches/series	2023-09-09 20:30:40.000000000 +0100
@@ -1,6 +1,3 @@
-selection-Use-the-right-mime-type.patch
-Update-Hebrew-translation.patch
-Update-Galician-translation.patch
 016_no_offscreen_widgets_grabbing.patch
 017_no_offscreen_device_grabbing.patch
 060_ignore-random-icons.patch
diff -Nru gtk+3.0-3.24.37/gdk/gdkgl.c gtk+3.0-3.24.38/gdk/gdkgl.c
--- gtk+3.0-3.24.37/gdk/gdkgl.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gdk/gdkgl.c	2023-05-22 03:22:08.000000000 +0100
@@ -367,7 +367,7 @@
 
   clip_region = gdk_cairo_region_from_clip (cr);
 
-  if (gdk_gl_context_get_current () != paint_context)
+  if ((gdk_gl_context_get_current () != NULL) && (gdk_gl_context_get_current () != paint_context))
     sync = glFenceSync (GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
 
   gdk_gl_context_make_current (paint_context);
diff -Nru gtk+3.0-3.24.37/gdk/gdkpixbuf-drawable.c gtk+3.0-3.24.38/gdk/gdkpixbuf-drawable.c
--- gtk+3.0-3.24.37/gdk/gdkpixbuf-drawable.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gdk/gdkpixbuf-drawable.c	2023-05-22 03:22:08.000000000 +0100
@@ -51,9 +51,11 @@
  * @height: Height in pixels of region to get
  *
  * Transfers image data from a #GdkWindow and converts it to an RGB(A)
- * representation inside a #GdkPixbuf. In other words, copies
- * image data from a server-side drawable to a client-side RGB(A) buffer.
- * This allows you to efficiently read individual pixels on the client side.
+ * representation inside a #GdkPixbuf.
+ *
+ * In other words, copies image data from a server-side drawable to a
+ * client-side RGB(A) buffer. This allows you to efficiently read
+ * individual pixels on the client side.
  *
  * This function will create an RGB pixbuf with 8 bits per channel with
  * the size specified by the @width and @height arguments scaled by the
@@ -62,7 +64,8 @@
  *
  * If the window is off the screen, then there is no image data in the
  * obscured/offscreen regions to be placed in the pixbuf. The contents of
- * portions of the pixbuf corresponding to the offscreen region are undefined.
+ * portions of the pixbuf corresponding to the offscreen region are
+ * undefined.
  *
  * If the window you’re obtaining data from is partially obscured by
  * other windows, then the contents of the pixbuf areas corresponding
@@ -74,11 +77,13 @@
  * If memory can’t be allocated for the return value, %NULL will be returned
  * instead.
  *
- * (In short, there are several ways this function can fail, and if it fails
- *  it returns %NULL; so check the return value.)
+ * In short, there are several ways this function can fail, and if it fails
+ * it returns %NULL; so check the return value.
+ *
+ * You should rarely, if ever, need to call this function.
  *
  * Returns: (nullable) (transfer full): A newly-created pixbuf with a
- *     reference count of 1, or %NULL on error
+ *   reference count of 1, or %NULL on error
  */
 GdkPixbuf *
 gdk_pixbuf_get_from_window (GdkWindow *src,
@@ -104,16 +109,19 @@
    * by external applications.
    *
    * So be on the safe side and:
+   * - flush the Cairo state
    * - mark the surface as dirty, in case the GdkWindow was
    *   created from a foreign X11 surface
-   * - flush the Cairo state
+   *
+   * THE ORDER IS IMPORTANT. DO NOT CHANGE IT.
    *
    * For reference, see:
    * - https://bugzilla.gnome.org/show_bug.cgi?id=754952
    * - https://gitlab.gnome.org/GNOME/gtk/-/issues/4456
+   * - https://gitlab.gnome.org/GNOME/gtk/-/issues/5691
    */
-  cairo_surface_mark_dirty (surface);
   cairo_surface_flush (surface);
+  cairo_surface_mark_dirty (surface);
 
   if (cairo_surface_get_content (surface) & CAIRO_CONTENT_ALPHA)
     copy = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width * scale, height * scale);
diff -Nru gtk+3.0-3.24.37/gdk/wayland/gdkdisplay-wayland.c gtk+3.0-3.24.38/gdk/wayland/gdkdisplay-wayland.c
--- gtk+3.0-3.24.37/gdk/wayland/gdkdisplay-wayland.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gdk/wayland/gdkdisplay-wayland.c	2023-05-22 03:22:08.000000000 +0100
@@ -1128,6 +1128,9 @@
   g_assert (display_wayland);
   g_assert (display_wayland->shm);
 
+  if (size == 0)
+    size = 24;
+
   if (g_strcmp0 (name, display_wayland->cursor_theme_name) == 0 &&
       display_wayland->cursor_theme_size == size)
     return;
diff -Nru gtk+3.0-3.24.37/gdk/wayland/gdkscreen-wayland.c gtk+3.0-3.24.38/gdk/wayland/gdkscreen-wayland.c
--- gtk+3.0-3.24.37/gdk/wayland/gdkscreen-wayland.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gdk/wayland/gdkscreen-wayland.c	2023-05-22 03:22:08.000000000 +0100
@@ -1337,6 +1337,7 @@
       g_free (screen_wayland->dbus_settings.modules);
 
       screen_wayland->dbus_settings.modules = g_variant_dup_string (value, NULL);
+      notify_setting (GDK_SCREEN (screen_wayland), "gtk-modules");
     }
 
   if (value != NULL)
diff -Nru gtk+3.0-3.24.37/gdk/wayland/gdkwindow-wayland.c gtk+3.0-3.24.38/gdk/wayland/gdkwindow-wayland.c
--- gtk+3.0-3.24.37/gdk/wayland/gdkwindow-wayland.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gdk/wayland/gdkwindow-wayland.c	2023-05-22 03:22:08.000000000 +0100
@@ -4179,7 +4179,7 @@
     }
 
 #ifdef HAVE_XDG_ACTIVATION
-  if (startup_id)
+  if (display_wayland->xdg_activation && startup_id)
     {
       xdg_activation_v1_activate (display_wayland->xdg_activation,
                                   startup_id,
diff -Nru gtk+3.0-3.24.37/gtk/gtkapplication-dbus.c gtk+3.0-3.24.38/gtk/gtkapplication-dbus.c
--- gtk+3.0-3.24.37/gtk/gtkapplication-dbus.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/gtkapplication-dbus.c	2023-05-22 03:22:08.000000000 +0100
@@ -42,6 +42,12 @@
 #define GNOME_SCREENSAVER_DBUS_OBJECT_PATH      "/org/gnome/ScreenSaver"
 #define GNOME_SCREENSAVER_DBUS_INTERFACE        "org.gnome.ScreenSaver"
 
+static void client_proxy_signal (GDBusProxy  *proxy,
+                                 const gchar *sender_name,
+                                 const gchar *signal_name,
+                                 GVariant    *parameters,
+                                 gpointer     user_data);
+
 static void
 unregister_client (GtkApplicationImplDBus *dbus)
 {
@@ -63,6 +69,7 @@
       g_error_free (error);
     }
 
+  g_signal_handlers_disconnect_by_func (dbus->client_proxy, client_proxy_signal, dbus);
   g_clear_object (&dbus->client_proxy);
 
   g_free (dbus->client_path);
@@ -892,6 +899,8 @@
   g_free (dbus->app_menu_path);
   g_free (dbus->menubar_path);
   g_clear_object (&dbus->sm_proxy);
+  if (dbus->ss_proxy)
+    g_signal_handlers_disconnect_by_func (dbus->ss_proxy, screensaver_signal_session, dbus->impl.application);
   g_clear_object (&dbus->ss_proxy);
 
   G_OBJECT_CLASS (gtk_application_impl_dbus_parent_class)->finalize (object);
diff -Nru gtk+3.0-3.24.37/gtk/gtkfilechooserwidget.c gtk+3.0-3.24.38/gtk/gtkfilechooserwidget.c
--- gtk+3.0-3.24.37/gtk/gtkfilechooserwidget.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/gtkfilechooserwidget.c	2023-05-22 03:22:08.000000000 +0100
@@ -4634,10 +4634,12 @@
       if (!_gtk_file_system_model_iter_is_visible (fsmodel, &iter))
         {
           GFileInfo *info = _gtk_file_system_model_get_info (fsmodel, &iter);
+          gboolean has_is_hidden = g_file_info_has_attribute (info, "standard::is-hidden");
+          gboolean has_is_backup = g_file_info_has_attribute (info, "standard::is-backup");
 
           if (!enabled_hidden &&
-              (g_file_info_get_is_hidden (info) ||
-               g_file_info_get_is_backup (info)))
+              ((has_is_hidden && g_file_info_get_is_hidden (info)) ||
+               (has_is_backup && g_file_info_get_is_backup (info))))
             {
               g_object_set (impl, "show-hidden", TRUE, NULL);
               enabled_hidden = TRUE;
diff -Nru gtk+3.0-3.24.37/gtk/gtkfilesystemmodel.c gtk+3.0-3.24.38/gtk/gtkfilesystemmodel.c
--- gtk+3.0-3.24.37/gtk/gtkfilesystemmodel.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/gtkfilesystemmodel.c	2023-05-22 03:22:08.000000000 +0100
@@ -442,16 +442,23 @@
 }
 
 static gboolean
-node_should_be_visible (GtkFileSystemModel *model, guint id, gboolean filtered_out)
+node_should_be_visible (GtkFileSystemModel *model,
+                        guint               id,
+                        gboolean            filtered_out)
 {
   FileModelNode *node = get_node (model, id);
+  gboolean has_is_hidden, has_is_backup;
   gboolean result;
 
   if (node->info == NULL)
     return FALSE;
 
+  has_is_hidden = g_file_info_has_attribute (node->info, "standard::is-hidden");
+  has_is_backup = g_file_info_has_attribute (node->info, "standard::is-backup");
+
   if (!model->show_hidden &&
-      (g_file_info_get_is_hidden (node->info) || g_file_info_get_is_backup (node->info)))
+      ((has_is_hidden && g_file_info_get_is_hidden (node->info)) ||
+       (has_is_backup && g_file_info_get_is_backup (node->info))))
     return FALSE;
 
   if (_gtk_file_info_consider_as_directory (node->info))
diff -Nru gtk+3.0-3.24.37/gtk/gtkpathbar.c gtk+3.0-3.24.38/gtk/gtkpathbar.c
--- gtk+3.0-3.24.37/gtk/gtkpathbar.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/gtkpathbar.c	2023-05-22 03:22:08.000000000 +0100
@@ -1762,7 +1762,8 @@
     }
 
   display_name = g_file_info_get_display_name (info);
-  is_hidden = g_file_info_get_is_hidden (info) || g_file_info_get_is_backup (info);
+  is_hidden = g_file_info_get_attribute_boolean (info, "standard::is-hidden") ||
+              g_file_info_get_attribute_boolean (info, "standard::is-backup");
 
   button_data = make_directory_button (file_info->path_bar, display_name,
                                        file_info->file,
diff -Nru gtk+3.0-3.24.37/gtk/gtktextbuffer.c gtk+3.0-3.24.38/gtk/gtktextbuffer.c
--- gtk+3.0-3.24.37/gtk/gtktextbuffer.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/gtktextbuffer.c	2023-05-22 03:22:08.000000000 +0100
@@ -49,7 +49,7 @@
  * @See_also: #GtkTextView, #GtkTextIter, #GtkTextMark
  *
  * You may wish to begin by reading the
- * [text widget conceptual overview][TextWidget]
+ * [text widget conceptual overview](TextWidget.html)
  * which gives an overview of all the objects and data
  * types related to the text widget and how they work together.
  */
diff -Nru gtk+3.0-3.24.37/gtk/gtktextiter.c gtk+3.0-3.24.38/gtk/gtktextiter.c
--- gtk+3.0-3.24.37/gtk/gtktextiter.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/gtktextiter.c	2023-05-22 03:22:08.000000000 +0100
@@ -40,7 +40,7 @@
  * @Title: GtkTextIter
  *
  * You may wish to begin by reading the
- * [text widget conceptual overview][TextWidget]
+ * [text widget conceptual overview](TextWidget.html)
  * which gives an overview of all the objects and data
  * types related to the text widget and how they work together.
  */
diff -Nru gtk+3.0-3.24.37/gtk/gtktextmark.c gtk+3.0-3.24.38/gtk/gtktextmark.c
--- gtk+3.0-3.24.37/gtk/gtktextmark.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/gtktextmark.c	2023-05-22 03:22:08.000000000 +0100
@@ -60,7 +60,7 @@
  * @Title: GtkTextMark
  *
  * You may wish to begin by reading the
- * [text widget conceptual overview][TextWidget]
+ * [text widget conceptual overview](TextWidget.html)
  * which gives an overview of all the objects and data
  * types related to the text widget and how they work together.
  *
diff -Nru gtk+3.0-3.24.37/gtk/gtktexttag.c gtk+3.0-3.24.38/gtk/gtktexttag.c
--- gtk+3.0-3.24.37/gtk/gtktexttag.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/gtktexttag.c	2023-05-22 03:22:08.000000000 +0100
@@ -53,7 +53,7 @@
  * @Short_description: A tag that can be applied to text in a GtkTextBuffer
  *
  * You may wish to begin by reading the
- * [text widget conceptual overview][TextWidget]
+ * [text widget conceptual overview](TextWidget.html)
  * which gives an overview of all the objects and
  * data types related to the text widget and how they work together.
  *
diff -Nru gtk+3.0-3.24.37/gtk/gtktexttagtable.c gtk+3.0-3.24.38/gtk/gtktexttagtable.c
--- gtk+3.0-3.24.37/gtk/gtktexttagtable.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/gtktexttagtable.c	2023-05-22 03:22:08.000000000 +0100
@@ -41,7 +41,7 @@
  * @Title: GtkTextTagTable
  *
  * You may wish to begin by reading the
- * [text widget conceptual overview][TextWidget]
+ * [text widget conceptual overview](TextWidget.html)
  * which gives an overview of all the objects and
  * data types related to the text widget and how they work together.
  *
diff -Nru gtk+3.0-3.24.37/gtk/gtktextview.c gtk+3.0-3.24.38/gtk/gtktextview.c
--- gtk+3.0-3.24.37/gtk/gtktextview.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/gtktextview.c	2023-05-22 03:22:08.000000000 +0100
@@ -70,7 +70,7 @@
  * @See_also: #GtkTextBuffer, #GtkTextIter
  *
  * You may wish to begin by reading the
- * [text widget conceptual overview][TextWidget]
+ * [text widget conceptual overview](TextWidget.html)
  * which gives an overview of all the objects and data
  * types related to the text widget and how they work together.
  *
diff -Nru gtk+3.0-3.24.37/gtk/gtktreeview.c gtk+3.0-3.24.38/gtk/gtktreeview.c
--- gtk+3.0-3.24.37/gtk/gtktreeview.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/gtktreeview.c	2023-05-22 03:22:08.000000000 +0100
@@ -71,7 +71,7 @@
  * Widget that displays any object that implements the #GtkTreeModel interface.
  *
  * Please refer to the
- * [tree widget conceptual overview][TreeWidget]
+ * [tree widget conceptual overview](TreeWidget.html)
  * for an overview of all the objects and data types related
  * to the tree widget and how they work together.
  *
@@ -1330,7 +1330,7 @@
    * Space, Shift+Space, Return or Enter is pressed.
    *
    * For selection handling refer to the
-   * [tree widget conceptual overview][TreeWidget]
+   * [tree widget conceptual overview](TreeWidget.html)
    * as well as #GtkTreeSelection.
    */
   tree_view_signals[ROW_ACTIVATED] =
diff -Nru gtk+3.0-3.24.37/gtk/gtktreeviewcolumn.c gtk+3.0-3.24.38/gtk/gtktreeviewcolumn.c
--- gtk+3.0-3.24.37/gtk/gtktreeviewcolumn.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/gtktreeviewcolumn.c	2023-05-22 03:22:08.000000000 +0100
@@ -51,7 +51,7 @@
  * It allows to set properties of the column header, and functions as a holding pen for
  * the cell renderers which determine how the data in the column is displayed.
  *
- * Please refer to the [tree widget conceptual overview][TreeWidget]
+ * Please refer to the [tree widget conceptual overview](TreeWidget.html)
  * for an overview of all the objects and data types related to the tree widget and how
  * they work together.
  */
diff -Nru gtk+3.0-3.24.37/gtk/inspector/general.c gtk+3.0-3.24.38/gtk/inspector/general.c
--- gtk+3.0-3.24.37/gtk/inspector/general.c	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/inspector/general.c	2023-05-22 03:22:08.000000000 +0100
@@ -26,10 +26,12 @@
 #include "gtkswitch.h"
 #include "gtklistbox.h"
 #include "gtkprivate.h"
+#include "gtksettings.h"
 #include "gtksizegroup.h"
 #include "gtkimage.h"
 #include "gtkadjustment.h"
 #include "gtkbox.h"
+#include "gtkimmoduleprivate.h"
 
 #ifdef GDK_WINDOWING_X11
 #include "x11/gdkx.h"
@@ -62,9 +64,11 @@
   GtkWidget *device_box;
   GtkWidget *gtk_version;
   GtkWidget *gdk_backend;
+  GtkWidget *pango_fontmap;
   GtkWidget *app_id_frame;
   GtkWidget *app_id;
   GtkWidget *resource_path;
+  GtkWidget *im_module;
   GtkWidget *gl_version;
   GtkWidget *gl_vendor;
   GtkWidget *prefix;
@@ -500,6 +504,60 @@
   populate_display (screen, gen);
 }
 
+static void
+init_pango (GtkInspectorGeneral *gen)
+{
+  PangoFontMap *fontmap;
+  const char *type;
+  const char *name;
+
+  fontmap = pango_cairo_font_map_get_default ();
+  type = G_OBJECT_TYPE_NAME (fontmap);
+  if (strcmp (type, "PangoCairoFcFontMap") == 0)
+    name = "fontconfig";
+  else if (strcmp (type, "PangoCairoCoreTextFontMap") == 0)
+    name = "coretext";
+  else if (strcmp (type, "PangoCairoWin32FontMap") == 0)
+    name = "win32";
+  else
+    name = type;
+
+  gtk_label_set_label (GTK_LABEL (gen->priv->pango_fontmap), name);
+}
+
+static void
+im_module_changed (GtkSettings         *settings,
+                   GParamSpec          *pspec,
+                   GtkInspectorGeneral *gen)
+{
+  gtk_label_set_label (GTK_LABEL (gen->priv->im_module),
+                       _gtk_im_module_get_default_context_id ());
+}
+
+static void
+init_im_module (GtkInspectorGeneral *gen)
+{
+  GdkScreen *screen = gdk_screen_get_default ();
+  GtkSettings *settings = gtk_settings_get_for_screen (screen);
+  const char *default_context_id = _gtk_im_module_get_default_context_id ();
+
+  gtk_label_set_label (GTK_LABEL (gen->priv->im_module), default_context_id);
+
+  if (g_getenv ("GTK_IM_MODULE") != NULL)
+    {
+      /* This can't update if GTK_IM_MODULE envvar is set */
+      gtk_widget_set_tooltip_text (gen->priv->im_module,
+                                   _("IM Context is hardcoded by GTK_IM_MODULE"));
+      gtk_widget_set_sensitive (gen->priv->im_module, FALSE);
+      return;
+    }
+
+  g_signal_connect_object (settings,
+                           "notify::gtk-im-module",
+                           G_CALLBACK (im_module_changed),
+                           gen, 0);
+}
+
 static void populate_seats (GtkInspectorGeneral *gen);
 
 static void
@@ -670,6 +728,8 @@
   init_app_id (gen);
   init_env (gen);
   init_display (gen);
+  init_pango (gen);
+  init_im_module (gen);
   init_gl (gen);
   init_device (gen);
 }
@@ -757,6 +817,8 @@
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, gl_box);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, gtk_version);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, gdk_backend);
+  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, pango_fontmap);
+  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, im_module);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, app_id_frame);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, app_id);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, resource_path);
diff -Nru gtk+3.0-3.24.37/gtk/inspector/general.ui gtk+3.0-3.24.38/gtk/inspector/general.ui
--- gtk+3.0-3.24.37/gtk/inspector/general.ui	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/inspector/general.ui	2023-05-22 03:22:08.000000000 +0100
@@ -86,6 +86,74 @@
                     </child>
                   </object>
                 </child>
+                <child>
+                  <object class="GtkListBoxRow">
+                    <property name="visible">True</property>
+                    <property name="activatable">False</property>
+                    <child>
+                      <object class="GtkBox">
+                        <property name="visible">True</property>
+                        <property name="orientation">horizontal</property>
+                        <property name="margin">10</property>
+                        <property name="spacing">40</property>
+                        <child>
+                          <object class="GtkLabel" id="pango_fontmap_label">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Pango Fontmap</property>
+                            <property name="halign">start</property>
+                            <property name="valign">baseline</property>
+                            <property name="xalign">0.0</property>
+                          </object>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="pango_fontmap">
+                            <property name="visible">True</property>
+                            <property name="selectable">True</property>
+                            <property name="halign">end</property>
+                            <property name="valign">baseline</property>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkListBoxRow">
+                    <property name="visible">True</property>
+                    <property name="activatable">False</property>
+                    <child>
+                      <object class="GtkBox">
+                        <property name="visible">True</property>
+                        <property name="orientation">horizontal</property>
+                        <property name="margin">10</property>
+                        <property name="spacing">40</property>
+                        <child>
+                          <object class="GtkLabel" id="input_method_label">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Input Method</property>
+                            <property name="halign">start</property>
+                            <property name="valign">baseline</property>
+                            <property name="xalign">0.0</property>
+                          </object>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="im_module">
+                            <property name="visible">True</property>
+                            <property name="selectable">True</property>
+                            <property name="halign">end</property>
+                            <property name="valign">baseline</property>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
               </object>
             </child>
           </object>
@@ -650,6 +718,8 @@
     <widgets>
       <widget name="gtk_version_label"/>
       <widget name="gdk_backend_label"/>
+      <widget name="pango_fontmap_label"/>
+      <widget name="input_method_label"/>
       <widget name="app_id_label"/>
       <widget name="resource_path_label"/>
       <widget name="gl_version_label"/>
diff -Nru gtk+3.0-3.24.37/gtk/theme/Adwaita/_colors.scss gtk+3.0-3.24.38/gtk/theme/Adwaita/_colors.scss
--- gtk+3.0-3.24.37/gtk/theme/Adwaita/_colors.scss	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/theme/Adwaita/_colors.scss	2023-05-22 03:22:08.000000000 +0100
@@ -3,6 +3,7 @@
 
 $base_color: if($variant == 'light', #ffffff, lighten(desaturate(#241f31, 100%), 2%));
 $text_color: if($variant == 'light', black, white);
+$caret_color: if($variant == 'light', lighten($text_color, 5%), darken($text_color, 3%));
 $bg_color: if($variant == 'light', #f6f5f4, darken(desaturate(#3d3846, 100%), 4%));
 $fg_color: if($variant == 'light', #2e3436, #eeeeec);
 
diff -Nru gtk+3.0-3.24.37/gtk/theme/Adwaita/_common.scss gtk+3.0-3.24.38/gtk/theme/Adwaita/_common.scss
--- gtk+3.0-3.24.37/gtk/theme/Adwaita/_common.scss	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/gtk/theme/Adwaita/_common.scss	2023-05-22 03:22:08.000000000 +0100
@@ -108,6 +108,7 @@
 .view,
 %view {
   color: $text_color;
+  caret-color: $caret_color;
   background-color: $base_color;
 
   &:backdrop {
diff -Nru gtk+3.0-3.24.37/meson.build gtk+3.0-3.24.38/meson.build
--- gtk+3.0-3.24.37/meson.build	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/meson.build	2023-05-22 03:22:08.000000000 +0100
@@ -1,5 +1,5 @@
 project('gtk+', 'c',
-  version: '3.24.37',
+  version: '3.24.38',
   default_options: [
     'buildtype=debugoptimized',
     'warning_level=1'
diff -Nru gtk+3.0-3.24.37/NEWS gtk+3.0-3.24.38/NEWS
--- gtk+3.0-3.24.37/NEWS	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/NEWS	2023-05-22 03:22:08.000000000 +0100
@@ -1,3 +1,53 @@
+Overview of Changes in GTK+ 3.24.38, 21-05-2023
+===============================================
+
+* GtkFileChooser:
+ - Avoid warnings with GLib 2.76
+
+* Theme:
+ - Set caret color in the dark theme
+
+* Windows:
+ - Fix running under GLES
+
+* Wayland:
+ - Notify on initial setting changes
+ - Don't crash on 0 size cursors
+ - Don't crash if xdg_activation_v1 is missing
+
+* Debugging:
+ - Show more information in the inspector
+
+* Translation updates
+ Abkhazian
+ Basque
+ Brazilian Portuguese
+ Bulgarian
+ Catalan
+ Danish
+ Dutch
+ French
+ Galician
+ Georgian
+ German
+ Hebrew
+ Hungarian
+ Indonesian
+ ITalian
+ Korean
+ Lithuanian
+ Persian
+ Polish
+ Portuguese
+ Russian
+ Serbian
+ Slovenian
+ Spanish
+ Swedish
+ Turkish
+ Ukrainian
+
+
 Overview of Changes in GTK+ 3.24.37, 02-03-2023
 ===============================================
 
diff -Nru gtk+3.0-3.24.37/testsuite/reftests/meson.build gtk+3.0-3.24.38/testsuite/reftests/meson.build
--- gtk+3.0-3.24.37/testsuite/reftests/meson.build	2023-03-03 00:31:52.000000000 +0000
+++ gtk+3.0-3.24.38/testsuite/reftests/meson.build	2023-05-22 03:22:08.000000000 +0100
@@ -427,6 +427,8 @@
   'quit-mnemonic.ui',
   'symbolic-icon-translucent-color.ui',
   'window-height-for-width.ui',
+  'box-shadow-changes-modify-clip.ui',
+  'sibling-pseudoclasses.ui',
 ]
 xfail = [
 ]

Reply to: