Magellan Linux

Contents of /trunk/tigervnc/patches/tigervnc-1.0.1-rh598255.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1201 - (show annotations) (download)
Mon Nov 22 23:25:59 2010 UTC (13 years, 5 months ago) by niro
File size: 2423 byte(s)
-patches for 1.0.1 against xorg-server-1.7
1 Index: unix/vncviewer/CConn.cxx
2 ===================================================================
3 --- unix/vncviewer/CConn.cxx (revision 4003)
4 +++ unix/vncviewer/CConn.cxx (revision 4004)
5 @@ -33,6 +33,7 @@
6 #include <rfb/Password.h>
7 #include <rfb/screenTypes.h>
8 #include <network/TcpSocket.h>
9 +#include <cassert>
10
11 #include "TXViewport.h"
12 #include "DesktopWindow.h"
13 @@ -62,7 +63,7 @@
14 encodingChange(false), sameMachine(false), fullScreen(::fullScreen),
15 ctrlDown(false), altDown(false),
16 menuKeysym(0), menu(dpy, this), options(dpy, this), about(dpy), info(dpy),
17 - reverseConnection(reverse), firstUpdate(true)
18 + reverseConnection(reverse), firstUpdate(true), pendingUpdate(false)
19 {
20 CharArray menuKeyStr(menuKey.getData());
21 menuKeysym = XStringToKeysym(menuKeyStr.buf);
22 @@ -306,8 +307,11 @@
23 // one. We cannot do this if we're in the middle of a format change
24 // though.
25 void CConn::framebufferUpdateStart() {
26 - if (!formatChange)
27 + if (!formatChange) {
28 + pendingUpdate = true;
29 requestNewUpdate();
30 + } else
31 + pendingUpdate = false;
32 }
33
34 // framebufferUpdateEnd() is called at the end of an update.
35 @@ -367,7 +371,7 @@
36
37 // A format change prevented us from sending this before the update,
38 // so make sure to send it now.
39 - if (formatChange)
40 + if (formatChange && !pendingUpdate)
41 requestNewUpdate();
42
43 // Compute new settings based on updated bandwidth values
44 @@ -536,8 +540,11 @@
45 break;
46 case ID_REFRESH:
47 menu.unmap();
48 - writer()->writeFramebufferUpdateRequest(Rect(0, 0, cp.width, cp.height),
49 - false);
50 + if (!formatChange) {
51 + writer()->writeFramebufferUpdateRequest(Rect(0, 0, cp.width, cp.height),
52 + false);
53 + pendingUpdate = true;
54 + }
55 break;
56 case ID_F8:
57 menu.unmap();
58 @@ -840,6 +847,10 @@
59 void CConn::requestNewUpdate()
60 {
61 if (formatChange) {
62 +
63 + /* Catch incorrect requestNewUpdate calls */
64 + assert(pendingUpdate == false);
65 +
66 if (fullColour) {
67 desktop->setPF(fullColourPF);
68 } else {
69 Index: unix/vncviewer/CConn.h
70 ===================================================================
71 --- unix/vncviewer/CConn.h (revision 4003)
72 +++ unix/vncviewer/CConn.h (revision 4004)
73 @@ -132,6 +132,7 @@
74 InfoDialog info;
75 bool reverseConnection;
76 bool firstUpdate;
77 + bool pendingUpdate;
78 };
79
80 #endif