diff options
Diffstat (limited to 'nx-X11/programs')
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Events.c | 257 |
1 files changed, 109 insertions, 148 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Events.c b/nx-X11/programs/Xserver/hw/nxagent/Events.c index cbdf17a22..af6f17cc3 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Events.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Events.c @@ -105,9 +105,8 @@ #include "compext/Compext.h" /* - * Set here the required log level. Please note - * that if you want to enable DEBUG here, then - * you need to enable DEBUG even in Rootless.c + * Set here the required log level. Please note that if you want to + * enable DEBUG here, then you need to enable DEBUG even in Rootless.c */ #define PANIC @@ -163,8 +162,7 @@ PropertyRequestRec nxagentPropertyRequests[NXNumberOfResources]; void nxagentHandleCollectPropertyEvent(XEvent*); /* - * Finalize the asynchronous handling - * of the X_GrabPointer requests. + * Finalize the asynchronous handling of the X_GrabPointer requests. */ void nxagentHandleCollectGrabPointerEvent(int resource); @@ -172,8 +170,8 @@ void nxagentHandleCollectGrabPointerEvent(int resource); Bool nxagentCollectGrabPointerPredicate(Display *display, XEvent *X, XPointer ptr); /* - * Used in Handlers.c to synchronize - * the agent with the remote X server. + * Used in Handlers.c to synchronize the agent with the remote X + * server. */ void nxagentHandleCollectInputFocusEvent(int resource); @@ -193,12 +191,12 @@ static Cursor viewportCursor; #define nextinc(x) ((x) < MAX_INC ? (x) += INC_STEP : (x)) /* - * Keyboard and pointer are handled as they were real devices by - * Xnest and we inherit this behaviour. The following mask will - * contain the event mask selected for the root window of the - * agent. All the keyboard and pointer events will be translated - * by the agent and sent to the internal clients according to - * events selected by the inferior windows. + * Keyboard and pointer are handled as they were real devices by Xnest + * and we inherit this behaviour. The following mask will contain the + * event mask selected for the root window of the agent. All the + * keyboard and pointer events will be translated by the agent and + * sent to the internal clients according to events selected by the + * inferior windows. */ static Mask defaultEventMask; @@ -206,9 +204,8 @@ static Mask defaultEventMask; static int lastEventSerial = 0; /* - * Used to mask the appropriate bits in - * the state reported by XkbStateNotify - * and XkbGetIndicatorState. + * Used to mask the appropriate bits in the state reported by + * XkbStateNotify and XkbGetIndicatorState. */ #define CAPSFLAG_IN_REPLY 1 @@ -221,8 +218,8 @@ CARD32 nxagentLastKeyPressTime = 0; Time nxagentLastServerTime = 0; /* - * Used for storing windows that need to - * receive expose events from the agent. + * Used for storing windows that need to receive expose events from + * the agent. */ #define nxagentExposeQueueHead nxagentExposeQueue.exposures[nxagentExposeQueue.start] @@ -246,16 +243,14 @@ int GetWindowProperty(WindowPtr pWin, Atom property, long longOffset, unsigned char **propData); /* - * Associate a resource to a drawable and - * store the region affected by the split - * operation. + * Associate a resource to a drawable and store the region affected by + * the split operation. */ SplitResourceRec nxagentSplitResources[NXNumberOfResources]; /* - * Associate a resource to an unpack - * operation. + * Associate a resource to an unpack operation. */ UnpackResourceRec nxagentUnpackResources[NXNumberOfResources]; @@ -269,8 +264,7 @@ Bool nxagentLastWindowDestroyed = False; Time nxagentLastWindowDestroyedTime = 0; /* - * Set this flag when an user input event - * is received. + * Set this flag when an user input event is received. */ int nxagentInputEvent = 0; @@ -728,9 +722,8 @@ static void nxagentToggleAutoGrab(void) static Bool nxagentExposurePredicate(Display *display, XEvent *event, XPointer window) { /* - * Handle both Expose and ProcessedExpose events. - * The latters are those not filtered by function - * nxagentWindowExposures(). + * Handle both Expose and ProcessedExpose events. The latters are + * those not filtered by function nxagentWindowExposures(). */ if (window) @@ -876,13 +869,11 @@ void nxagentDispatchEvents(PredicateFuncPtr predicate) } /* - * We must read here, even if apparently there is - * nothing to read. The ioctl() based readable - * function, in fact, is often unable to detect a - * failure of the socket, in particular if the - * agent was connected to the proxy and the proxy - * is gone. Thus we must trust the wakeup handler - * that called us after the select(). + * We must read here, even if apparently there is nothing to + * read. The ioctl() based readable function, in fact, is often + * unable to detect a failure of the socket, in particular if the + * agent was connected to the proxy and the proxy is gone. Thus we + * must trust the wakeup handler that called us after the select(). */ #ifdef TEST @@ -895,11 +886,10 @@ void nxagentDispatchEvents(PredicateFuncPtr predicate) #endif /* - * We want to process all the events already in - * the queue, plus any additional event that may - * be read from the network. If no event can be - * read, we want to continue handling our clients - * without flushing the output buffer. + * We want to process all the events already in the queue, plus any + * additional event that may be read from the network. If no event + * can be read, we want to continue handling our clients without + * flushing the output buffer. */ while (nxagentCheckEvents(nxagentDisplay, &X, predicate != NULL ? predicate : @@ -1126,13 +1116,11 @@ void nxagentDispatchEvents(PredicateFuncPtr predicate) } /* - * Elide multiple KeyPress/KeyRelease events of - * the same key and generate a single pair. This - * is intended to reduce the impact of the laten- - * cy on the key auto-repeat, handled by the re- - * mote X server. We may optionally do that only - * if the timestamps in the events show an exces- - * sive delay. + * Elide multiple KeyPress/KeyRelease events of the same key + * and generate a single pair. This is intended to reduce the + * impact of the latency on the key auto-repeat, handled by + * the remote X server. We may optionally do that only if the + * timestamps in the events show an exces- sive delay. */ keysym = XKeycodeToKeysym(nxagentDisplay, X.xkey.keycode, 0); @@ -1157,18 +1145,17 @@ void nxagentDispatchEvents(PredicateFuncPtr predicate) int sendKey = 0; /* -FIXME: If we don't flush the queue here, it could happen - that the inputInfo structure will not be up to date - when we perform the following check on down keys. +FIXME: If we don't flush the queue here, it could happen that the + inputInfo structure will not be up to date when we perform the + following check on down keys. */ ProcessInputEvents(); /* -FIXME: Don't enqueue the KeyRelease event if the key was - not already pressed. This workaround avoids a fake - KeyPress being enqueued by the XKEYBOARD extension. - Another solution would be to let the events - enqueued and to remove the KeyPress afterwards. +FIXME: Don't enqueue the KeyRelease event if the key was not already + pressed. This workaround avoids a fake KeyPress being enqueued + by the XKEYBOARD extension. Another solution would be to let + the events enqueued and to remove the KeyPress afterwards. */ if (BitIsOn(inputInfo.keyboard -> key -> down, nxagentConvertKeycode(X.xkey.keycode))) @@ -1206,9 +1193,9 @@ FIXME: Don't enqueue the KeyRelease event if the key was nxagentXkbNumTrap = 0; } - /* Calculate the time elapsed between this and the last event we - received. Add this delta to time we recorded for the last - KeyPress event we passed on to our clients. */ + /* Calculate the time elapsed between this and the last event + we received. Add this delta to time we recorded for the + last KeyPress event we passed on to our clients. */ memset(&x, 0, sizeof(xEvent)); x.u.u.type = KeyRelease; x.u.u.detail = nxagentConvertKeycode(X.xkey.keycode); @@ -1564,9 +1551,8 @@ FIXME: Don't enqueue the KeyRelease event if the key was #endif /* - * Here we change the focus state in the agent. - * It looks like this is needed only for root- - * less mode at the present moment. + * Here we change the focus state in the agent. It looks like + * this is needed only for rootless mode at present. */ if (nxagentOption(Rootless) && @@ -1743,9 +1729,9 @@ FIXME: Don't enqueue the KeyRelease event if the key was pWin -> drawable.y != X.xcrossing.y_root - X.xcrossing.y - pWin -> borderWidth)) { /* - * This code is useful for finding the window - * position. It should be re-implemented by - * following the ICCCM 4.1.5 recommendations. + * This code is useful for finding the window position. It + * should be re-implemented by following the ICCCM 4.1.5 + * recommendations. */ XID values[4]; @@ -2141,8 +2127,8 @@ FIXME: Don't enqueue the KeyRelease event if the key was /* * without window manager there will be no ConfigureNotify - * event that would trigger xinerama updates. So we do that once - * the nxagent window gets mapped. + * event that would trigger xinerama updates. So we do that + * once the nxagent window gets mapped. */ if (!nxagentWMIsRunning && X.xmap.window == nxagentDefaultWindows[nxagentScreen(X.xmap.window)->myNum]) @@ -2171,8 +2157,7 @@ FIXME: Don't enqueue the KeyRelease event if the key was default: { /* - * Let's check if this is a XKB - * state modification event. + * Let's check if this is a XKB state modification event. */ if (nxagentHandleXkbKeyboardStateEvent(&X) == 0 && nxagentHandleXFixesSelectionNotify(&X) == 0) @@ -2280,8 +2265,7 @@ FIXME: Don't enqueue the KeyRelease event if the key was #endif /* - * Let the underlying X server code - * process the input events. + * Let the underlying X server code process the input events. */ #ifdef BLOCKS @@ -2296,9 +2280,8 @@ FIXME: Don't enqueue the KeyRelease event if the key was #endif /* - * Write the events to our clients. We may - * flush only in the case of critical output - * but this doesn't seem beneficial. + * Write the events to our clients. We may flush only in the case of + * critical output but this doesn't seem beneficial. * * if (CriticalOutputPending == 1) * { @@ -2330,8 +2313,7 @@ FIXME: Don't enqueue the KeyRelease event if the key was } /* - * Functions providing the ad-hoc handling - * of the remote X events. + * Functions providing the ad-hoc handling of the remote X events. */ int nxagentHandleKeyPress(XEvent *X, enum HandleEventResult *result) @@ -2558,9 +2540,9 @@ FIXME: This can be maybe optimized by consuming the int nxagentHandleGraphicsExposeEvent(XEvent *X) { /* - * Send an expose event to client, instead of graphics - * expose. If target drawable is a backing pixmap, send - * expose event for the saved window, else do nothing. + * Send an expose event to client, instead of graphics expose. If + * target drawable is a backing pixmap, send expose event for the + * saved window, else do nothing. */ RegionPtr exposeRegion; @@ -2609,8 +2591,7 @@ int nxagentHandleGraphicsExposeEvent(XEvent *X) } /* - * Rectangle affected by GraphicsExpose - * event. + * Rectangle affected by GraphicsExpose event. */ rect.x1 = X -> xgraphicsexpose.x; @@ -2628,19 +2609,17 @@ int nxagentHandleGraphicsExposeEvent(XEvent *X) #endif /* - * The exposeRegion coordinates are relative - * to the pixmap to which GraphicsExpose - * event refers. But the BS coordinates of - * the savedRegion are relative to the - * window. + * The exposeRegion coordinates are relative to the pixmap to + * which GraphicsExpose event refers. But the BS coordinates of + * the savedRegion are relative to the window. */ RegionTranslate(exposeRegion, pStoringPixmapRec -> backingStoreX, pStoringPixmapRec -> backingStoreY); /* - * We remove from SavedRegion the part - * affected by the GraphicsExpose event. + * We remove from SavedRegion the part affected by the + * GraphicsExpose event. */ RegionSubtract(&(pBSwindow -> SavedRegion), &(pBSwindow -> SavedRegion), @@ -2648,9 +2627,8 @@ int nxagentHandleGraphicsExposeEvent(XEvent *X) } /* - * Store the exposeRegion in order to send - * the expose event later. The coordinates - * must be relative to the screen. + * Store the exposeRegion in order to send the expose event + * later. The coordinates must be relative to the screen. */ RegionTranslate(exposeRegion, pWin -> drawable.x, pWin -> drawable.y); @@ -2673,8 +2651,8 @@ int nxagentHandleClientMessageEvent(XEvent *X, enum HandleEventResult *result) #endif /* - * If window is 0, message_type is 0 and format is - * 32 then we assume event is coming from proxy. + * If window is 0, message_type is 0 and format is 32 then we assume + * event is coming from proxy. */ if (X -> xclient.window == 0 && @@ -3007,10 +2985,8 @@ int nxagentHandleProxyEvent(XEvent *X) case NXStartSplitNotify: { /* - * We should never receive such events - * in the event loop, as they should - * be caught at the time the split is - * initiated. + * We should never receive such events in the event loop, as + * they should be caught at the time the split is initiated. */ #ifdef PANIC @@ -3035,10 +3011,9 @@ int nxagentHandleProxyEvent(XEvent *X) case NXCommitSplitNotify: { /* - * We need to commit an image. Image can be the - * result of a PutSubImage() generated by Xlib, - * so there can be more than a single image to - * commit, even if only one PutImage was perfor- + * We need to commit an image. Image can be the result of a + * PutSubImage() generated by Xlib, so there can be more than a + * single image to commit, even if only one PutImage was perfor- * med by the agent. */ @@ -3059,8 +3034,8 @@ int nxagentHandleProxyEvent(XEvent *X) case NXEndSplitNotify: { /* - * All images for the split were transferred and - * we need to restart the client. + * All images for the split were transferred and we need to + * restart the client. */ int client = (int) X -> xclient.data.l[1]; @@ -3148,9 +3123,8 @@ int nxagentHandleProxyEvent(XEvent *X) } /* - * In this function it is assumed that we never - * get a configure with both stacking order and - * geometry changed, this way we can ignore + * In this function it is assumed that we never get a configure with + * both stacking order and geometry changed, this way we can ignore * stacking changes if the geometry has changed. */ @@ -3317,9 +3291,8 @@ int nxagentHandleConfigureNotify(XEvent* X) nxagentCheckWindowConfiguration((XConfigureEvent*)X); /* - * This workaround should help with - * Java 1.6.0 that seems to ignore - * non-synthetic events. + * This workaround should help with Java 1.6.0 that seems to + * ignore non-synthetic events. */ if (nxagentOption(ClientOs) == ClientOsWinnt) @@ -3367,15 +3340,14 @@ int nxagentHandleConfigureNotify(XEvent* X) else { /* - * Save the position of the agent default window. Don't - * save the values if the agent is in fullscreen mode. + * Save the position of the agent default window. Don't save the + * values if the agent is in fullscreen mode. * - * If we use these values to restore the position of a - * window after that we have dynamically changed the - * fullscreen attribute, depending on the behaviour of - * window manager, we could be not able to place the - * window exactly in the requested position, so let the - * window manager do the job for us. + * If we use these values to restore the position of a window + * after that we have dynamically changed the fullscreen + * attribute, depending on the behaviour of window manager, we + * could be not able to place the window exactly in the requested + * position, so let the window manager do the job for us. */ ScreenPtr pScreen = nxagentScreen(X -> xconfigure.window); @@ -3584,9 +3556,8 @@ int nxagentHandleReparentNotify(XEvent* X) if (nxagentWindowTopLevel(pWin)) { /* - * If the window manager reparents our top level - * window, we need to know the new top level - * ancestor. + * If the window manager reparents our top level window, we need + * to know the new top level ancestor. */ w = None; @@ -3919,10 +3890,9 @@ void nxagentGrabPointerAndKeyboard(XEvent *X) #endif /* - * The smart scheduler could be stopped while - * waiting for the reply. In this case we need - * to yield explicitly to avoid to be stuck in - * the dispatch loop forever. + * The smart scheduler could be stopped while waiting for the + * reply. In this case we need to yield explicitly to avoid to be + * stuck in the dispatch loop forever. */ isItTimeToYield = 1; @@ -4355,9 +4325,8 @@ int nxagentClipAndSendExpose(WindowPtr pWin, void * ptr) #endif /* - * The miWindowExposures() clears out the - * region parameters, so the subtract ope- - * ration must be done before calling it. + * The miWindowExposures() clears out the region parameters, so + * the subtract ope- ration must be done before calling it. */ RegionSubtract(remoteExposeRgn, remoteExposeRgn, exposeRgn); @@ -4391,13 +4360,10 @@ int nxagentUserInput(void *p) int result = 0; /* - * This function is used as callback in - * the polling handler of agent in shadow - * mode. When inside the polling loop the - * handlers are never called, so we have - * to dispatch enqueued events to eventu- - * ally change the nxagentInputEvent sta- - * tus. + * This function is used as callback in the polling handler of agent + * in shadow mode. When inside the polling loop the handlers are + * never called, so we have to dispatch enqueued events to + * eventually change the nxagentInputEvent status. */ if (nxagentOption(Shadow) == 1 && @@ -4414,11 +4380,9 @@ int nxagentUserInput(void *p) } /* - * The agent working in shadow mode synch- - * ronizes the remote X server even if a - * button/key is not released (i.e. when - * scrolling a long browser's page), in - * order to update the screen smoothly. + * The agent working in shadow mode synchronizes the remote X server + * even if a button/key is not released (i.e. when scrolling a long + * browser's page), in order to update the screen smoothly. */ if (nxagentOption(Shadow) == 1) @@ -4429,9 +4393,8 @@ int nxagentUserInput(void *p) if (result == 0) { /* - * If there is at least one button/key down, - * we are receiving an input. This is not a - * condition to break a synchronization loop + * If there is at least one button/key down, we are receiving an + * input. This is not a condition to break a synchronization loop * if there is enough bandwidth. */ @@ -4471,13 +4434,11 @@ int nxagentHandleRRScreenChangeNotify(XEvent *X) } /* - * Returns true if there is any event waiting to - * be dispatched. This function is critical for - * the performance because it is called very, - * very often. It must also handle the case when - * the display is down. The display descriptor, - * in fact, may have been reused by some other - * client. + * Returns true if there is any event waiting to be dispatched. This + * function is critical for the performance because it is called very, + * very often. It must also handle the case when the display is + * down. The display descriptor, in fact, may have been reused by some + * other client. */ int nxagentPendingEvents(Display *dpy) |