Annotation of /trunk/vnc/patches/vnc-gnome-mouse-locale.patch
Parent Directory | Revision Log
Revision 153 -
(hide annotations)
(download)
Tue May 8 20:52:56 2007 UTC (17 years, 4 months ago) by niro
File size: 1620 byte(s)
Tue May 8 20:52:56 2007 UTC (17 years, 4 months ago) by niro
File size: 1620 byte(s)
-import
1 | niro | 153 | --- unix/vncviewer/DesktopWindow.cxx.fix 2006-05-15 18:56:20.000000000 +0200 |
2 | +++ unix/vncviewer/DesktopWindow.cxx 2006-11-03 15:32:55.000000000 +0100 | ||
3 | @@ -370,9 +370,13 @@ | ||
4 | break; | ||
5 | |||
6 | case ButtonPress: | ||
7 | + if(ev->xkey.state & ControlMask) | ||
8 | + cc->writer()->keyEvent(XK_Control_L, true); | ||
9 | handlePointerEvent(Point(ev->xbutton.x, ev->xbutton.y), | ||
10 | (((ev->xbutton.state & 0x1f00) >> 8) | | ||
11 | (1 << (ev->xbutton.button-1)))); | ||
12 | + if(ev->xkey.state & ControlMask) | ||
13 | + cc->writer()->keyEvent(XK_Control_L, false); | ||
14 | break; | ||
15 | |||
16 | case ButtonRelease: | ||
17 | @@ -387,6 +391,16 @@ | ||
18 | char keyname[256]; | ||
19 | XLookupString(&ev->xkey, keyname, 256, &ks, NULL); | ||
20 | bool fakeShiftPress = false; | ||
21 | + bool ctrlPressed = false; | ||
22 | + | ||
23 | + if((ks == XK_Control_L) || (ks == XK_Control_R)) | ||
24 | + break; | ||
25 | + | ||
26 | + if(ev->xkey.state & ControlMask) | ||
27 | + { | ||
28 | + ctrlPressed = true; | ||
29 | + cc->writer()->keyEvent(XK_Control_L, true); | ||
30 | + } | ||
31 | |||
32 | // Turn ISO_Left_Tab into shifted Tab | ||
33 | if (ks == XK_ISO_Left_Tab) { | ||
34 | @@ -402,11 +416,19 @@ | ||
35 | |||
36 | if (fakeShiftPress) | ||
37 | cc->writer()->keyEvent(XK_Shift_L, false); | ||
38 | + if(ctrlPressed) | ||
39 | + cc->writer()->keyEvent(XK_Control_L, false); | ||
40 | break; | ||
41 | } | ||
42 | |||
43 | case KeyRelease: | ||
44 | if (!viewOnly) { | ||
45 | + KeySym ks; | ||
46 | + char keyname[256]; | ||
47 | + XLookupString(&ev->xkey, keyname, 256, &ks, NULL); | ||
48 | + if((ks == XK_Control_L) || (ks == XK_Control_L)) | ||
49 | + break; | ||
50 | + | ||
51 | if (downKeysym[ev->xkey.keycode]) { | ||
52 | cc->writer()->keyEvent(downKeysym[ev->xkey.keycode], false); | ||
53 | downKeysym[ev->xkey.keycode] = 0; | ||
54 |