When a window contains a GtkGLExt drawable, calls to gtk_window_set_screen will crash the application when the screen is a separate X-Screen.
This happens when the valid 'screen' is anything other than the gl-enabled window's spawn screen. For example, if the window's app launches at screen 1, then a call to gtk_window_set_screen (GTK_WINDOW (theWindow), gdk_display_get_screen (theGdkDisplay, 0); will cause it to crash. Likewise if the application launches at screen 0, a call to set its screen to '1' will cause a crash.
Calling gtk_window_set_screen on a window *without* a GtkGLExt drawable works fine. I have also tried to unrealize the GtkGLExt widget, copy the target screen's colourmap and so on, to no avail. I have also found a few rare posts on forums in reference to this problem.
Note that this problem occurs when the screens are separate X-screens (when gdk_display_get_n_screens > 1). TwinView/extended desktop configurations are not affected.
This bug is very easy to replicate: calling gtk_window_set_screen to a different X-screen; performed on a window containing the GtkGLExt drawable will cause the application to crash - when the window in question does not contain a GtkGLExt context, it will move to the other X-screen without crashing the app.
Log in to post a comment.