From 261d453a3ec7f6959fa66eb1048eb2b3affc386e Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Sat, 12 Apr 2008 23:09:47 +0000 Subject: [PATCH] Linux: Removed change set code again --- src/java/org/lwjgl/opengl/LinuxDisplay.java | 21 +++++++-------------- src/native/linux/org_lwjgl_opengl_Display.c | 18 ------------------ 2 files changed, 7 insertions(+), 32 deletions(-) diff --git a/src/java/org/lwjgl/opengl/LinuxDisplay.java b/src/java/org/lwjgl/opengl/LinuxDisplay.java index 0e984a75..2d1286b5 100644 --- a/src/java/org/lwjgl/opengl/LinuxDisplay.java +++ b/src/java/org/lwjgl/opengl/LinuxDisplay.java @@ -404,23 +404,13 @@ final class LinuxDisplay implements DisplayImplementation { try { incDisplay(); try { - if (parent != null && !hasXFixes(getDisplay(), 1)) - throw new LWJGLException("No XFixes extension available"); ByteBuffer handle = peer_info.lockAndGetHandle(); try { current_window_mode = getWindowMode(fullscreen); boolean undecorated = Display.getPrivilegedBoolean("org.lwjgl.opengl.Window.undecorated") || current_window_mode != WINDOWED; this.parent = parent; - long root_window = getRootWindow(getDisplay(), getDefaultScreen()); - current_window = nCreateWindow(getDisplay(), getDefaultScreen(), handle, mode, current_window_mode, x, y, undecorated, root_window); - if (parent != null) { - parent.addFocusListener(focus_listener); - parent_focused = parent.isFocusOwner(); - parent_focus_changed = true; - parent_window = getHandle(parent); - changeSaveSet(getDisplay(), current_window, SetModeInsert, SaveSetRoot, SaveSetUnmap); - reparentWindow(getDisplay(), current_window, parent_window, x, y); - } + long parent_window = parent != null ? getHandle(parent) : getRootWindow(getDisplay(), getDefaultScreen()); + current_window = nCreateWindow(getDisplay(), getDefaultScreen(), handle, mode, current_window_mode, x, y, undecorated, parent_window); mapRaised(getDisplay(), current_window); xembedded = parent != null && isAncestorXEmbedded(parent_window); blank_cursor = createBlankCursor(); @@ -434,6 +424,11 @@ final class LinuxDisplay implements DisplayImplementation { grab = false; minimized = false; dirty = true; + if (parent != null) { + parent.addFocusListener(focus_listener); + parent_focused = parent.isFocusOwner(); + parent_focus_changed = true; + } } finally { peer_info.unlock(); } @@ -450,9 +445,7 @@ final class LinuxDisplay implements DisplayImplementation { private static native boolean hasProperty(long display, long window, long property); private static native long getParentWindow(long display, long window) throws LWJGLException; private static native void mapRaised(long display, long window); - private static native boolean hasXFixes(long display, int major); private static native void reparentWindow(long display, long window, long parent, int x, int y); - private static native void changeSaveSet(long display, long window, int mode, int target, int map); private boolean isAncestorXEmbedded(long window) throws LWJGLException { long xembed_atom = internAtom("_XEMBED_INFO", true); diff --git a/src/native/linux/org_lwjgl_opengl_Display.c b/src/native/linux/org_lwjgl_opengl_Display.c index 59d6f0c1..b2d00926 100644 --- a/src/native/linux/org_lwjgl_opengl_Display.c +++ b/src/native/linux/org_lwjgl_opengl_Display.c @@ -43,7 +43,6 @@ #include #include #include -#include #include #include #include @@ -330,29 +329,12 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_LinuxDisplay_reparentWindow(JNIEnv XReparentWindow(disp, window, parent, x, y); } -JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_LinuxDisplay_hasXFixes(JNIEnv *env, jclass unused, jlong display, jint major_requested) { - Display *disp = (Display *)(intptr_t)display; - int event, error; - if (!XFixesQueryExtension(disp, &event, &error)) - return JNI_FALSE; - int major, minor; - if (!XFixesQueryVersion(disp, &major, &minor)) - return JNI_FALSE; - return major >= major_requested ? JNI_TRUE : JNI_FALSE; -} - JNIEXPORT void JNICALL Java_org_lwjgl_opengl_LinuxDisplay_mapRaised(JNIEnv *env, jclass unused, jlong display, jlong window_ptr) { Display *disp = (Display *)(intptr_t)display; Window window = (Window)window_ptr; XMapRaised(disp, window); } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_LinuxDisplay_changeSaveSet(JNIEnv *env, jclass unused, jlong display, jlong window_ptr, jint mode, jint target, jint map) { - Display *disp = (Display *)(intptr_t)display; - Window window = (Window)window_ptr; - XFixesChangeSaveSet(disp, window, mode, target, map); -} - JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_LinuxDisplay_getParentWindow(JNIEnv *env, jclass unused, jlong display, jlong window_ptr) { Display *disp = (Display *)(intptr_t)display; Window window = (Window)window_ptr;