vcl/unx/gtk3/gtkframe.cxx |   14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

New commits:
commit 60ed173e04838c57c1a73279d01fdad9bdd1575e
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Mon May 10 17:12:54 2021 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Mon May 10 20:58:33 2021 +0200

    gtk4: use gdk_wayland_toplevel_set_application_id for dynamic icon changing
    
    Change-Id: Ie1f903a9fa8bfdb94ec3fc0409b350a3e73c444d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115350
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/unx/gtk3/gtkframe.cxx b/vcl/unx/gtk3/gtkframe.cxx
index 9933e4689dec..f8effa137620 100644
--- a/vcl/unx/gtk3/gtkframe.cxx
+++ b/vcl/unx/gtk3/gtkframe.cxx
@@ -1426,23 +1426,25 @@ void GtkSalFrame::SetIcon(const char* appicon)
 {
     gtk_window_set_icon_name(GTK_WINDOW(m_pWindow), appicon);
 
-#if !GTK_CHECK_VERSION(4,0,0)
 #if defined(GDK_WINDOWING_WAYLAND)
     if (DLSYM_GDK_IS_WAYLAND_DISPLAY(getGdkDisplay()))
     {
+#if GTK_CHECK_VERSION(4,0,0)
+        GdkSurface* gdkWindow = 
gtk_native_get_surface(gtk_widget_get_native(m_pWindow));
+        gdk_wayland_toplevel_set_application_id((GDK_TOPLEVEL(gdkWindow)), 
appicon);
+#else
         static auto set_application_id = reinterpret_cast<void (*) 
(GdkWindow*, const char*)>(
                                              dlsym(nullptr, 
"gdk_wayland_window_set_application_id"));
         if (set_application_id)
         {
             GdkWindow* gdkWindow = gtk_widget_get_window(m_pWindow);
             set_application_id(gdkWindow, appicon);
-
-            // gdk_wayland_window_set_application_id doesn't seem to work 
before
-            // the window is mapped, so set this for real when/if we are mapped
-            m_bIconSetWhileUnmapped = !gtk_widget_get_mapped(m_pWindow);
         }
-    }
 #endif
+        // gdk_wayland_window_set_application_id doesn't seem to work before
+        // the window is mapped, so set this for real when/if we are mapped
+        m_bIconSetWhileUnmapped = !gtk_widget_get_mapped(m_pWindow);
+    }
 #endif
 }
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to