Magellan Linux

Annotation of /trunk/vnc/patches/vnc-server-selections.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 639 - (hide annotations) (download)
Tue Jun 3 20:56:41 2008 UTC (15 years, 11 months ago) by niro
File size: 2761 byte(s)
-renamed patch

1 niro 639 diff -up vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/vncExtInit.cc.selections vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/vncExtInit.cc
2     --- vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/vncExtInit.cc.selections 2008-03-10 15:34:24.000000000 +0100
3     +++ vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/vncExtInit.cc 2008-03-11 10:55:44.000000000 +0100
4     @@ -62,11 +62,9 @@ extern "C" {
5     static void SendSelectionChangeEvent(Atom selection);
6     static int ProcVncExtDispatch(ClientPtr client);
7     static int SProcVncExtDispatch(ClientPtr client);
8     + static void vncSelectionCallback(CallbackListPtr *callbacks, pointer data, pointer args);
9    
10     extern char *display;
11     -
12     - extern Selection *CurrentSelections;
13     - extern int NumCurrentSelections;
14     }
15    
16     using namespace rfb;
17     @@ -99,7 +97,6 @@ struct VncInputSelect {
18     VncInputSelect* next;
19     };
20    
21     -static int nPrevSelections = 0;
22     static TimeStamp* prevSelectionTimes = 0;
23    
24     static int vncErrorBase = 0;
25     @@ -147,6 +144,10 @@ void vncExtensionInit()
26     FatalError("AddCallback failed\n");
27     }
28    
29     + if (!AddCallback(&SelectionCallback, vncSelectionCallback, 0)) {
30     + FatalError("Add selection callback failed\n");
31     + }
32     +
33     try {
34     if (!initialised) {
35     rfb::initStdIOLoggers();
36     @@ -212,6 +213,14 @@ static void vncResetProc(ExtensionEntry*
37     {
38     }
39    
40     +static void vncSelectionCallback(CallbackListPtr *callbacks, pointer data, pointer args)
41     +{
42     + SelectionInfoRec *info = (SelectionInfoRec *) args;
43     + Selection *selection = info->selection;
44     +
45     + SendSelectionChangeEvent(selection->selection);
46     +}
47     +
48     //
49     // vncBlockHandler - called just before the X server goes into select(). Call
50     // on to the block handler for each desktop. Then check whether any of the
51     @@ -227,27 +236,6 @@ static void vncBlockHandler(pointer data
52     desktop[scr]->blockHandler(fds);
53     }
54     }
55     -
56     - if (nPrevSelections != NumCurrentSelections) {
57     - prevSelectionTimes
58     - = (TimeStamp*)xnfrealloc(prevSelectionTimes,
59     - NumCurrentSelections * sizeof(TimeStamp));
60     - for (int i = nPrevSelections; i < NumCurrentSelections; i++) {
61     - prevSelectionTimes[i].months = 0;
62     - prevSelectionTimes[i].milliseconds = 0;
63     - }
64     - nPrevSelections = NumCurrentSelections;
65     - }
66     - for (int i = 0; i < NumCurrentSelections; i++) {
67     - if (CurrentSelections[i].lastTimeChanged.months
68     - != prevSelectionTimes[i].months ||
69     - CurrentSelections[i].lastTimeChanged.milliseconds
70     - != prevSelectionTimes[i].milliseconds)
71     - {
72     - SendSelectionChangeEvent(CurrentSelections[i].selection);
73     - prevSelectionTimes[i] = CurrentSelections[i].lastTimeChanged;
74     - }
75     - }
76     }
77    
78     static void vncWakeupHandler(pointer data, int nfds, pointer readmask)