diff --git a/CMakeLists.txt b/CMakeLists.txt index de48b8977d..c3cd226216 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -124,11 +124,22 @@ if(NOT GIT_REVISION) endif() message(STATUS "Git Revision ${GIT_REVISION}") -set(REMMINA_DATADIR "${CMAKE_INSTALL_FULL_DATADIR}") -set(REMMINA_LOCALEDIR "${CMAKE_INSTALL_FULL_LOCALEDIR}") -set(REMMINA_PLUGINDIR "${CMAKE_INSTALL_FULL_LIBDIR}/remmina/plugins") -set(REMMINA_UIDIR "${CMAKE_INSTALL_FULL_DATADIR}/remmina/ui") +if(NOT UNIQUE_APPNAME) + set(UNIQUE_APPNAME "org.Remmina") +endif() +if(NOT REMMINA_DATADIR) + set(REMMINA_DATADIR "${CMAKE_INSTALL_FULL_DATADIR}") +endif() +if(NOT REMMINA_LOCALEDIR) + set(REMMINA_LOCALEDIR "${CMAKE_INSTALL_FULL_LOCALEDIR}") +endif() +if(NOT REMMINA_PLUGINDIR) + set(REMMINA_PLUGINDIR "${CMAKE_INSTALL_FULL_LIBDIR}/remmina/plugins") +endif() +if(NOT REMMINA_UIDIR) + set(REMMINA_UIDIR "${REMMINA_DATADIR}/remmina/ui") +endif() # Uninstall support configure_file( diff --git a/config.h.in b/config.h.in index 769295740e..74feaf1bec 100644 --- a/config.h.in +++ b/config.h.in @@ -16,6 +16,7 @@ #cmakedefine GTK_VERSION ${GTK_VERSION} #define remmina "remmina" +#define UNIQUE_APPNAME "${UNIQUE_APPNAME}" #define VERSION "${REMMINA_VERSION}" #define GIT_REVISION "${GIT_REVISION}" diff --git a/remmina/src/remmina.c b/remmina/src/remmina.c index 618548411b..42c9bfe37c 100644 --- a/remmina/src/remmina.c +++ b/remmina/src/remmina.c @@ -222,6 +222,7 @@ int main(int argc, char* argv[]) { TRACE_CALL("main"); GtkApplication *app; + const gchar *app_id; int status; gdk_set_allowed_backends("x11,broadway,quartz,wayland,mir"); @@ -249,7 +250,8 @@ int main(int argc, char* argv[]) gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); #endif /* !HAVE_LIBGCRYPT */ - app = gtk_application_new("org.Remmina", G_APPLICATION_HANDLES_COMMAND_LINE); + app_id = g_application_id_is_valid(UNIQUE_APPNAME) ? UNIQUE_APPNAME : NULL; + app = gtk_application_new(app_id, G_APPLICATION_HANDLES_COMMAND_LINE); g_signal_connect(app, "startup", G_CALLBACK(remmina_on_startup), NULL); g_signal_connect(app, "command-line", G_CALLBACK(remmina_on_command_line), NULL); g_signal_connect(app, "handle-local-options", G_CALLBACK(remmina_on_local_cmdline), NULL);