aboutsummaryrefslogtreecommitdiffstats
path: root/net/rdesktop
diff options
context:
space:
mode:
authorlofi <lofi@FreeBSD.org>2004-10-22 04:38:34 +0800
committerlofi <lofi@FreeBSD.org>2004-10-22 04:38:34 +0800
commit43e7ec56da965a644479e712b38bf3f4a862b4e8 (patch)
tree59c1808b2f06938fffdeed2194e050d810950acb /net/rdesktop
parent18bb096d0af988592f52559902cf01307ebc19c2 (diff)
downloadfreebsd-ports-gnome-43e7ec56da965a644479e712b38bf3f4a862b4e8.tar.gz
freebsd-ports-gnome-43e7ec56da965a644479e712b38bf3f4a862b4e8.tar.zst
freebsd-ports-gnome-43e7ec56da965a644479e712b38bf3f4a862b4e8.zip
Fix rdesktop with KDE 3.3's krdc.
PR: ports/72975 Submitted by: maintainer
Diffstat (limited to 'net/rdesktop')
-rw-r--r--net/rdesktop/Makefile2
-rw-r--r--net/rdesktop/files/patch-rdesktop76
2 files changed, 77 insertions, 1 deletions
diff --git a/net/rdesktop/Makefile b/net/rdesktop/Makefile
index 22dc0953eb9b..9f60ad482c79 100644
--- a/net/rdesktop/Makefile
+++ b/net/rdesktop/Makefile
@@ -7,7 +7,7 @@
PORTNAME= rdesktop
PORTVERSION= 1.3.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= net comms
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= ${PORTNAME}
diff --git a/net/rdesktop/files/patch-rdesktop b/net/rdesktop/files/patch-rdesktop
new file mode 100644
index 000000000000..6f352917d479
--- /dev/null
+++ b/net/rdesktop/files/patch-rdesktop
@@ -0,0 +1,76 @@
+--- rdesktop.c.orig 2004-03-08 18:02:58.000000000 +0100
++++ rdesktop.c 2004-03-09 22:32:19.000000000 +0100
+@@ -27,6 +27,7 @@
+ #include <sys/time.h> /* gettimeofday */
+ #include <sys/times.h> /* times */
+ #include <errno.h>
++#include <X11/Xlib.h> /* Window */
+ #include "rdesktop.h"
+
+ #ifdef EGD_SOCKET
+@@ -68,6 +69,7 @@
+ BOOL g_console_session = False;
+ BOOL g_numlock_sync = False;
+ extern BOOL g_owncolmap;
++extern Window g_embed_wnd;
+
+ #ifdef WITH_RDPSND
+ BOOL g_rdpsnd = False;
+@@ -112,6 +114,7 @@
+ fprintf(stderr, " -S: caption button size (single application mode)\n");
+ fprintf(stderr, " -T: window title\n");
+ fprintf(stderr, " -N: enable numlock synchronisation\n");
++ fprintf(stderr, " -X: embed into another window with a given id.\n");
+ fprintf(stderr, " -a: connection colour depth\n");
+ fprintf(stderr, " -r: enable specified device redirection (currently: sound)\n");
+ fprintf(stderr, " -0: attach to console\n");
+@@ -224,6 +227,7 @@
+ prompt_password = False;
+ domain[0] = password[0] = shell[0] = directory[0] = 0;
+ strcpy(keymapname, "en-us");
++ g_embed_wnd = 0;
+
+ #ifdef RDP2VNC
+ #define VNCOPT "V:Q:"
+@@ -231,7 +235,7 @@
+ #define VNCOPT
+ #endif
+
+- while ((c = getopt(argc, argv, VNCOPT "u:d:s:c:p:n:k:g:fbeEmCDKS:T:Na:r:045h?")) != -1)
++ while ((c = getopt(argc, argv, VNCOPT "u:d:s:c:p:n:k:g:fbeEmCDKS:T:NX:a:r:045h?")) != -1)
+ {
+ switch (c)
+ {
+@@ -374,6 +378,10 @@
+ g_numlock_sync = True;
+ break;
+
++ case 'X':
++ g_embed_wnd = strtod(optarg, NULL);
++ break;
++
+ case 'a':
+ g_server_bpp = strtol(optarg, NULL, 10);
+ if (g_server_bpp != 8 && g_server_bpp != 16 && g_server_bpp != 15
+--- xwin.c.orig 2004-03-08 18:02:58.000000000 +0100
++++ xwin.c 2004-03-10 16:17:59.000000000 +0100
+@@ -41,6 +41,7 @@
+ static int g_x_socket;
+ static Screen *g_screen;
+ Window g_wnd;
++Window g_embed_wnd;
+ BOOL g_enable_compose = False;
+ static GC g_gc;
+ static BOOL g_gc_initialized = False;
+@@ -929,6 +930,11 @@
+ XFree(sizehints);
+ }
+
++ if ( g_embed_wnd )
++ {
++ XReparentWindow(g_display, g_wnd, g_embed_wnd, 0, 0);
++ }
++
+ input_mask = KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask |
+ VisibilityChangeMask | FocusChangeMask;
+