Wayland: set application_id to package name for window icons

This needs a {package_name}.desktop file defining the icon
This commit is contained in:
Julian Winkler
2024-04-13 14:47:55 +02:00
parent 322f650d2c
commit 1150402e38

View File

@@ -2,6 +2,7 @@
#define _GNU_SOURCE
#include <gtk/gtk.h>
#include <gdk/wayland/gdkwayland.h>
#include "../api-impl-jni/defines.h"
#include "../api-impl-jni/util.h"
@@ -395,6 +396,12 @@ static void open(GtkApplication *app, GFile** files, gint nfiles, const gchar* h
gtk_window_set_default_size(GTK_WINDOW(window), d->window_width, d->window_height);
g_signal_connect(window, "close-request", G_CALLBACK (app_exit), env);
// set package name as application id for window icon on Wayland. Needs a {package_name}.desktop file defining the icon
GdkToplevel *toplevel = GDK_TOPLEVEL(gtk_native_get_surface(GTK_NATIVE(window)));
if (GDK_IS_WAYLAND_TOPLEVEL(toplevel)) {
gdk_wayland_toplevel_set_application_id(GDK_WAYLAND_TOPLEVEL(toplevel), package_name);
}
if(app_icon_path) {
char *app_icon_path_full = malloc(strlen(app_data_dir) + 1 + strlen(app_icon_path) + 1); // +1 for /, +1 for NULL
sprintf(app_icon_path_full, "%s/%s", app_data_dir, app_icon_path);