New demo for window migration between different displays and screens.
Thu Aug 1 19:09:39 2002 Owen Taylor <otaylor@redhat.com> * demos/gtk-demo/changedisplay.c: New demo for window migration between different displays and screens. * gtk/gtkrc.c gtkstyle.[ch]: Add _gtk_style_init_for_settings(), so that gtkrc.c can initialize the styles it creates for the right display. * gdk/gdkdisplaymanager.c (gdk_screen_get_default) * gtk/gtksettings.c (gtk_settings_get_default) * gtk/gtkstyle.c (gtk_style_init): Handle absence of a default screen. * gdk/x11/gdkmain-x11.c (_gdk_windowing_set_default_display): Handle display == NULL.x * gdk/gdkdisplay.c (gdk_display_dispose): Free the event queue. * gdk/x11/gdkevents-x11.c gdk/x11/gdkdisplay-x11.c: Remove the event source when closing a display. * gdk/gdkdisplay.[ch]: Add a ::closed signal, dispose() isn't convenient enough by itself. * gdk/x11/gdkevents-x11.c (gdk_xsettings_watch_cb): Create foreign windows for watch windows if there isn't an existing window, instead of installing a global filter. * gdk/x11/gdkscreen-x11.c gdk/x11/gdkprivate-x11.h gdk/x11/gdkevents-x11.c (_gdk_x11_events_uninit_screen): Clean up the xsettings_client when we are done with it. * gdk/x11/gdkevents-x11.c (_gdk_events_init): Remove excess call to _gdk_x11_events_init_screen()
This commit is contained in:
@ -132,6 +132,12 @@ gdk_display_open (const gchar *display_name)
|
||||
for (i = 0; i < ScreenCount (display_x11->xdisplay); i++)
|
||||
display_x11->screens[i] = _gdk_x11_screen_new (display, i);
|
||||
|
||||
/* We need to initialize events after we have the screen
|
||||
* structures in places
|
||||
*/
|
||||
for (i = 0; i < ScreenCount (display_x11->xdisplay); i++)
|
||||
_gdk_x11_events_init_screen (display_x11->screens[i]);
|
||||
|
||||
/*set the default screen */
|
||||
display_x11->default_screen = display_x11->screens[DefaultScreen (display_x11->xdisplay)];
|
||||
display_x11->leader_window = XCreateSimpleWindow (display_x11->xdisplay,
|
||||
@ -488,11 +494,13 @@ gdk_display_x11_dispose (GObject *object)
|
||||
GdkDisplayX11 *display_x11;
|
||||
gint i;
|
||||
|
||||
display_x11 = GDK_DISPLAY_X11 (object);;
|
||||
display_x11 = GDK_DISPLAY_X11 (object);
|
||||
|
||||
for (i = 0; i < ScreenCount (display_x11->xdisplay); i++)
|
||||
_gdk_screen_close (display_x11->screens[i]);
|
||||
|
||||
g_source_destroy (display_x11->event_source);
|
||||
|
||||
XCloseDisplay (display_x11->xdisplay);
|
||||
display_x11->xdisplay = NULL;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user