183 e.printStackTrace();
184 }
185 finally {
186 if (log.isLoggable(PlatformLogger.Level.FINE)) {
187 log.fine("UnGrabbing XServer");
188 }
189 XlibWrapper.XUngrabServer(XToolkit.getDisplay());
190 }
191 } finally {
192 XToolkit.awtUnlock();
193 }
194 }
195
196
197 static boolean processClientMessage(XEvent xev, int screen) {
198 XClientMessageEvent xce = xev.get_xclient();
199 if (xce.get_message_type() == XA_MANAGER.getAtom()) {
200 if (log.isLoggable(PlatformLogger.Level.FINE)) {
201 log.fine("client messags = " + xce);
202 }
203 long timestamp = xce.get_data(0);
204 long atom = xce.get_data(1);
205 long owner = xce.get_data(2);
206 long data = xce.get_data(3);
207
208 XMSelection sel = getInstance(atom);
209 if (sel != null) {
210 sel.resetOwner(owner,screen);
211 sel.dispatchOwnerChangedEvent(xev,screen,owner,data, timestamp);
212 }
213 }
214 return false;
215 }
216
217 static boolean processRootEvent(XEvent xev, int screen) {
218 switch (xev.get_type()) {
219 case XConstants.ClientMessage: {
220 return processClientMessage(xev, screen);
221 }
222 }
223
|
183 e.printStackTrace();
184 }
185 finally {
186 if (log.isLoggable(PlatformLogger.Level.FINE)) {
187 log.fine("UnGrabbing XServer");
188 }
189 XlibWrapper.XUngrabServer(XToolkit.getDisplay());
190 }
191 } finally {
192 XToolkit.awtUnlock();
193 }
194 }
195
196
197 static boolean processClientMessage(XEvent xev, int screen) {
198 XClientMessageEvent xce = xev.get_xclient();
199 if (xce.get_message_type() == XA_MANAGER.getAtom()) {
200 if (log.isLoggable(PlatformLogger.Level.FINE)) {
201 log.fine("client messags = " + xce);
202 }
203 long timestamp = xce.get_data(0) & 0xFFFFFFFFL;
204 long atom = xce.get_data(1);
205 long owner = xce.get_data(2);
206 long data = xce.get_data(3);
207
208 XMSelection sel = getInstance(atom);
209 if (sel != null) {
210 sel.resetOwner(owner,screen);
211 sel.dispatchOwnerChangedEvent(xev,screen,owner,data, timestamp);
212 }
213 }
214 return false;
215 }
216
217 static boolean processRootEvent(XEvent xev, int screen) {
218 switch (xev.get_type()) {
219 case XConstants.ClientMessage: {
220 return processClientMessage(xev, screen);
221 }
222 }
223
|