8051857: OperationTimedOut exception inside from XToolkit.syncNativeQueue call
Reviewed-by: alexsch, serb
This commit is contained in:
parent
6a281f9f56
commit
ebc6607b65
@ -52,6 +52,8 @@
|
|||||||
*/
|
*/
|
||||||
extern XErrorHandler current_native_xerror_handler;
|
extern XErrorHandler current_native_xerror_handler;
|
||||||
|
|
||||||
|
Window get_xawt_root_shell(JNIEnv *env);
|
||||||
|
|
||||||
#endif /* !HEADLESS */
|
#endif /* !HEADLESS */
|
||||||
|
|
||||||
#ifndef INTERSECTS
|
#ifndef INTERSECTS
|
||||||
|
@ -2011,10 +2011,14 @@ static Bool exitSecondaryLoop = True;
|
|||||||
* Toolkit thread to process PropertyNotify or SelectionNotify events.
|
* Toolkit thread to process PropertyNotify or SelectionNotify events.
|
||||||
*/
|
*/
|
||||||
static Bool
|
static Bool
|
||||||
secondary_loop_event(Display* dpy, XEvent* event, char* arg) {
|
secondary_loop_event(Display* dpy, XEvent* event, XPointer xawt_root_window) {
|
||||||
return (event->type == SelectionNotify ||
|
return (
|
||||||
event->type == SelectionClear ||
|
event->type == SelectionNotify ||
|
||||||
event->type == PropertyNotify) ? True : False;
|
event->type == SelectionClear ||
|
||||||
|
event->type == PropertyNotify ||
|
||||||
|
(event->type == ConfigureNotify
|
||||||
|
&& event->xany.window == *(Window*) xawt_root_window)
|
||||||
|
) ? True : False;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2025,8 +2029,11 @@ Java_sun_awt_X11_XlibWrapper_XNextSecondaryLoopEvent(JNIEnv *env, jclass clazz,
|
|||||||
|
|
||||||
AWT_CHECK_HAVE_LOCK_RETURN(JNI_FALSE);
|
AWT_CHECK_HAVE_LOCK_RETURN(JNI_FALSE);
|
||||||
exitSecondaryLoop = False;
|
exitSecondaryLoop = False;
|
||||||
|
Window xawt_root_window = get_xawt_root_shell(env);
|
||||||
|
|
||||||
while (!exitSecondaryLoop) {
|
while (!exitSecondaryLoop) {
|
||||||
if (XCheckIfEvent((Display*) jlong_to_ptr(display), (XEvent*) jlong_to_ptr(ptr), secondary_loop_event, NULL)) {
|
if (XCheckIfEvent((Display*) jlong_to_ptr(display),
|
||||||
|
(XEvent*) jlong_to_ptr(ptr), secondary_loop_event, (XPointer) &xawt_root_window)) {
|
||||||
return JNI_TRUE;
|
return JNI_TRUE;
|
||||||
}
|
}
|
||||||
timeout = (timeout < AWT_SECONDARY_LOOP_TIMEOUT) ? (timeout << 1) : AWT_SECONDARY_LOOP_TIMEOUT;
|
timeout = (timeout < AWT_SECONDARY_LOOP_TIMEOUT) ? (timeout << 1) : AWT_SECONDARY_LOOP_TIMEOUT;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user