diff options
author | Giovanni Panozzo <giovanni@panozzo.it> | 2022-11-08 11:07:55 +0300 |
---|---|---|
committer | Giovanni Panozzo <giovanni@panozzo.it> | 2022-11-08 11:07:55 +0300 |
commit | 79b6ea91160340badfad98a66d0405d3c3d9c8df (patch) | |
tree | 29f107755ad413907610c7b53caab95348b3a534 | |
parent | 38ee9d1465fee3e802c62a5a1acf69d178f87a8b (diff) | |
parent | 5dc5d3809b110feea6c25a1b0044db9e64af0830 (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.c | 4 | ||||
-rw-r--r-- | plugins/rdp/CMakeLists.txt | 13 | ||||
-rw-r--r-- | plugins/rdp/rdp_event.c | 22 | ||||
-rw-r--r-- | plugins/rdp/rdp_graphics.c | 8 | ||||
-rw-r--r-- | plugins/rdp/rdp_plugin.c | 43 | ||||
-rw-r--r-- | plugins/rdp/rdp_plugin.h | 8 | ||||
-rw-r--r-- | plugins/x2go/x2go_plugin.c | 4 | ||||
-rw-r--r-- | src/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/rcw.c | 4 | ||||
-rw-r--r-- | src/remmina.c | 4 | ||||
-rw-r--r-- | src/remmina_plugin_manager.c | 6 | ||||
-rw-r--r-- | src/remmina_plugin_native.c | 4 | ||||
-rw-r--r-- | src/remmina_public.c | 2 |
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) @@ -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" |