Hello community, here is the log from the commit of package tightvnc checked in at Fri Aug 3 17:18:51 CEST 2007. -------- --- tightvnc/tightvnc.changes 2007-05-04 10:44:45.000000000 +0200 +++ /mounts/work_src_done/STABLE/tightvnc/tightvnc.changes 2007-08-02 16:09:46.000000000 +0200 @@ -1,0 +2,7 @@ +Thu Aug 2 16:04:11 CEST 2007 - max@suse.de + +- New version: 1.3.9 +- Improved x86_64 support and Java viewer +- Fixed fullscreen mode of vncviewer (#275985) + +------------------------------------------------------------------- Old: ---- tightvnc-1.3.8.tar.bz2 New: ---- tightvnc-1.3.9.tar.bz2 tightvnc-firewall-http tightvnc-firewall-vnc tightvnc-fullscreen.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ tightvnc.spec ++++++ --- /var/tmp/diff_new_pack.D16046/_old 2007-08-03 17:18:34.000000000 +0200 +++ /var/tmp/diff_new_pack.D16046/_new 2007-08-03 17:18:34.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package tightvnc (Version 1.3.8) +# spec file for package tightvnc (Version 1.3.9) # # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -13,20 +13,22 @@ Name: tightvnc BuildRequires: libjpeg-devel unzip xorg-x11-devel URL: http://www.tightvnc.com -License: GNU General Public License (GPL) -Group: System/X11/Utilities +License: GPL v2 or later +Group: Productivity/Networking/Remote Desktop Autoreqprov: on Requires: xorg-x11-Xvnc Provides: vnc Obsoletes: vnc PreReq: sed Summary: A virtual X-Window System server -Version: 1.3.8 -Release: 15 +Version: 1.3.9 +Release: 1 Source0: %name-%version.tar.bz2 Source1: vnc_inetd_httpd Source2: vnc.xinetd Source3: vnc.reg +Source4: tightvnc-firewall-vnc +Source5: tightvnc-firewall-http Patch0: vncviewer.patch Patch1: vncserver.patch Patch2: vncpasswd.arg.patch @@ -37,6 +39,7 @@ Patch7: tightvnc-vncviewer-scrollbar.patch Patch8: tightvnc-newfbsize.patch Patch9: tightvnc-rfbversion.patch +Patch10: tightvnc-fullscreen.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -45,8 +48,8 @@ machine without terminating your session. The viewer and server are also available for Windows -- they allow -access to vnc under Windows. You can find it under /dosutils/vnc on -the first CD or DVD. +access to vnc under Windows. You can find it under /dosutils/tightvnc +on the installation media. @@ -67,6 +70,7 @@ %patch7 %patch8 %patch9 +%patch10 %build xmkmf @@ -84,6 +88,9 @@ install -m755 -c %{SOURCE1} $RPM_BUILD_ROOT/usr/bin/ mkdir -m755 -p $RPM_BUILD_ROOT/etc/slp.reg.d/ install -m644 -c %{SOURCE3} $RPM_BUILD_ROOT/etc/slp.reg.d/ +mkdir -m755 -p %buildroot/etc/sysconfig/SuSEfirewall2.d/services +install -m644 -c %SOURCE4 %buildroot/etc/sysconfig/SuSEfirewall2.d/services/vnc-server +install -m644 -c %SOURCE5 %buildroot/etc/sysconfig/SuSEfirewall2.d/services/vnc-httpd %post if [ -f /etc/xinetd.d/vnc.rpmnew -a -f /etc/xinetd.d/vnc ]; then @@ -109,10 +116,15 @@ /usr/share/vnc /usr/bin/* %config(noreplace) /etc/xinetd.d/vnc -%dir /etc/slp.reg.d/ +%dir /etc/slp.reg.d %config(noreplace) /etc/slp.reg.d/* +%config(noreplace) /etc/sysconfig/SuSEfirewall2.d/services/* %changelog +* Thu Aug 02 2007 - max@suse.de +- New version: 1.3.9 +- Improved x86_64 support and Java viewer +- Fixed fullscreen mode of vncviewer (#275985) * Fri May 04 2007 - ssommer@suse.de - add unzip to BuildRequires * Tue Apr 24 2007 - max@suse.de ++++++ tightvnc-1.3.8.tar.bz2 -> tightvnc-1.3.9.tar.bz2 ++++++ ++++ 7301 lines of diff (skipped) ++++++ tightvnc-fullscreen.patch ++++++ --- vncviewer/fullscreen.c +++ vncviewer/fullscreen.c @@ -35,7 +35,35 @@ static Dimension viewportWidth, viewportHeight; static Dimension scrollbarWidth, scrollbarHeight; +#define _NET_WM_STATE_REMOVE 0 /* remove/unset property */ +#define _NET_WM_STATE_ADD 1 /* add/set property */ +static void +netwm_set_state(Display *dpy, Window win, int operation, Atom state) +{ + XEvent e; + Atom _NET_WM_STATE = XInternAtom(dpy, "_NET_WM_STATE", False); + + memset(&e,0,sizeof(e)); + e.xclient.type = ClientMessage; + e.xclient.message_type = _NET_WM_STATE; + e.xclient.display = dpy; + e.xclient.window = win; + e.xclient.format = 32; + e.xclient.data.l[0] = operation; + e.xclient.data.l[1] = state; + + XSendEvent(dpy, DefaultRootWindow(dpy), False, + SubstructureRedirectMask, &e); +} + +static void +netwm_fullscreen(Display *dpy, Window win, int state) +{ + Atom _NET_WM_STATE_FULLSCREEN = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False); + int op = state ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE; + netwm_set_state(dpy,win,op,_NET_WM_STATE_FULLSCREEN); +} /* * FullScreenOn goes into full-screen mode. It makes the toplevel window @@ -99,14 +127,16 @@ scrollbarHeight = oldViewportHeight - clipHeight; if (si.framebufferWidth > dpyWidth) { - viewportWidth = toplevelWidth = dpyWidth + scrollbarWidth; + toplevelWidth = dpyWidth + scrollbarWidth; + viewportWidth = toplevelWidth; } else { viewportWidth = si.framebufferWidth + scrollbarWidth; toplevelWidth = dpyWidth; } if (si.framebufferHeight > dpyHeight) { - viewportHeight = toplevelHeight = dpyHeight + scrollbarHeight; + toplevelHeight = dpyHeight + scrollbarHeight; + viewportHeight = toplevelHeight; } else { viewportHeight = si.framebufferHeight + scrollbarHeight; toplevelHeight = dpyHeight; @@ -122,37 +152,14 @@ viewportX = (toplevelWidth - viewportWidth) / 2; viewportY = (toplevelHeight - viewportHeight) / 2; - /* We want to stop the window manager from managing our toplevel window. This is not really a nice thing to do, so may not work properly with every window manager. We do this simply by setting overrideRedirect and reparenting our window to the root. The window manager will get a ReparentNotify and hopefully clean up its frame window. */ - XtVaSetValues(toplevel, XtNoverrideRedirect, True, NULL); - - XReparentWindow(dpy, XtWindow(toplevel), DefaultRootWindow(dpy), 0, 0); - - /* Some WMs does not obey x,y values of XReparentWindow; the window - is not placed in the upper, left corner. The code below fixes - this: It manually moves the window, after the Xserver is done - with XReparentWindow. The last XSync seems to prevent losing - focus, but I don't know why. */ - XSync(dpy, False); - XMoveWindow(dpy, XtWindow(toplevel), 0, 0); - XSync(dpy, False); - - /* Now we want to fix the size of "viewport". We shouldn't just change it - directly. Instead we set "toplevel" to the required size (which should - propagate through "form" to "viewport"). Then we remove "viewport" from - being managed by "form", change its resources to position it and make sure - that "form" won't attempt to resize it, then ask "form" to manage it - again. */ - - XtResizeWidget(toplevel, viewportWidth, viewportHeight, 0); - + XtResizeWidget(viewport, viewportWidth, viewportHeight, 0); XtUnmanageChild(viewport); - XtVaSetValues(viewport, XtNhorizDistance, viewportX, XtNvertDistance, viewportY, @@ -162,28 +169,10 @@ XtNbottom, XtChainTop, NULL); - XtManageChild(viewport); - - /* Now we can set "toplevel" to its proper size. */ - - XtResizeWidget(toplevel, toplevelWidth, toplevelHeight, 0); - - /* Set the popup to overrideRedirect too */ + XtManageChild(viewport); XtVaSetValues(popup, XtNoverrideRedirect, True, NULL); - - /* Try to get the input focus. */ - - XSetInputFocus(dpy, DefaultRootWindow(dpy), RevertToPointerRoot, - CurrentTime); - - /* Optionally, grab the keyboard. */ - - if (appData.grabKeyboard && - XtGrabKeyboard(desktop, True, GrabModeAsync, - GrabModeAsync, CurrentTime) != GrabSuccess) { - fprintf(stderr, "XtGrabKeyboard() failed.\n"); - } + netwm_fullscreen(dpy, XtWindow(toplevel), True); } @@ -210,14 +199,11 @@ appData.fullScreen = False; - if (appData.grabKeyboard) - XtUngrabKeyboard(desktop, CurrentTime); - - XtUnmapWidget(toplevel); - + netwm_fullscreen(dpy, XtWindow(toplevel), False); XtResizeWidget(toplevel, viewportWidth - scrollbarWidth, viewportHeight - scrollbarHeight, 0); + XtResizeWidget(viewport, viewportWidth - scrollbarWidth, viewportHeight - scrollbarHeight, 0); @@ -236,18 +222,6 @@ NULL); XtManageChild(viewport); - - XtVaSetValues(toplevel, XtNoverrideRedirect, False, NULL); - - if ((toplevelWidth + appData.wmDecorationWidth) >= dpyWidth) - toplevelWidth = dpyWidth - appData.wmDecorationWidth; - - if ((toplevelHeight + appData.wmDecorationHeight) >= dpyHeight) - toplevelHeight = dpyHeight - appData.wmDecorationHeight; - - XtResizeWidget(toplevel, toplevelWidth, toplevelHeight, 0); - - XtMapWidget(toplevel); XSync(dpy, False); /* Set the popup back to non-overrideRedirect */ --- vncviewer/misc.c +++ vncviewer/misc.c @@ -65,19 +65,6 @@ dpyWidth = WidthOfScreen(DefaultScreenOfDisplay(dpy)); dpyHeight = HeightOfScreen(DefaultScreenOfDisplay(dpy)); - if (appData.fullScreen) { - - /* full screen - set position to 0,0, but defer size calculation until - widgets are realized */ - - XtVaSetValues(toplevel, XtNoverrideRedirect, True, - XtNgeometry, "+0+0", NULL); - - } else { - - /* not full screen - work out geometry for middle of screen unless - specified by user */ - XtVaGetValues(toplevel, XtNgeometry, &geometry, NULL); if (geometry == NULL) { @@ -105,7 +92,6 @@ toplevelWidth, toplevelHeight, toplevelX, toplevelY); XtVaSetValues(toplevel, XtNgeometry, geometry, NULL); } - } /* Test if the keyboard is grabbed. If so, it's probably because the XDM login window is up, so try iconifying it to release the grab */ ++++++ tightvnc-rfbversion.patch ++++++ --- /var/tmp/diff_new_pack.D16046/_old 2007-08-03 17:18:34.000000000 +0200 +++ /var/tmp/diff_new_pack.D16046/_new 2007-08-03 17:18:34.000000000 +0200 @@ -1,15 +1,13 @@ --- vncviewer/rfbproto.c +++ vncviewer/rfbproto.c -@@ -240,8 +240,10 @@ +@@ -240,8 +240,9 @@ + return False; } - viewer_major = rfbProtocolMajorVersion; -- if (server_major == 3 && server_minor >= rfbProtocolMinorVersion) { -- /* the server supports at least the standard protocol 3.7 */ -+ if (server_major == 3 && server_minor >= rfbProtocolMinorVersion -+ && server_minor != 130) { -+ /* the server supports at least the standard protocol 3.7, */ +- if (server_major == 3 && server_minor >= 8) { ++ if (server_major == 3 && server_minor >= 8 && server_minor != 130) { + /* the server supports protocol 3.8 or higher version */ + /* but not the non-standard version 3.130 of XF4VNC */ - viewer_minor = rfbProtocolMinorVersion; - } else { - /* any other server version, request the standard 3.3 */ + protocolMinorVersion = 8; + } else if (server_major == 3 && server_minor == 7) { + /* the server supports protocol 3.7 */ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org