Mailinglist Archive: opensuse-commit (2092 mails)

< Previous Next >
commit tightvnc
  • From: root@xxxxxxxxxxxxxxx (h_root)
  • Date: Fri, 03 Aug 2007 17:18:51 +0200
  • Message-id: <20070803151852.068C2678180@xxxxxxxxxxxxxxx>

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@xxxxxxx
+
+- 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@xxxxxxx
+- New version: 1.3.9
+- Improved x86_64 support and Java viewer
+- Fixed fullscreen mode of vncviewer (#275985)
 * Fri May 04 2007 - ssommer@xxxxxxx
 - add unzip to BuildRequires
 * Tue Apr 24 2007 - max@xxxxxxx

++++++ 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@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages