Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntenore Gatta <antenore@simbiosi.org>2018-09-26 01:18:09 +0300
committerAntenore Gatta <antenore@simbiosi.org>2018-09-26 01:18:09 +0300
commitae97f143a0ab0920bb0aac79035eda778f7b938d (patch)
treecff41b42732083f77e03ba0a030f93a01a3cc4c0 /src/remmina_plugin_manager.c
parent648800c0ec3bb86db6b27faa7ff047fd41036718 (diff)
Do not register socket plugins when X11 is not available
Diffstat (limited to 'src/remmina_plugin_manager.c')
-rw-r--r--src/remmina_plugin_manager.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/remmina_plugin_manager.c b/src/remmina_plugin_manager.c
index 73da6db3a..424ea9f23 100644
--- a/src/remmina_plugin_manager.c
+++ b/src/remmina_plugin_manager.c
@@ -128,7 +128,18 @@ static void init_settings_cache(RemminaPlugin *plugin)
static gboolean remmina_plugin_manager_register_plugin(RemminaPlugin *plugin)
{
TRACE_CALL(__func__);
-
+ gboolean usegtksocket = FALSE;
+ /* TODO: usegtksocket should be defined inside the plugin, not tested here */
+ usegtksocket = (g_strcmp0 (plugin->name, "ST") == 0 ||
+ g_strcmp0 (plugin->name, "XDMCP") == 0 ||
+ g_strcmp0 (plugin->name, "NX") == 0 ) ? TRUE : FALSE;
+ if (remmina_gtksocket_available() == FALSE && usegtksocket == TRUE) {
+ // We don't have an X11 display, so GtkSocket will not work
+ remmina_public_send_notification("remmina-x11-notsupported",
+ _("X11 backend not available"),
+ _("XWayland or Xorg are required"));
+ return FALSE;
+ }
if (plugin->type == REMMINA_PLUGIN_TYPE_SECRET) {
if (remmina_secret_plugin) {
g_print("Remmina plugin %s (type=%s) bypassed.\n", plugin->name,
@@ -141,11 +152,10 @@ static gboolean remmina_plugin_manager_register_plugin(RemminaPlugin *plugin)
g_ptr_array_add(remmina_plugin_table, plugin);
g_ptr_array_sort(remmina_plugin_table, (GCompareFunc)remmina_plugin_manager_compare_func);
- /* g_print("Remmina plugin %s (type=%s) registered.\n", plugin->name, _(remmina_plugin_type_name[plugin->type])); */
return TRUE;
}
-static gboolean remmina_gtksocket_available()
+gboolean remmina_gtksocket_available()
{
GdkDisplayManager* dm;
GdkDisplay* d;