diff --git a/Makefile b/Makefile index 08e59db769..c0c3a6c1d3 100644 --- a/Makefile +++ b/Makefile @@ -240,7 +240,7 @@ install: $(TARGET) cp tools/cg2glsl.py $(DESTDIR)$(BIN_DIR)/retroarch-cg2glsl cp retroarch.cfg $(DESTDIR)$(GLOBAL_CONFIG_DIR) cp com.libretro.RetroArch.appdata.xml $(DESTDIR)$(DATA_DIR)/metainfo - cp retroarch.desktop $(DESTDIR)$(DATA_DIR)/applications + cp org.libretro.RetroArch.desktop $(DESTDIR)$(DATA_DIR)/applications cp docs/retroarch.6 $(DESTDIR)$(MAN_DIR)/man6 cp docs/retroarch-cg2glsl.6 $(DESTDIR)$(MAN_DIR)/man6 cp media/retroarch.svg $(DESTDIR)$(DATA_DIR)/pixmaps @@ -249,7 +249,7 @@ install: $(TARGET) chmod 755 $(DESTDIR)$(BIN_DIR)/$(TARGET) chmod 755 $(DESTDIR)$(BIN_DIR)/retroarch-cg2glsl chmod 644 $(DESTDIR)$(GLOBAL_CONFIG_DIR)/retroarch.cfg - chmod 644 $(DESTDIR)$(DATA_DIR)/applications/retroarch.desktop + chmod 644 $(DESTDIR)$(DATA_DIR)/applications/org.libretro.RetroArch.desktop chmod 644 $(DESTDIR)$(DATA_DIR)/metainfo/com.libretro.RetroArch.appdata.xml chmod 644 $(DESTDIR)$(MAN_DIR)/man6/retroarch.6 chmod 644 $(DESTDIR)$(MAN_DIR)/man6/retroarch-cg2glsl.6 @@ -274,7 +274,7 @@ uninstall: rm -f $(DESTDIR)$(BIN_DIR)/$(TARGET) rm -f $(DESTDIR)$(BIN_DIR)/retroarch-cg2glsl rm -f $(DESTDIR)$(GLOBAL_CONFIG_DIR)/retroarch.cfg - rm -f $(DESTDIR)$(DATA_DIR)/applications/retroarch.desktop + rm -f $(DESTDIR)$(DATA_DIR)/applications/org.libretro.RetroArch.desktop rm -f $(DESTDIR)$(DATA_DIR)/metainfo/com.libretro.RetroArch.appdata.xml rm -f $(DESTDIR)$(DATA_DIR)/pixmaps/retroarch.svg rm -f $(DESTDIR)$(DOC_DIR)/COPYING diff --git a/Makefile.lfx000 b/Makefile.lfx000 index 1fa682b7b7..234194e917 100644 --- a/Makefile.lfx000 +++ b/Makefile.lfx000 @@ -214,7 +214,7 @@ install: $(TARGET) cp tools/cg2glsl.py $(DESTDIR)$(BIN_DIR)/retroarch-cg2glsl cp retroarch.cfg $(DESTDIR)$(GLOBAL_CONFIG_DIR) cp com.libretro.RetroArch.appdata.xml $(DESTDIR)$(DATA_DIR)/metainfo - cp retroarch.desktop $(DESTDIR)$(DATA_DIR)/applications + cp org.libretro.RetroArch.desktop $(DESTDIR)$(DATA_DIR)/applications cp docs/retroarch.6 $(DESTDIR)$(MAN_DIR)/man6 cp docs/retroarch-cg2glsl.6 $(DESTDIR)$(MAN_DIR)/man6 cp media/retroarch.svg $(DESTDIR)$(DATA_DIR)/pixmaps @@ -223,7 +223,7 @@ install: $(TARGET) chmod 755 $(DESTDIR)$(BIN_DIR)/$(TARGET) chmod 755 $(DESTDIR)$(BIN_DIR)/retroarch-cg2glsl chmod 644 $(DESTDIR)$(GLOBAL_CONFIG_DIR)/retroarch.cfg - chmod 644 $(DESTDIR)$(DATA_DIR)/applications/retroarch.desktop + chmod 644 $(DESTDIR)$(DATA_DIR)/applications/org.libretro.RetroArch.desktop chmod 644 $(DESTDIR)$(DATA_DIR)/metainfo/com.libretro.RetroArch.appdata.xml chmod 644 $(DESTDIR)$(MAN_DIR)/man6/retroarch.6 chmod 644 $(DESTDIR)$(MAN_DIR)/man6/retroarch-cg2glsl.6 diff --git a/com.libretro.RetroArch.appdata.xml b/com.libretro.RetroArch.appdata.xml index 1f184902e0..54a133cc46 100644 --- a/com.libretro.RetroArch.appdata.xml +++ b/com.libretro.RetroArch.appdata.xml @@ -2,7 +2,7 @@ com.libretro.RetroArch - retroarch.desktop + org.libretro.RetroArch.desktop RetroArch Frontend for emulators, game engines and media players libretro diff --git a/gfx/common/wayland_common.c b/gfx/common/wayland_common.c index e07231293d..3e8f8355bd 100644 --- a/gfx/common/wayland_common.c +++ b/gfx/common/wayland_common.c @@ -34,7 +34,6 @@ #define SPLASH_SHM_NAME "retroarch-wayland-vk-splash" -#define APP_ID "org.libretro.RetroArch" #define WINDOW_TITLE "RetroArch" #ifdef HAVE_LIBDECOR_H @@ -727,7 +726,7 @@ bool gfx_ctx_wl_init_common( goto error; } - wl->libdecor_frame_set_app_id(wl->libdecor_frame, APP_ID); + wl->libdecor_frame_set_app_id(wl->libdecor_frame, WAYLAND_APP_ID); wl->libdecor_frame_set_title(wl->libdecor_frame, WINDOW_TITLE); wl->libdecor_frame_map(wl->libdecor_frame); @@ -753,7 +752,7 @@ bool gfx_ctx_wl_init_common( wl->xdg_toplevel = xdg_surface_get_toplevel(wl->xdg_surface); xdg_toplevel_add_listener(wl->xdg_toplevel, &toplevel_listener->xdg_toplevel_listener, wl); - xdg_toplevel_set_app_id(wl->xdg_toplevel, APP_ID); + xdg_toplevel_set_app_id(wl->xdg_toplevel, WAYLAND_APP_ID); xdg_toplevel_set_title(wl->xdg_toplevel, WINDOW_TITLE); if (wl->deco_manager) diff --git a/gfx/common/wayland_common.h b/gfx/common/wayland_common.h index 94a50fd7b1..8a187927ce 100644 --- a/gfx/common/wayland_common.h +++ b/gfx/common/wayland_common.h @@ -25,6 +25,8 @@ #define SPLASH_WINDOW_WIDTH 240 #define SPLASH_WINDOW_HEIGHT 256 +#define WAYLAND_APP_ID "org.libretro.RetroArch" + typedef struct toplevel_listener { #ifdef HAVE_LIBDECOR_H diff --git a/input/common/wayland_common.h b/input/common/wayland_common.h index 4828dda598..8ed1f99f33 100644 --- a/input/common/wayland_common.h +++ b/input/common/wayland_common.h @@ -170,7 +170,7 @@ typedef struct gfx_ctx_wayland_data struct libdecor *libdecor_context; struct libdecor_frame *libdecor_frame; #ifdef HAVE_DYLIB - struct dylib_t *libdecor; + dylib_t libdecor; #define RA_WAYLAND_SYM(rc,fn,params) rc (*fn) params; #include "../../gfx/common/wayland/libdecor_sym.h" #endif diff --git a/retroarch.desktop b/org.libretro.RetroArch.desktop similarity index 100% rename from retroarch.desktop rename to org.libretro.RetroArch.desktop diff --git a/pkg/sailfishos/retroarch-sailfishos.spec b/pkg/sailfishos/retroarch-sailfishos.spec index 17979c7975..1cb54901c9 100644 --- a/pkg/sailfishos/retroarch-sailfishos.spec +++ b/pkg/sailfishos/retroarch-sailfishos.spec @@ -63,7 +63,7 @@ sed -i \ sed -i \ 's|^Exec=retroarch|Exec=retroarch --menu|' \ - %{buildroot}/usr/share/applications/retroarch.desktop + %{buildroot}/usr/share/applications/org.libretro.RetroArch.desktop # Install icon file in the correct place mkdir -p %{buildroot}/usr/share/icons/hicolor/86x86/apps @@ -75,7 +75,7 @@ sed -i \ %doc README.md %config /etc/retroarch.cfg %{_prefix}/bin/retroarch -%{_prefix}/share/applications/retroarch.desktop +%{_prefix}/share/applications/org.libretro.RetroArch.desktop %{_prefix}/share/man/man6/*.6* %{_prefix}/share/icons/hicolor/86x86/apps/retroarch.* %{_prefix}/share/doc/retroarch/* diff --git a/ui/drivers/ui_qt.cpp b/ui/drivers/ui_qt.cpp index e89b0ac98f..fa91c042ff 100644 --- a/ui/drivers/ui_qt.cpp +++ b/ui/drivers/ui_qt.cpp @@ -91,6 +91,10 @@ extern "C" { #include "../../version_git.h" #endif +#ifdef HAVE_WAYLAND +#include "../../gfx/common/wayland_common.h" +#endif + #ifndef CXX_BUILD } #endif @@ -4230,6 +4234,10 @@ static void* ui_application_qt_initialize(void) #ifdef Q_OS_UNIX setlocale(LC_NUMERIC, "C"); +#ifdef HAVE_WAYLAND + // This needs to match the name of the .desktop file in order for windows to be correctly associated on Wayland + ui_application.app->setDesktopFileName(WAYLAND_APP_ID); +#endif #endif { /* Can't declare the pixmap at the top, because: "QPixmap: Must construct a QGuiApplication before a QPixmap" */