src/solaris/native/sun/awt/awt_util.h
Print this page
*** 1,7 ****
/*
! * Copyright (c) 1995, 2004, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 77,124 ****
void awt_util_addEmbeddedFrame(Widget embeddedFrame, jobject javaRef);
void awt_util_delEmbeddedFrame(Widget embeddedFrame);
Boolean awt_util_processEventForEmbeddedFrame(XEvent *ev);
! #define WITH_XERROR_HANDLER(f) do { \
! XSync(awt_display, False); \
! xerror_code = Success; \
! xerror_saved_handler = XSetErrorHandler(f); \
! } while (0)
!
! /* Convenience macro for handlers to use */
! #define XERROR_SAVE(err) do { \
! xerror_code = (err)->error_code; \
} while (0)
! #define RESTORE_XERROR_HANDLER do { \
! XSync(awt_display, False); \
! XSetErrorHandler(xerror_saved_handler); \
} while (0)
! #define EXEC_WITH_XERROR_HANDLER(f, code) do { \
! WITH_XERROR_HANDLER(f); \
do { \
code; \
} while (0); \
! RESTORE_XERROR_HANDLER; \
} while (0)
/*
! * Since X reports protocol errors asynchronously, we often need to
! * install an error handler that acts like a callback. While that
! * specialized handler is installed we save original handler here.
*/
! extern XErrorHandler xerror_saved_handler;
/*
! * A place for error handler to report the error code.
*/
! extern unsigned char xerror_code;
!
! extern int xerror_ignore_bad_window(Display *dpy, XErrorEvent *err);
!
#endif /* !HEADLESS */
#ifndef INTERSECTS
#define INTERSECTS(r1_x1,r1_x2,r1_y1,r1_y2,r2_x1,r2_x2,r2_y1,r2_y2) \
!((r2_x2 <= r1_x1) ||\
--- 77,142 ----
void awt_util_addEmbeddedFrame(Widget embeddedFrame, jobject javaRef);
void awt_util_delEmbeddedFrame(Widget embeddedFrame);
Boolean awt_util_processEventForEmbeddedFrame(XEvent *ev);
! /*
! * Expected types of arguments of the macro.
! * (JNIEnv*, const char*, const char*, jboolean, jobject)
! */
! #define WITH_XERROR_HANDLER(env, handlerClassName, getInstanceSignature, \
! handlerHasFlag, handlerRef) do { \
! handlerRef = JNU_CallStaticMethodByName(env, NULL, handlerClassName, "getInstance", \
! getInstanceSignature).l; \
! if (handlerHasFlag == JNI_TRUE) { \
! JNU_CallMethodByName(env, NULL, handlerRef, "setErrorOccurredFlag", "(Z)V", JNI_FALSE); \
! } \
! JNU_CallStaticMethodByName(env, NULL, "sun/awt/X11/XErrorHandlerUtil", "WITH_XERROR_HANDLER", \
! "(Lsun/awt/X11/XErrorHandler;)V", handlerRef); \
} while (0)
! /*
! * Expected types of arguments of the macro.
! * (JNIEnv*, jboolean)
! */
! #define RESTORE_XERROR_HANDLER(env, doXSync) do { \
! JNU_CallStaticMethodByName(env, NULL, "sun/awt/X11/XErrorHandlerUtil", \
! "RESTORE_XERROR_HANDLER", "(Z)V", doXSync); \
} while (0)
! /*
! * Expected types of arguments of the macro.
! * (JNIEnv*, const char*, const char*, jboolean, jobject, jboolean, No type - C expression)
! */
! #define EXEC_WITH_XERROR_HANDLER(env, handlerClassName, getInstanceSignature, handlerHasFlag, \
! handlerRef, errorOccurredFlag, code) do { \
! handlerRef = NULL; \
! WITH_XERROR_HANDLER(env, handlerClassName, getInstanceSignature, handlerHasFlag, handlerRef); \
do { \
code; \
} while (0); \
! RESTORE_XERROR_HANDLER(env, JNI_TRUE); \
! if (handlerHasFlag == JNI_TRUE) { \
! errorOccurredFlag = GET_HANDLER_ERROR_OCCURRED_FLAG(env, handlerRef); \
! } \
} while (0)
/*
! * Expected types of arguments of the macro for jboolean expression.
! * (JNIEnv*, jobject)
*/
! #define GET_HANDLER_ERROR_OCCURRED_FLAG(env, handlerRef) (handlerRef != NULL ? \
! JNU_CallMethodByName(env, NULL, handlerRef, "getErrorOccurredFlag", "()Z").z : JNI_FALSE)
/*
! * Expected types of arguments of the macro for jbyte expression.
! * (JNIEnv*, jobject)
*/
! #define GET_XERROR_CODE(env, savedError) \
! ((savedError = JNU_GetStaticFieldByName(env, NULL, "sun/awt/X11/XErrorHandlerUtil", \
! "saved_error", "Lsun/awt/X11/XErrorEvent;").l) != NULL ? \
! JNU_CallMethodByName(env, NULL, savedError, "get_error_code", "()B").b : Success)
#endif /* !HEADLESS */
#ifndef INTERSECTS
#define INTERSECTS(r1_x1,r1_x2,r1_y1,r1_y2,r2_x1,r2_x2,r2_y1,r2_y2) \
!((r2_x2 <= r1_x1) ||\