int maxDescent;
}
+ /** Called once XWT is initialized and the application is running. On Win32, we need to block the main thread
+ * on a semaphore because if the main thread exits, the whole application quits. */
+ protected void _running() {
+ // gcj-win32 exit()'s when the original thread dies, so we have to deadlock ourselves
+ if (Log.on) Log.log(Main.class, "main thread blocking on new semaphore");
+ new org.xwt.util.Semaphore().block();
+ }
+
/** takes a parsed font and finds the closest platform-specific font */
static native Win32Font mapFont(Platform.ParsedFont pf);
// Win32Picture ////////////////////////////////////////////////////////////////////////////
- public static class Win32Picture implements Picture {
+ public static class Win32Picture extends Picture {
int w = 0, h = 0;
int[] data = null;
// Win32DoubleBuffer //////////////////////////////////////////////////////////////////////////
- public static class Win32DoubleBuffer implements DoubleBuffer {
+ public static class Win32DoubleBuffer extends DoubleBuffer {
int w = 0;
int h = 0;