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:
authorGiovanni Panozzo <giovanni@panozzo.it>2022-11-08 11:07:55 +0300
committerGiovanni Panozzo <giovanni@panozzo.it>2022-11-08 11:07:55 +0300
commit79b6ea91160340badfad98a66d0405d3c3d9c8df (patch)
tree29f107755ad413907610c7b53caab95348b3a534
parent38ee9d1465fee3e802c62a5a1acf69d178f87a8b (diff)
parent5dc5d3809b110feea6c25a1b0044db9e64af0830 (diff)
Merge branch 'oct29' into 'master'
Allow building on a Wayland-only environment - version 4 See merge request Remmina/Remmina!2437
-rw-r--r--plugins/python_wrapper/python_wrapper_plugin.c4
-rw-r--r--plugins/rdp/CMakeLists.txt13
-rw-r--r--plugins/rdp/rdp_event.c22
-rw-r--r--plugins/rdp/rdp_graphics.c8
-rw-r--r--plugins/rdp/rdp_plugin.c43
-rw-r--r--plugins/rdp/rdp_plugin.h8
-rw-r--r--plugins/x2go/x2go_plugin.c4
-rw-r--r--src/CMakeLists.txt4
-rw-r--r--src/rcw.c4
-rw-r--r--src/remmina.c4
-rw-r--r--src/remmina_plugin_manager.c6
-rw-r--r--src/remmina_plugin_native.c4
-rw-r--r--src/remmina_public.c2
13 files changed, 90 insertions, 36 deletions
diff --git a/plugins/python_wrapper/python_wrapper_plugin.c b/plugins/python_wrapper/python_wrapper_plugin.c
index 7f54a14e3..858fc4557 100644
--- a/plugins/python_wrapper/python_wrapper_plugin.c
+++ b/plugins/python_wrapper/python_wrapper_plugin.c
@@ -36,7 +36,11 @@
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <gtk/gtk.h>
+#ifdef GDK_WINDOWING_X11
#include <gdk/gdkx.h>
+#else
+#include <gdk/gdkwayland.h>
+#endif
#include "config.h"
#include "remmina/plugin.h"
#include "remmina/remmina_trace_calls.h"
diff --git a/plugins/rdp/CMakeLists.txt b/plugins/rdp/CMakeLists.txt
index dcb254208..034faeed4 100644
--- a/plugins/rdp/CMakeLists.txt
+++ b/plugins/rdp/CMakeLists.txt
@@ -35,7 +35,6 @@
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
find_package(Threads REQUIRED)
-find_package(X11)
find_suggested_package(Cups)
@@ -73,13 +72,13 @@ set_target_properties(remmina-plugin-rdp PROPERTIES PREFIX "")
set_target_properties(remmina-plugin-rdp PROPERTIES NO_SONAME 1)
if(WITH_FREERDP3)
- include_directories(${REMMINA_COMMON_INCLUDE_DIRS} ${FREERDP3_INCLUDE_DIRS} ${X11_INCLUDE_DIR})
+ include_directories(${REMMINA_COMMON_INCLUDE_DIRS} ${FREERDP3_INCLUDE_DIRS})
target_link_libraries(remmina-plugin-rdp
- ${REMMINA_COMMON_LIBRARIES} ${FREERDP3_LIBRARIES} ${X11_LIBRARIES})
+ ${REMMINA_COMMON_LIBRARIES} ${FREERDP3_LIBRARIES})
else()
- include_directories(${REMMINA_COMMON_INCLUDE_DIRS} ${FREERDP_INCLUDE_DIRS} ${X11_INCLUDE_DIR})
+ include_directories(${REMMINA_COMMON_INCLUDE_DIRS} ${FREERDP_INCLUDE_DIRS})
target_link_libraries(remmina-plugin-rdp
- ${REMMINA_COMMON_LIBRARIES} ${FREERDP_LIBRARIES} ${X11_LIBRARIES})
+ ${REMMINA_COMMON_LIBRARIES} ${FREERDP_LIBRARIES})
endif()
if(CUPS_FOUND)
@@ -87,10 +86,10 @@ if(CUPS_FOUND)
include_directories(${CUPS_INCLUDE_DIR})
if(WITH_FREERDP3)
target_link_libraries(remmina-plugin-rdp
- ${REMMINA_COMMON_LIBRARIES} ${FREERDP3_LIBRARIES} ${X11_LIBRARIES} ${CUPS_LIBRARIES})
+ ${REMMINA_COMMON_LIBRARIES} ${FREERDP3_LIBRARIES} ${CUPS_LIBRARIES})
else()
target_link_libraries(remmina-plugin-rdp
- ${REMMINA_COMMON_LIBRARIES} ${FREERDP_LIBRARIES} ${X11_LIBRARIES} ${CUPS_LIBRARIES})
+ ${REMMINA_COMMON_LIBRARIES} ${FREERDP_LIBRARIES} ${CUPS_LIBRARIES})
endif()
endif()
diff --git a/plugins/rdp/rdp_event.c b/plugins/rdp/rdp_event.c
index 5add6b654..7b2484133 100644
--- a/plugins/rdp/rdp_event.c
+++ b/plugins/rdp/rdp_event.c
@@ -41,7 +41,11 @@
#include "rdp_monitor.h"
#include "rdp_settings.h"
#include <gdk/gdkkeysyms.h>
+#ifdef GDK_WINDOWING_X11
#include <cairo/cairo-xlib.h>
+#else
+#include <cairo/cairo.h>
+#endif
#include <freerdp/locale/keyboard.h>
gboolean remmina_rdp_event_on_map(RemminaProtocolWidget *gp)
@@ -178,8 +182,8 @@ static void remmina_rdp_event_release_all_keys(RemminaProtocolWidget *gp)
rdp_event = g_array_index(rfi->pressed_keys, RemminaPluginRdpEvent, i);
if ((rdp_event.type == REMMINA_RDP_EVENT_TYPE_SCANCODE ||
rdp_event.type == REMMINA_RDP_EVENT_TYPE_SCANCODE_UNICODE) &&
- rdp_event.key_event.up == False) {
- rdp_event.key_event.up = True;
+ rdp_event.key_event.up == false) {
+ rdp_event.key_event.up = true;
remmina_rdp_event_event_push(gp, &rdp_event);
}
}
@@ -745,8 +749,8 @@ static gboolean remmina_rdp_event_on_key(GtkWidget *widget, GdkEventKey *event,
#endif
rdp_event.type = REMMINA_RDP_EVENT_TYPE_SCANCODE;
- rdp_event.key_event.up = (event->type == GDK_KEY_PRESS ? False : True);
- rdp_event.key_event.extended = False;
+ rdp_event.key_event.up = (event->type == GDK_KEY_PRESS ? false : true);
+ rdp_event.key_event.extended = false;
switch (event->keyval) {
case GDK_KEY_Pause:
@@ -756,16 +760,16 @@ static gboolean remmina_rdp_event_on_key(GtkWidget *widget, GdkEventKey *event,
* for pause key management
*/
rdp_event.key_event.key_code = 0x1D;
- rdp_event.key_event.up = False;
+ rdp_event.key_event.up = false;
remmina_rdp_event_event_push(gp, &rdp_event);
rdp_event.key_event.key_code = 0x45;
- rdp_event.key_event.up = False;
+ rdp_event.key_event.up = false;
remmina_rdp_event_event_push(gp, &rdp_event);
rdp_event.key_event.key_code = 0x1D;
- rdp_event.key_event.up = True;
+ rdp_event.key_event.up = true;
remmina_rdp_event_event_push(gp, &rdp_event);
rdp_event.key_event.key_code = 0x45;
- rdp_event.key_event.up = True;
+ rdp_event.key_event.up = true;
remmina_rdp_event_event_push(gp, &rdp_event);
break;
@@ -813,7 +817,7 @@ static gboolean remmina_rdp_event_on_key(GtkWidget *widget, GdkEventKey *event,
} else {
rdp_event.type = REMMINA_RDP_EVENT_TYPE_SCANCODE_UNICODE;
rdp_event.key_event.unicode_code = unicode_keyval;
- rdp_event.key_event.extended = False;
+ rdp_event.key_event.extended = false;
remmina_rdp_event_event_push(gp, &rdp_event);
keypress_list_add(gp, rdp_event);
}
diff --git a/plugins/rdp/rdp_graphics.c b/plugins/rdp/rdp_graphics.c
index 0b5e3685b..758855858 100644
--- a/plugins/rdp/rdp_graphics.c
+++ b/plugins/rdp/rdp_graphics.c
@@ -387,7 +387,11 @@ void rf_register_graphics(rdpGraphics* graphics)
bitmap = (rdpBitmap*)malloc(sizeof(rdpBitmap));
ZeroMemory(bitmap, sizeof(rdpBitmap));
+#ifdef RF_BITMAP
bitmap->size = sizeof(rfBitmap);
+#else
+ bitmap->size = 0;
+#endif
bitmap->New = rf_Bitmap_New;
bitmap->Free = rf_Bitmap_Free;
@@ -417,7 +421,11 @@ void rf_register_graphics(rdpGraphics* graphics)
glyph = (rdpGlyph*)malloc(sizeof(rdpGlyph));
ZeroMemory(glyph, sizeof(rdpGlyph));
+#ifdef RF_GLYPH
glyph->size = sizeof(rfGlyph);
+#else
+ glyph->size = 0;
+#endif
glyph->New = rf_Glyph_New;
glyph->Free = rf_Glyph_Free;
diff --git a/plugins/rdp/rdp_plugin.c b/plugins/rdp/rdp_plugin.c
index 9e5d5ec47..105dd743a 100644
--- a/plugins/rdp/rdp_plugin.c
+++ b/plugins/rdp/rdp_plugin.c
@@ -51,7 +51,11 @@
#include <pthread.h>
#include <time.h>
#include <sys/time.h>
+#ifdef GDK_WINDOWING_X11
#include <cairo/cairo-xlib.h>
+#else
+#include <cairo/cairo.h>
+#endif
#include <freerdp/addin.h>
#include <freerdp/settings.h>
#include <freerdp/freerdp.h>
@@ -76,6 +80,8 @@
#include <X11/Xlib.h>
#include <X11/XKBlib.h>
#include <gdk/gdkx.h>
+#else
+#include <gdk/gdkwayland.h>
#endif
#if defined(__FreeBSD__)
@@ -211,7 +217,7 @@ static BOOL rf_process_event_queue(RemminaProtocolWidget *gp)
RemminaFile *remminafile;
if (rfi->event_queue == NULL)
- return True;
+ return true;
input = rfi->instance->input;
@@ -324,7 +330,7 @@ static BOOL rf_process_event_queue(RemminaProtocolWidget *gp)
g_free(event);
}
- return True;
+ return true;
}
static gboolean remmina_rdp_tunnel_init(RemminaProtocolWidget *gp)
@@ -682,7 +688,7 @@ static BOOL remmina_rdp_pre_connect(freerdp *instance)
if (!freerdp_client_load_addins(channels, settings))
return FALSE;
- return True;
+ return true;
}
static BOOL remmina_rdp_post_connect(freerdp *instance)
@@ -751,7 +757,7 @@ static BOOL remmina_rdp_post_connect(freerdp *instance)
instance->update->SetKeyboardImeStatus = rf_keyboard_set_ime_status;
remmina_rdp_clipboard_init(rfi);
- rfi->connected = True;
+ rfi->connected = true;
ui = g_new0(RemminaPluginRdpUiObject, 1);
ui->type = REMMINA_RDP_UI_CONNECTED;
@@ -836,7 +842,7 @@ static BOOL remmina_rdp_gw_authenticate(freerdp *instance, char **username, char
remminafile = remmina_plugin_service->protocol_plugin_get_file(gp);
if (!remmina_plugin_service->file_get_string(remminafile, "gateway_server"))
- return False;
+ return false;
disablepasswordstoring = remmina_plugin_service->file_get_int(remminafile, "disablepasswordstoring", FALSE);
basecredforgw = remmina_plugin_service->file_get_int(remminafile, "base-cred-for-gw", FALSE);
@@ -891,12 +897,12 @@ static BOOL remmina_rdp_gw_authenticate(freerdp *instance, char **username, char
if (s_password) g_free(s_password);
if (s_domain) g_free(s_domain);
- return True;
+ return true;
} else {
- return False;
+ return false;
}
- return True;
+ return true;
}
static DWORD remmina_rdp_verify_certificate_ex(freerdp *instance, const char *host, UINT16 port,
@@ -1301,6 +1307,8 @@ static gboolean remmina_rdp_set_connection_type(rdpSettings *settings, guint32 t
return TRUE;
}
+#ifdef GDK_WINDOWING_X11
+#if FREERDP_CHECK_VERSION(2, 3, 0)
static gchar *remmina_get_rdp_kbd_remap(const gchar *keymap)
{
TRACE_CALL(__func__);
@@ -1326,6 +1334,8 @@ static gchar *remmina_get_rdp_kbd_remap(const gchar *keymap)
return rdp_kbd_remap;
}
+#endif
+#endif
static gboolean remmina_rdp_main(RemminaProtocolWidget *gp)
{
@@ -1341,7 +1351,9 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget *gp)
gint gateway_port;
gchar *datapath = NULL;
gboolean status = TRUE;
+#ifdef GDK_WINDOWING_X11
gchar *rdp_kbd_remap;
+#endif
gint i;
gint desktopOrientation, desktopScaleFactor, deviceScaleFactor;
@@ -1681,6 +1693,7 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget *gp)
*/
freerdp_performance_flags_split(rfi->settings);
+#ifdef GDK_WINDOWING_X11
#if FREERDP_CHECK_VERSION(2, 3, 0)
rdp_kbd_remap = remmina_get_rdp_kbd_remap(remmina_plugin_service->file_get_string(remminafile, "keymap"));
if (rdp_kbd_remap != NULL) {
@@ -1693,6 +1706,8 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget *gp)
REMMINA_PLUGIN_DEBUG("rdp_keyboard_remapping_list: %s", rfi->settings->KeyboardRemappingList);
}
#endif
+#endif
+
freerdp_settings_set_uint32(rfi->settings, FreeRDP_KeyboardLayout, remmina_rdp_settings_get_keyboard_layout());
if (remmina_plugin_service->file_get_int(remminafile, "console", FALSE))
@@ -2278,7 +2293,7 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget *gp)
return FALSE;
}
- if (GET_PLUGIN_DATA(rfi->protocol_widget) == NULL) orphaned = True; else orphaned = False;
+ if (GET_PLUGIN_DATA(rfi->protocol_widget) == NULL) orphaned = true; else orphaned = false;
if (!orphaned && freerdp_get_last_error(rfi->instance->context) == FREERDP_ERROR_SUCCESS && !rfi->user_cancelled)
remmina_rdp_main_loop(gp);
@@ -2301,7 +2316,7 @@ static void rfi_uninit(rfContext *rfi)
if (instance) {
if (rfi->connected) {
freerdp_abort_connect(instance);
- rfi->connected = False;
+ rfi->connected = false;
}
}
@@ -2328,7 +2343,7 @@ static gboolean complete_cleanup_on_main_thread(gpointer data)
gdi_free(rfi->instance);
gp = rfi->protocol_widget;
- if (GET_PLUGIN_DATA(gp) == NULL) orphaned = True; else orphaned = False;
+ if (GET_PLUGIN_DATA(gp) == NULL) orphaned = true; else orphaned = false;
remmina_rdp_cliprdr_detach_owner(gp);
if (!orphaned) remmina_rdp_event_uninit(gp);
@@ -2398,9 +2413,9 @@ static void remmina_rdp_init(RemminaProtocolWidget *gp)
rfi->protocol_widget = gp;
rfi->instance = instance;
rfi->settings = instance->settings;
- rfi->connected = False;
- rfi->is_reconnecting = False;
- rfi->stop_reconnecting_requested = False;
+ rfi->connected = false;
+ rfi->is_reconnecting = false;
+ rfi->stop_reconnecting_requested = false;
rfi->user_cancelled = FALSE;
freerdp_register_addin_provider(freerdp_channels_load_static_addin_entry, 0);
diff --git a/plugins/rdp/rdp_plugin.h b/plugins/rdp/rdp_plugin.h
index a9cf47e85..f48fab5a2 100644
--- a/plugins/rdp/rdp_plugin.h
+++ b/plugins/rdp/rdp_plugin.h
@@ -47,7 +47,11 @@
#include <freerdp/gdi/region.h>
#include <freerdp/client/cliprdr.h>
#include <freerdp/client/disp.h>
+#ifdef GDK_WINDOWING_X11
#include <gdk/gdkx.h>
+#else
+#include <gdk/gdkwayland.h>
+#endif
#include <winpr/clipboard.h>
@@ -155,18 +159,22 @@ struct rf_pointer {
};
typedef struct rf_pointer rfPointer;
+#ifdef RF_BITMAP
struct rf_bitmap {
rdpBitmap bitmap;
Pixmap pixmap;
cairo_surface_t * surface;
};
typedef struct rf_bitmap rfBitmap;
+#endif
+#ifdef RF_GLYPH
struct rf_glyph {
rdpGlyph glyph;
Pixmap pixmap;
};
typedef struct rf_glyph rfGlyph;
+#endif
typedef enum {
REMMINA_RDP_EVENT_TYPE_SCANCODE,
diff --git a/plugins/x2go/x2go_plugin.c b/plugins/x2go/x2go_plugin.c
index f8f7f1583..8f26f56b8 100644
--- a/plugins/x2go/x2go_plugin.c
+++ b/plugins/x2go/x2go_plugin.c
@@ -45,7 +45,11 @@
#include "common/remmina_plugin.h"
#include <gtk/gtkx.h>
+#ifdef GDK_WINDOWING_X11
#include <gdk/gdkx.h>
+#else
+#include <gdk/gdkwayland.h>
+#endif
#include <X11/Xlib.h>
#include <X11/XKBlib.h>
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index eb1fec2e0..f9e880f7c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -171,10 +171,6 @@ if(WITH_MANPAGES)
install(FILES remmina.1 DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man1)
endif()
-find_package(X11)
-include_directories(${X11_INCLUDE_DIR})
-target_link_libraries(remmina ${X11_LIBRARIES})
-
target_link_libraries(remmina ${CMAKE_THREAD_LIBS_INIT})
if(Intl_FOUND)
diff --git a/src/rcw.c b/src/rcw.c
index 57dc16423..8f008f9e2 100644
--- a/src/rcw.c
+++ b/src/rcw.c
@@ -37,7 +37,11 @@
#include "config.h"
+#ifdef GDK_WINDOWING_X11
#include <cairo/cairo-xlib.h>
+#else
+#include <cairo/cairo.h>
+#endif
#include <gdk/gdk.h>
#include <gdk/gdkkeysyms.h>
#include <glib/gi18n.h>
diff --git a/src/remmina.c b/src/remmina.c
index abc4a3144..2156bff30 100644
--- a/src/remmina.c
+++ b/src/remmina.c
@@ -36,7 +36,11 @@
#ifndef G_LOG_DOMAIN
#define G_LOG_DOMAIN ((gchar*)"remmina")
#endif /* G_LOG_DOMAIN */
+#ifdef GDK_WINDOWING_X11
#include <gdk/gdkx.h>
+#else
+#include <gdk/gdkwayland.h>
+#endif
#include <gio/gio.h>
#include <glib/gi18n.h>
#include <stdlib.h>
diff --git a/src/remmina_plugin_manager.c b/src/remmina_plugin_manager.c
index b9d5ee167..47af6536a 100644
--- a/src/remmina_plugin_manager.c
+++ b/src/remmina_plugin_manager.c
@@ -42,9 +42,11 @@
#include <gmodule.h>
#include <gio/gio.h>
#include <string.h>
-
+#ifdef GDK_WINDOWING_X11
#include <gdk/gdkx.h>
-
+#else
+#include <gdk/gdkwayland.h>
+#endif
#include "remmina_public.h"
#include "remmina_main.h"
#include "remmina_file_manager.h"
diff --git a/src/remmina_plugin_native.c b/src/remmina_plugin_native.c
index 9961d5641..6e844fef1 100644
--- a/src/remmina_plugin_native.c
+++ b/src/remmina_plugin_native.c
@@ -39,7 +39,11 @@
#include <gio/gio.h>
#include <string.h>
+#ifdef GDK_WINDOWING_X11
#include <gdk/gdkx.h>
+#else
+#include <gdk/gdkwayland.h>
+#endif
#include "remmina_public.h"
#include "remmina_file_manager.h"
diff --git a/src/remmina_public.c b/src/remmina_public.c
index 5c5c4640d..e20030dd7 100644
--- a/src/remmina_public.c
+++ b/src/remmina_public.c
@@ -55,6 +55,8 @@
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
+#else
+#include <gdk/gdkwayland.h>
#endif
#include "remmina_public.h"
#include "remmina/remmina_trace_calls.h"