|
1 ## Patch originally from Fedora - Revision 1.1 of: |
|
2 http://cvs.fedoraproject.org/viewvc/rpms/vnc/devel/vnc-bounds.patch |
|
3 with paths adjusted to match sources in tarball before files are moved |
|
4 |
|
5 diff -up vnc-4_1_2-unixsrc/unix/xc/programs/Xserver/vnc/XserverDesktop.cc.bounds vnc-4_1_2-unixsrc/unix/xc/programs/Xserver/vnc/XserverDesktop.cc |
|
6 --- vnc-4_1_2-unixsrc/unix/xc/programs/Xserver/vnc/XserverDesktop.cc.bounds 2008-03-17 16:46:27.000000000 +0100 |
|
7 +++ vnc-4_1_2-unixsrc/unix/xc/programs/Xserver/vnc/XserverDesktop.cc 2008-03-17 16:59:11.000000000 +0100 |
|
8 @@ -486,32 +486,36 @@ void XserverDesktop::add_changed(RegionP |
|
9 { |
|
10 if (ignoreHooks_) return; |
|
11 if (grabbing) return; |
|
12 + |
|
13 + BoxRec screenbox; |
|
14 + RegionPtr newreg = REGION_CREATE(pScreen, 0, 0); |
|
15 + |
|
16 + screenbox.x1 = screenbox.y1 = 0; |
|
17 + screenbox.x2 = pScreen->width; |
|
18 + screenbox.y2 = pScreen->height; |
|
19 + |
|
20 + RegionPtr screenreg = REGION_CREATE(pScreen, &screenbox, 0); |
|
21 + REGION_INTERSECT(pScreen, newreg, reg, screenreg); |
|
22 + REGION_DESTROY (pScreen, screenreg); |
|
23 + |
|
24 try { |
|
25 rfb::Region rfbReg; |
|
26 - rfbReg.setExtentsAndOrderedRects((ShortRect*)REGION_EXTENTS(pScreen, reg), |
|
27 - REGION_NUM_RECTS(reg), |
|
28 - (ShortRect*)REGION_RECTS(reg)); |
|
29 + rfbReg.setExtentsAndOrderedRects((ShortRect*)REGION_EXTENTS(pScreen, newreg), |
|
30 + REGION_NUM_RECTS(newreg), |
|
31 + (ShortRect*)REGION_RECTS(newreg)); |
|
32 server->add_changed(rfbReg); |
|
33 deferUpdate(); |
|
34 } catch (rdr::Exception& e) { |
|
35 vlog.error("XserverDesktop::add_changed: %s",e.str()); |
|
36 } |
|
37 + REGION_DESTROY (pScreen, newreg); |
|
38 } |
|
39 |
|
40 void XserverDesktop::add_copied(RegionPtr dst, int dx, int dy) |
|
41 { |
|
42 - if (ignoreHooks_) return; |
|
43 - if (grabbing) return; |
|
44 - try { |
|
45 - rfb::Region rfbReg; |
|
46 - rfbReg.setExtentsAndOrderedRects((ShortRect*)REGION_EXTENTS(pScreen, dst), |
|
47 - REGION_NUM_RECTS(dst), |
|
48 - (ShortRect*)REGION_RECTS(dst)); |
|
49 - server->add_copied(rfbReg, rfb::Point(dx, dy)); |
|
50 - deferUpdate(); |
|
51 - } catch (rdr::Exception& e) { |
|
52 - vlog.error("XserverDesktop::add_copied: %s",e.str()); |
|
53 - } |
|
54 + add_changed (dst); |
|
55 + REGION_TRANSLATE (pScreen, dst, -dx, -dy); |
|
56 + add_changed (dst); |
|
57 } |
|
58 |
|
59 void XserverDesktop::positionCursor() |