diff options
author | Giovanni Panozzo <giovanni@panozzo.it> | 2018-09-09 01:52:26 +0300 |
---|---|---|
committer | Giovanni Panozzo <giovanni@panozzo.it> | 2018-09-09 01:52:26 +0300 |
commit | a89b7fb6b340c38dcb011332b07b773cd54641f3 (patch) | |
tree | 8fa94c9c6fbb9226cb1ef0047342c69a430cd607 /src | |
parent | 27e56c93be5b1e7904746e77bf4458c9b35f361e (diff) | |
parent | 3b6e8df784a0adb578aed33c9f2a9dbec254f33b (diff) |
Merge branch 'reenable_wayland' into 'master'
Allow wayland backend again when GTK >= 3.22.27
See merge request Remmina/Remmina!1709
Diffstat (limited to 'src')
-rw-r--r-- | src/remmina.c | 7 | ||||
-rw-r--r-- | src/remmina_public.c | 27 | ||||
-rw-r--r-- | src/remmina_public.h | 1 |
3 files changed, 34 insertions, 1 deletions
diff --git a/src/remmina.c b/src/remmina.c index 0dc69df3e..eac14d790 100644 --- a/src/remmina.c +++ b/src/remmina.c @@ -267,7 +267,12 @@ int main(int argc, char* argv[]) const gchar *app_id; int status; - gdk_set_allowed_backends("x11,broadway,quartz,mir"); + /* Enable wayland backend only after GTK 3.22.27 or the clipboard + * will not work. See GTK bug 790031 */ + if (remmina_gtk_check_version(3,22,27)) + gdk_set_allowed_backends("wayland,x11,broadway,quartz,mir"); + else + gdk_set_allowed_backends("x11,broadway,quartz,mir"); remmina_masterthread_exec_save_main_thread_id(); diff --git a/src/remmina_public.c b/src/remmina_public.c index a26da37c7..d553a0951 100644 --- a/src/remmina_public.c +++ b/src/remmina_public.c @@ -700,3 +700,30 @@ int remmina_public_split_resolution_string(const char *resolution_string, int *w *h = lh; return 1; } + +/* Return TRUE if current gtk version library in use is greater or equal than + * the requered major.minor.micro */ +gboolean remmina_gtk_check_version(guint major, guint minor, guint micro) +{ + guint rtmajor, rtminor, rtmicro; + rtmajor = gtk_get_major_version(); + if (rtmajor > major) { + return TRUE; + }else if (rtmajor == major) { + rtminor = gtk_get_minor_version(); + if (rtminor > minor) { + return TRUE; + }else if (rtminor == minor) { + rtmicro = gtk_get_micro_version(); + if (rtmicro >= micro) { + return TRUE; + }else { + return FALSE; + } + }else { + return FALSE; + } + }else { + return FALSE; + } +} diff --git a/src/remmina_public.h b/src/remmina_public.h index ecbf96718..3031e29c4 100644 --- a/src/remmina_public.h +++ b/src/remmina_public.h @@ -116,3 +116,4 @@ gchar* remmina_public_str_replace(const gchar *string, const gchar *search, cons * and overwrites the original string */ gchar* remmina_public_str_replace_in_place(gchar *string, const gchar *search, const gchar *replacement); int remmina_public_split_resolution_string(const char *resolution_string, int *w, int *h); +gboolean remmina_gtk_check_version(guint major, guint minor, guint micro); |