Contents of /trunk/tigervnc/patches/tigervnc-1.0.1-rh598255.patch
Parent Directory | Revision Log
Revision 1201 -
(show annotations)
(download)
Mon Nov 22 23:25:59 2010 UTC (13 years, 10 months ago) by niro
File size: 2423 byte(s)
Mon Nov 22 23:25:59 2010 UTC (13 years, 10 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 |