From kfm-devel Sat Dec 06 16:48:43 2003 From: Koos Vriezen Date: Sat, 06 Dec 2003 16:48:43 +0000 To: kfm-devel Subject: Java applets and ConfigureRequest X-MARC-Message: https://marc.info/?l=kfm-devel&m=107072938631831 Hi, Trying to find the cause of applets being wrongly embedded, I found that the coordinates of the JFrame are totally wrong. To see this, do - add '-Dkjas.debug=1' to 'Additional Java Arguments' setting - start from the console eg konqueror 'http://developer.netscape.com/docs/examples/java/hitman.html press a few times F5 until a gray rectangle appears - get the dimension via javascript, eg dcop konqueror-21639 html-widget1 evalJS ' var a1=document.applets[1].getParent().getParent().getParent().getParent().getParent().getBounds()' (applets[1] means the second applet here) - now either look at the console output or get it from 'a1' like a1.x/y/width/height eg. dcop konqueror-21639 html-widget1 evalJS 'a1.height' (BTW, using a javax.swing.JFrame instead of java.awt.Frame makes no sense to me, it saves some parents if using a java.awt.Frame) Note, you probably need the latest java version because of a missing cast, jvm will exit otherwise. If I add in qxembed.cpp in QXEmbed::x11Event case ConfigureRequest unsigned int value_mask = e->xconfigurerequest.value_mask |CWX|CWY|CWWidth|CWHeight|CWBorderWidth; XWindowChanges xwc = { 0, 0, width(), height(), 0, None, Above }; XConfigureWindow (qt_xdisplay(), window, value_mask, &xwc); instead of sending a ConfigureNotifyEvent (tried setting the x and y to zero too, like Leon suggests, but that didn't help - shouldn't this be fixed btw.), the dimensions are set correctly. However the borders are still wrong (use getInsets() instead off getBounds() and fields top/left/right/bottom). They should all be 0, no? Another thing is that calling XConfigureWindow blocks jvm for a second or two (XFlush didn't help). So the question is, shouldn't qxembed configure the window if it receives a ConfigureRequest (and any idea why it blocks the jvm for a while)? And how to set the border dimensions correctly? Or, of course, how come these values are messed up now and then? Koos