summaryrefslogtreecommitdiffstats
path: root/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/tight-vncviewer-newfbsize.patch
diff options
context:
space:
mode:
Diffstat (limited to 'x11vnc/misc/enhanced_tightvnc_viewer/src/patches/tight-vncviewer-newfbsize.patch')
-rw-r--r--x11vnc/misc/enhanced_tightvnc_viewer/src/patches/tight-vncviewer-newfbsize.patch286
1 files changed, 0 insertions, 286 deletions
diff --git a/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/tight-vncviewer-newfbsize.patch b/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/tight-vncviewer-newfbsize.patch
deleted file mode 100644
index 9e2c811..0000000
--- a/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/tight-vncviewer-newfbsize.patch
+++ /dev/null
@@ -1,286 +0,0 @@
---- vnc_unixsrc.orig/vncviewer/desktop.c 2004-05-28 13:29:29.000000000 -0400
-+++ vnc_unixsrc/vncviewer/desktop.c 2007-01-13 13:59:51.000000000 -0500
-@@ -50,6 +50,30 @@
- },
- };
-
-+void create_image() {
-+ image = NULL;
-+
-+#ifdef MITSHM
-+ if (appData.useShm) {
-+ image = CreateShmImage();
-+ if (!image)
-+ appData.useShm = False;
-+ }
-+#endif
-+
-+ if (!image) {
-+ image = XCreateImage(dpy, vis, visdepth, ZPixmap, 0, NULL,
-+ si.framebufferWidth, si.framebufferHeight,
-+ BitmapPad(dpy), 0);
-+
-+ image->data = malloc(image->bytes_per_line * image->height);
-+ if (!image->data) {
-+ fprintf(stderr,"malloc failed\n");
-+ exit(1);
-+ }
-+ }
-+}
-+
-
- /*
- * DesktopInitBeforeRealization creates the "desktop" widget and the viewport
-@@ -82,30 +106,9 @@
- for (i = 0; i < 256; i++)
- modifierPressed[i] = False;
-
-- image = NULL;
--
--#ifdef MITSHM
-- if (appData.useShm) {
-- image = CreateShmImage();
-- if (!image)
-- appData.useShm = False;
-- }
--#endif
--
-- if (!image) {
-- image = XCreateImage(dpy, vis, visdepth, ZPixmap, 0, NULL,
-- si.framebufferWidth, si.framebufferHeight,
-- BitmapPad(dpy), 0);
--
-- image->data = malloc(image->bytes_per_line * image->height);
-- if (!image->data) {
-- fprintf(stderr,"malloc failed\n");
-- exit(1);
-- }
-- }
-+ create_image();
- }
-
--
- /*
- * DesktopInitAfterRealization does things which require the X windows to
- * exist. It creates some GCs and sets the dot cursor.
-@@ -460,3 +463,70 @@
- break;
- }
- }
-+
-+static void reset_image(void) {
-+ if (UsingShm()) {
-+ ShmCleanup();
-+ } else {
-+ if (image && image->data) {
-+ free(image->data);
-+ /* see manpage XDestroyImage may also free data, so we skip and have a tiny leak instead */
-+ if (0) XDestroyImage(image);
-+ image = NULL;
-+ }
-+ }
-+ create_image();
-+ XFlush(dpy);
-+}
-+
-+void ReDoDesktop(void) {
-+ int w, h, x, y, dw, dh;
-+
-+ if (appData.fullScreen) {
-+ if (image && image->data) {
-+ int len;
-+ int h = image->height;
-+ int w = image->width;
-+ len = image->bytes_per_line * image->height;
-+ /* black out window first: */
-+ memset(image->data, 0, len);
-+ XPutImage(dpy, XtWindow(desktop), gc, image, 0, 0, 0, 0, w, h);
-+ XFlush(dpy);
-+ }
-+ XtResizeWidget(desktop, si.framebufferWidth, si.framebufferHeight, 0);
-+ XSync(dpy, False);
-+ usleep(100*1000);
-+ FullScreenOn();
-+ XSync(dpy, False);
-+ usleep(100*1000);
-+ reset_image();
-+ return;
-+ }
-+
-+ dw = appData.wmDecorationWidth;
-+ dh = appData.wmDecorationHeight;
-+
-+ w = si.framebufferWidth;
-+ h = si.framebufferHeight;
-+
-+ if (w + dw >= dpyWidth) {
-+ w = dpyWidth - dw;
-+ }
-+ if (h + dh >= dpyHeight) {
-+ h = dpyHeight - dh;
-+ }
-+
-+ XtVaSetValues(toplevel, XtNmaxWidth, w, XtNmaxHeight, h, NULL);
-+
-+ XtVaSetValues(desktop, XtNwidth, si.framebufferWidth,
-+ XtNheight, si.framebufferHeight, NULL);
-+
-+ x = (dpyWidth - w - dw)/2;
-+ y = (dpyHeight - h - dh)/2;
-+
-+ XtResizeWidget(desktop, si.framebufferWidth, si.framebufferHeight, 0);
-+
-+ XtConfigureWidget(toplevel, x + dw, y + dh, w, h, 0);
-+
-+ reset_image();
-+}
---- vnc_unixsrc.orig/vncviewer/fullscreen.c 2003-10-09 05:23:49.000000000 -0400
-+++ vnc_unixsrc/vncviewer/fullscreen.c 2006-07-27 14:36:06.000000000 -0400
-@@ -85,10 +85,13 @@
- Dimension oldViewportWidth, oldViewportHeight, clipWidth, clipHeight;
- Position viewportX, viewportY;
-
-+ Bool fsAlready = appData.fullScreen, toobig = False;
-+
- appData.fullScreen = True;
-
- if (si.framebufferWidth > dpyWidth || si.framebufferHeight > dpyHeight) {
-
-+ toobig = True;
- XtVaSetValues(viewport, XtNforceBars, True, NULL);
- XtVaGetValues(viewport, XtNwidth, &oldViewportWidth,
- XtNheight, &oldViewportHeight, NULL);
-@@ -129,6 +132,7 @@
- reparenting our window to the root. The window manager will get a
- ReparentNotify and hopefully clean up its frame window. */
-
-+if (! fsAlready) {
- XtVaSetValues(toplevel, XtNoverrideRedirect, True, NULL);
-
- XReparentWindow(dpy, XtWindow(toplevel), DefaultRootWindow(dpy), 0, 0);
-@@ -164,10 +168,22 @@
-
- XtManageChild(viewport);
-
-- /* Now we can set "toplevel" to its proper size. */
-+} else {
-+ XSync(dpy, False);
-+}
-
-+ /* Now we can set "toplevel" to its proper size. */
- XtResizeWidget(toplevel, toplevelWidth, toplevelHeight, 0);
-
-+if (fsAlready) {
-+ XtResizeWidget(viewport, viewportWidth, viewportHeight, 0);
-+ if (! toobig) {
-+ XtVaSetValues(viewport, XtNforceBars, False, NULL);
-+ }
-+ XMoveWindow(dpy, XtWindow(viewport), viewportX, viewportY);
-+ XSync(dpy, False);
-+}
-+
- /* Set the popup to overrideRedirect too */
-
- XtVaSetValues(popup, XtNoverrideRedirect, True, NULL);
---- vnc_unixsrc.orig/vncviewer/rfbproto.c 2004-03-11 13:14:39.000000000 -0500
-+++ vnc_unixsrc/vncviewer/rfbproto.c 2006-07-25 21:51:20.000000000 -0400
-@@ -177,6 +177,9 @@
- sig_rfbEncodingPointerPos, "Pointer position update");
- CapsAdd(encodingCaps, rfbEncodingLastRect, rfbTightVncVendor,
- sig_rfbEncodingLastRect, "LastRect protocol extension");
-+
-+ CapsAdd(encodingCaps, rfbEncodingNewFBSize, rfbTightVncVendor,
-+ sig_rfbEncodingNewFBSize, "New FB size protocol extension");
- }
-
-
-@@ -729,6 +732,7 @@
- Bool requestCompressLevel = False;
- Bool requestQualityLevel = False;
- Bool requestLastRectEncoding = False;
-+ Bool requestNewFBSizeEncoding = True;
-
- spf.type = rfbSetPixelFormat;
- spf.format = myFormat;
-@@ -806,6 +810,10 @@
- if (se->nEncodings < MAX_ENCODINGS && requestLastRectEncoding) {
- encs[se->nEncodings++] = Swap32IfLE(rfbEncodingLastRect);
- }
-+
-+ if (se->nEncodings < MAX_ENCODINGS && requestNewFBSizeEncoding) {
-+ encs[se->nEncodings++] = Swap32IfLE(rfbEncodingNewFBSize);
-+ }
- }
- else {
- if (SameMachine(rfbsock)) {
-@@ -849,6 +857,7 @@
- }
-
- encs[se->nEncodings++] = Swap32IfLE(rfbEncodingLastRect);
-+ encs[se->nEncodings++] = Swap32IfLE(rfbEncodingNewFBSize);
- }
-
- len = sz_rfbSetEncodingsMsg + se->nEncodings * 4;
-@@ -1038,6 +1047,16 @@
- }
- continue;
- }
-+ if (rect.encoding == rfbEncodingNewFBSize) {
-+ fprintf(stderr,"New Size: %dx%d at (%d, %d)\n",
-+ rect.r.w, rect.r.h, rect.r.x, rect.r.y);
-+ si.framebufferWidth = rect.r.w;
-+ si.framebufferHeight = rect.r.h;
-+ fprintf(stderr, "si: %d %d\n", si.framebufferWidth, si.framebufferHeight);
-+ ReDoDesktop();
-+
-+ continue;
-+ }
-
- if ((rect.r.x + rect.r.w > si.framebufferWidth) ||
- (rect.r.y + rect.r.h > si.framebufferHeight))
---- vnc_unixsrc.orig/vncviewer/shm.c 2000-06-11 08:00:53.000000000 -0400
-+++ vnc_unixsrc/vncviewer/shm.c 2006-07-26 23:30:42.000000000 -0400
-@@ -41,6 +41,10 @@
- }
- }
-
-+Bool UsingShm() {
-+ return needShmCleanup;
-+}
-+
- static int
- ShmCreationXErrorHandler(Display *dpy, XErrorEvent *error)
- {
---- vnc_unixsrc.orig/vncviewer/vncviewer.h 2004-03-11 13:14:40.000000000 -0500
-+++ vnc_unixsrc/vncviewer/vncviewer.h 2006-07-26 23:31:25.000000000 -0400
-@@ -162,6 +162,8 @@
- extern void CopyDataToScreen(char *buf, int x, int y, int width, int height);
- extern void SynchroniseScreen();
-
-+extern void ReDoDesktop();
-+
- /* dialogs.c */
-
- extern void ServerDialogDone(Widget w, XEvent *event, String *params,
-@@ -243,6 +245,7 @@
-
- extern XImage *CreateShmImage();
- extern void ShmCleanup();
-+extern Bool UsingShm();
-
- /* sockets.c */
-
---- vnc_unixsrc.orig/vncviewer/vncviewer.c 2004-01-13 09:22:05.000000000 -0500
-+++ vnc_unixsrc/vncviewer/vncviewer.c 2006-07-27 19:00:25.000000000 -0400
-@@ -57,6 +57,11 @@
- }
- }
-
-+ if (argc > 1 && strstr(argv[1], "-h") == argv[1]) {
-+ usage();
-+ return 0;
-+ }
-+
- /* Call the main Xt initialisation function. It parses command-line options,
- generating appropriate resource specs, and makes a connection to the X
- display. */
OpenPOWER on IntegriCloud