src/solaris/native/sun/awt/awt_xembed_server.c

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2003, 2005, 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) 2003, 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
*** 642,657 **** } } return dim; } ! Boolean isMapped(Window w) { XWindowAttributes attr; Status status = 0; ! WITH_XERROR_HANDLER(xerror_ignore_bad_window); ! status = XGetWindowAttributes(awt_display, w, &attr); ! RESTORE_XERROR_HANDLER; if (status == 0 || xerror_code != Success) { return False; } return !(attr.map_state == IsUnmapped); } --- 642,664 ---- } } return dim; } ! Boolean isMapped(JNIEnv* env, Window w) { XWindowAttributes attr; Status status = 0; ! jboolean errorOccurredFlag; ! jobject errorHandlerRef; ! jobject savedError; ! unsigned char xerror_code; ! ! EXEC_WITH_XERROR_HANDLER(env, "sun/awt/X11/XErrorHandler$IgnoreBadWindowHandler", ! "()Lsun/awt/X11/XErrorHandler$IgnoreBadWindowHandler;", JNI_FALSE, ! errorHandlerRef, errorOccurredFlag, ! status = XGetWindowAttributes(awt_display, w, &attr)); ! xerror_code = GET_XERROR_CODE(env, savedError); if (status == 0 || xerror_code != Success) { return False; } return !(attr.map_state == IsUnmapped); }
*** 683,693 **** CARD32 flags; Boolean new_mapped, currently_mapped; sdata->version = *data; flags = *(data+1); new_mapped = (flags & XEMBED_MAPPED) != 0; ! currently_mapped = isMapped(sdata->handle); if (new_mapped != currently_mapped) { if (new_mapped) { XMapWindow(awt_display, sdata->handle); } else { XUnmapWindow(awt_display, sdata->handle); --- 690,700 ---- CARD32 flags; Boolean new_mapped, currently_mapped; sdata->version = *data; flags = *(data+1); new_mapped = (flags & XEMBED_MAPPED) != 0; ! currently_mapped = isMapped(env, sdata->handle); if (new_mapped != currently_mapped) { if (new_mapped) { XMapWindow(awt_display, sdata->handle); } else { XUnmapWindow(awt_display, sdata->handle);