src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java
Print this page
*** 121,131 ****
boolean isApplicationActive() {
return applicationActive;
}
void initDispatching() {
! if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Init embedding for " + Long.toHexString(xembed.handle));
XToolkit.awtLock();
try {
XToolkit.addEventDispatcher(xembed.handle, xembed);
XlibWrapper.XSelectInput(XToolkit.getDisplay(), xembed.handle,
XConstants.StructureNotifyMask | XConstants.PropertyChangeMask);
--- 121,133 ----
boolean isApplicationActive() {
return applicationActive;
}
void initDispatching() {
! if (xembedLog.isLoggable(PlatformLogger.FINE)) {
! xembedLog.fine("Init embedding for " + Long.toHexString(xembed.handle));
! }
XToolkit.awtLock();
try {
XToolkit.addEventDispatcher(xembed.handle, xembed);
XlibWrapper.XSelectInput(XToolkit.getDisplay(), xembed.handle,
XConstants.StructureNotifyMask | XConstants.PropertyChangeMask);
*** 138,148 ****
--- 140,152 ----
notifyChildEmbedded();
}
void endDispatching() {
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) {
xembedLog.fine("End dispatching for " + Long.toHexString(xembed.handle));
+ }
XToolkit.awtLock();
try {
XDropTargetRegistry.getRegistry().unregisterXEmbedClient(getWindow(), xembed.handle);
// We can't deselect input since someone else might be interested in it
XToolkit.removeEventDispatcher(xembed.handle, xembed);
*** 158,168 ****
--- 162,174 ----
xembed.handle = child;
initDispatching();
}
void childDestroyed() {
+ if (xembedLog.isLoggable(PlatformLogger.FINE)) {
xembedLog.fine("Child " + Long.toHexString(xembed.handle) + " has self-destroyed.");
+ }
endDispatching();
xembed.handle = 0;
}
public void handleEvent(AWTEvent e) {
*** 380,390 ****
}
}
}
void detachChild() {
! if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Detaching child " + Long.toHexString(xembed.handle));
/**
* XEmbed specification:
* "The embedder can unmap the client and reparent the client window to the root window. If the
* client receives an ReparentNotify event, it should check the parent field of the XReparentEvent
* structure. If this is the root window of the window's screen, then the protocol is finished and
--- 386,398 ----
}
}
}
void detachChild() {
! if (xembedLog.isLoggable(PlatformLogger.FINE)) {
! xembedLog.fine("Detaching child " + Long.toHexString(xembed.handle));
! }
/**
* XEmbed specification:
* "The embedder can unmap the client and reparent the client window to the root window. If the
* client receives an ReparentNotify event, it should check the parent field of the XReparentEvent
* structure. If this is the root window of the window's screen, then the protocol is finished and
*** 461,471 ****
return;
}
try {
XKeyEvent ke = new XKeyEvent(data);
ke.set_window(xembed.handle);
! if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Forwarding native key event: " + ke);
XToolkit.awtLock();
try {
XlibWrapper.XSendEvent(XToolkit.getDisplay(), xembed.handle, false, XConstants.NoEventMask, data);
} finally {
XToolkit.awtUnlock();
--- 469,481 ----
return;
}
try {
XKeyEvent ke = new XKeyEvent(data);
ke.set_window(xembed.handle);
! if (xembedLog.isLoggable(PlatformLogger.FINE)) {
! xembedLog.fine("Forwarding native key event: " + ke);
! }
XToolkit.awtLock();
try {
XlibWrapper.XSendEvent(XToolkit.getDisplay(), xembed.handle, false, XConstants.NoEventMask, data);
} finally {
XToolkit.awtUnlock();
*** 492,502 ****
*/
void grabKey(final long keysym, final long modifiers) {
postEvent(new InvocationEvent(target, new Runnable() {
public void run() {
GrabbedKey grab = new GrabbedKey(keysym, modifiers);
! if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Grabbing key: " + grab);
synchronized(GRAB_LOCK) {
grabbed_keys.add(grab);
}
}
}));
--- 502,514 ----
*/
void grabKey(final long keysym, final long modifiers) {
postEvent(new InvocationEvent(target, new Runnable() {
public void run() {
GrabbedKey grab = new GrabbedKey(keysym, modifiers);
! if (xembedLog.isLoggable(PlatformLogger.FINE)) {
! xembedLog.fine("Grabbing key: " + grab);
! }
synchronized(GRAB_LOCK) {
grabbed_keys.add(grab);
}
}
}));
*** 504,514 ****
void ungrabKey(final long keysym, final long modifiers) {
postEvent(new InvocationEvent(target, new Runnable() {
public void run() {
GrabbedKey grab = new GrabbedKey(keysym, modifiers);
! if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("UnGrabbing key: " + grab);
synchronized(GRAB_LOCK) {
grabbed_keys.remove(grab);
}
}
}));
--- 516,528 ----
void ungrabKey(final long keysym, final long modifiers) {
postEvent(new InvocationEvent(target, new Runnable() {
public void run() {
GrabbedKey grab = new GrabbedKey(keysym, modifiers);
! if (xembedLog.isLoggable(PlatformLogger.FINE)) {
! xembedLog.fine("UnGrabbing key: " + grab);
! }
synchronized(GRAB_LOCK) {
grabbed_keys.remove(grab);
}
}
}));
*** 517,527 ****
void registerAccelerator(final long accel_id, final long keysym, final long modifiers) {
postEvent(new InvocationEvent(target, new Runnable() {
public void run() {
AWTKeyStroke stroke = xembed.getKeyStrokeForKeySym(keysym, modifiers);
if (stroke != null) {
! if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Registering accelerator " + accel_id + " for " + stroke);
synchronized(ACCEL_LOCK) {
accelerators.put(accel_id, stroke);
accel_lookup.put(stroke, accel_id);
}
}
--- 531,543 ----
void registerAccelerator(final long accel_id, final long keysym, final long modifiers) {
postEvent(new InvocationEvent(target, new Runnable() {
public void run() {
AWTKeyStroke stroke = xembed.getKeyStrokeForKeySym(keysym, modifiers);
if (stroke != null) {
! if (xembedLog.isLoggable(PlatformLogger.FINE)) {
! xembedLog.fine("Registering accelerator " + accel_id + " for " + stroke);
! }
synchronized(ACCEL_LOCK) {
accelerators.put(accel_id, stroke);
accel_lookup.put(stroke, accel_id);
}
}
*** 535,545 ****
public void run() {
AWTKeyStroke stroke = null;
synchronized(ACCEL_LOCK) {
stroke = accelerators.get(accel_id);
if (stroke != null) {
! if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Unregistering accelerator: " + accel_id);
accelerators.remove(accel_id);
accel_lookup.remove(stroke); // FIXME: How about several accelerators with the same stroke?
}
}
propogateUnRegisterAccelerator(stroke);
--- 551,563 ----
public void run() {
AWTKeyStroke stroke = null;
synchronized(ACCEL_LOCK) {
stroke = accelerators.get(accel_id);
if (stroke != null) {
! if (xembedLog.isLoggable(PlatformLogger.FINE)) {
! xembedLog.fine("Unregistering accelerator: " + accel_id);
! }
accelerators.remove(accel_id);
accel_lookup.remove(stroke); // FIXME: How about several accelerators with the same stroke?
}
}
propogateUnRegisterAccelerator(stroke);
*** 581,591 ****
return false;
}
boolean result = false;
! if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Post-processing event " + e);
// Process ACCELERATORS
AWTKeyStroke stroke = AWTKeyStroke.getAWTKeyStrokeForEvent(e);
long accel_id = 0;
boolean exists = false;
--- 599,611 ----
return false;
}
boolean result = false;
! if (xembedLog.isLoggable(PlatformLogger.FINER)) {
! xembedLog.finer("Post-processing event " + e);
! }
// Process ACCELERATORS
AWTKeyStroke stroke = AWTKeyStroke.getAWTKeyStrokeForEvent(e);
long accel_id = 0;
boolean exists = false;
*** 594,604 ****
if (exists) {
accel_id = accel_lookup.get(stroke).longValue();
}
}
if (exists) {
! if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Activating accelerator " + accel_id);
xembed.sendMessage(xembed.handle, XEMBED_ACTIVATE_ACCELERATOR, accel_id, 0, 0); // FIXME: How about overloaded?
result = true;
}
// Process Grabs, unofficial GTK feature
--- 614,626 ----
if (exists) {
accel_id = accel_lookup.get(stroke).longValue();
}
}
if (exists) {
! if (xembedLog.isLoggable(PlatformLogger.FINE)) {
! xembedLog.fine("Activating accelerator " + accel_id);
! }
xembed.sendMessage(xembed.handle, XEMBED_ACTIVATE_ACCELERATOR, accel_id, 0, 0); // FIXME: How about overloaded?
result = true;
}
// Process Grabs, unofficial GTK feature
*** 606,616 ****
GrabbedKey key = new GrabbedKey(e);
synchronized(GRAB_LOCK) {
exists = grabbed_keys.contains(key);
}
if (exists) {
! if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Forwarding grabbed key " + e);
forwardKeyEvent(e);
result = true;
}
return result;
--- 628,640 ----
GrabbedKey key = new GrabbedKey(e);
synchronized(GRAB_LOCK) {
exists = grabbed_keys.contains(key);
}
if (exists) {
! if (xembedLog.isLoggable(PlatformLogger.FINE)) {
! xembedLog.fine("Forwarding grabbed key " + e);
! }
forwardKeyEvent(e);
result = true;
}
return result;
*** 625,637 ****
}
public void handleClientMessage(XEvent xev) {
super.handleClientMessage(xev);
XClientMessageEvent msg = xev.get_xclient();
! if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Client message to embedder: " + msg);
if (msg.get_message_type() == xembed.XEmbed.getAtom()) {
! if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine(xembed.XEmbedMessageToString(msg));
}
if (isXEmbedActive()) {
switch ((int)msg.get_data(1)) {
case XEMBED_REQUEST_FOCUS:
requestXEmbedFocus();
--- 649,665 ----
}
public void handleClientMessage(XEvent xev) {
super.handleClientMessage(xev);
XClientMessageEvent msg = xev.get_xclient();
! if (xembedLog.isLoggable(PlatformLogger.FINER)) {
! xembedLog.finer("Client message to embedder: " + msg);
! }
if (msg.get_message_type() == xembed.XEmbed.getAtom()) {
! if (xembedLog.isLoggable(PlatformLogger.FINE)) {
! xembedLog.fine(xembed.XEmbedMessageToString(msg));
! }
}
if (isXEmbedActive()) {
switch ((int)msg.get_data(1)) {
case XEMBED_REQUEST_FOCUS:
requestXEmbedFocus();
*** 728,739 ****
version = Native.getCard32(xembed_info_data, 0);
flags = Native.getCard32(xembed_info_data, 1);
boolean new_mapped = (flags & XEMBED_MAPPED) != 0;
boolean currently_mapped = XlibUtil.getWindowMapState(handle) != XConstants.IsUnmapped;
if (new_mapped != currently_mapped) {
! if (xembedLog.isLoggable(PlatformLogger.FINER))
! xembedLog.fine("Mapping state of the client has changed, old state: " + currently_mapped + ", new state: " + new_mapped);
if (new_mapped) {
XToolkit.awtLock();
try {
XlibWrapper.XMapWindow(XToolkit.getDisplay(), handle);
} finally {
--- 756,768 ----
version = Native.getCard32(xembed_info_data, 0);
flags = Native.getCard32(xembed_info_data, 1);
boolean new_mapped = (flags & XEMBED_MAPPED) != 0;
boolean currently_mapped = XlibUtil.getWindowMapState(handle) != XConstants.IsUnmapped;
if (new_mapped != currently_mapped) {
! if (xembedLog.isLoggable(PlatformLogger.FINER)) {
! xembedLog.finer("Mapping state of the client has changed, old state: " + currently_mapped + ", new state: " + new_mapped);
! }
if (new_mapped) {
XToolkit.awtLock();
try {
XlibWrapper.XMapWindow(XToolkit.getDisplay(), handle);
} finally {
*** 746,767 ****
} finally {
XToolkit.awtUnlock();
}
}
} else {
xembedLog.finer("Mapping state didn't change, mapped: " + currently_mapped);
}
return true;
} finally {
XlibWrapper.unsafe.freeMemory(xembed_info_data);
}
}
public void handlePropertyNotify(XEvent xev) {
if (isXEmbedActive()) {
XPropertyEvent ev = xev.get_xproperty();
! if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Property change on client: " + ev);
if (ev.get_atom() == XAtom.XA_WM_NORMAL_HINTS) {
childResized();
} else if (ev.get_atom() == XEmbedInfo.getAtom()) {
processXEmbedInfo();
} else if (ev.get_atom() ==
--- 775,800 ----
} finally {
XToolkit.awtUnlock();
}
}
} else {
+ if (xembedLog.isLoggable(PlatformLogger.FINER)) {
xembedLog.finer("Mapping state didn't change, mapped: " + currently_mapped);
}
+ }
return true;
} finally {
XlibWrapper.unsafe.freeMemory(xembed_info_data);
}
}
public void handlePropertyNotify(XEvent xev) {
if (isXEmbedActive()) {
XPropertyEvent ev = xev.get_xproperty();
! if (xembedLog.isLoggable(PlatformLogger.FINER)) {
! xembedLog.finer("Property change on client: " + ev);
! }
if (ev.get_atom() == XAtom.XA_WM_NORMAL_HINTS) {
childResized();
} else if (ev.get_atom() == XEmbedInfo.getAtom()) {
processXEmbedInfo();
} else if (ev.get_atom() ==
*** 778,788 ****
}
}
void handleConfigureNotify(XEvent xev) {
if (isXEmbedActive()) {
XConfigureEvent ev = xev.get_xconfigure();
! if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Bounds change on client: " + ev);
if (xev.get_xany().get_window() == handle) {
childResized();
}
}
}
--- 811,823 ----
}
}
void handleConfigureNotify(XEvent xev) {
if (isXEmbedActive()) {
XConfigureEvent ev = xev.get_xconfigure();
! if (xembedLog.isLoggable(PlatformLogger.FINER)) {
! xembedLog.finer("Bounds change on client: " + ev);
! }
if (xev.get_xany().get_window() == handle) {
childResized();
}
}
}
*** 829,839 ****
}
XKeyEvent ke = new XKeyEvent(data);
// We recognize only these masks
modifiers = ke.get_state() & (XConstants.ShiftMask | XConstants.ControlMask | XConstants.LockMask);
! if (xembedLog.isLoggable(PlatformLogger.FINEST)) xembedLog.finest("Mapped " + e + " to " + this);
} finally {
XlibWrapper.unsafe.freeMemory(data);
}
}
--- 864,876 ----
}
XKeyEvent ke = new XKeyEvent(data);
// We recognize only these masks
modifiers = ke.get_state() & (XConstants.ShiftMask | XConstants.ControlMask | XConstants.LockMask);
! if (xembedLog.isLoggable(PlatformLogger.FINEST)) {
! xembedLog.finest("Mapped " + e + " to " + this);
! }
} finally {
XlibWrapper.unsafe.freeMemory(data);
}
}