Start implementing display/screen closing scheme; keep a flag for whether
Thu Aug 1 11:26:03 2002 Owen Taylor <otaylor@redhat.com> * gdk/gdkdisplay.[ch] gdk/gdkscreen.[ch] gdkinternals.h: Start implementing display/screen closing scheme; keep a flag for whether displays and screens are closed, call g_object_run_dispose(). Remove public gdk_screen_close(). * gdk/x11/gdkdisplay-x11.c gdk/x11/gdkscreen-x11.c: Add dispose() methods; move appropriate parts of the finalize there. * gdk/x11/gdkcolor-x11.c gdk/x11/gdkimage-x11.c gdk/x11/gdkmain-x11.c gdk/x11/gdkpango-x11.c gdk/x11/gdkpixmap-x11.c gdk/x11/gdkproperty-x11.c gdk/x11/gdkselection-x11.c gdk/x11/gdkwindow-x11.c: Start of making everything correctly ignore operations when a display has been closed. * gdk/x11/gdkwindow-x11.c (gdk_window_get_decorations): Handle decorations == NULL. * gdk/x11/gdkcolor-x11.c (gdk_colormap_remove): Remove unnecessary hash table creation. * gdk/x11/gdkinput.c gdk/x11/gdkinput-x11.c gdk/win32/gdkinput.c Fix up gdk_device_get_history - handle events, n_events == NULL, etc. * gdk/x11/gdkproperty-x11.c (gdk_property_get): Handle failure better. * gdk/x11/gdkselection-x11.c (gdk_selection_property_get): Handle failure better, handle data == NULL, move docs here, remove an excess round trip by asking for all selection data at once. * gdk/gdkselection.c gdk/win32/{x11,win32}/gdkselection-{x11,win32}.c gdk/{x11,win32}/gdkmain-{x11,win32}.c gdk/gdkdisplay.c: Move gdk_text_property_to_text_list(), gdk_string_to_compound_text(), gdk_display_set_sm_client_id() to display-independent part of GDK. * gdk/Makefile.am (gdk_c_sources): Sort gdkdisplay/screen.[ch] into the right place.
This commit is contained in:
@ -220,6 +220,9 @@ gdk_window_impl_x11_set_colormap (GdkDrawable *drawable,
|
||||
impl = GDK_WINDOW_IMPL_X11 (drawable);
|
||||
draw_impl = GDK_DRAWABLE_IMPL_X11 (drawable);
|
||||
|
||||
if (GDK_WINDOW_DESTROYED (draw_impl->wrapper))
|
||||
return;
|
||||
|
||||
/* chain up */
|
||||
GDK_DRAWABLE_CLASS (parent_class)->set_colormap (drawable, cmap);
|
||||
|
||||
@ -2628,10 +2631,10 @@ gdk_window_add_colormap_windows (GdkWindow *window)
|
||||
|
||||
g_return_if_fail (window != NULL);
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
toplevel = gdk_window_get_toplevel (window);
|
||||
if (GDK_WINDOW_DESTROYED (toplevel))
|
||||
|
||||
if (GDK_WINDOW_DESTROYED (window))
|
||||
return;
|
||||
toplevel = gdk_window_get_toplevel (window);
|
||||
|
||||
old_windows = NULL;
|
||||
if (!XGetWMColormapWindows (GDK_WINDOW_XDISPLAY (toplevel),
|
||||
@ -3513,19 +3516,22 @@ gdk_window_set_decorations (GdkWindow *window,
|
||||
* Returns: TRUE if the window has decorations set, FALSE otherwise.
|
||||
**/
|
||||
gboolean
|
||||
gdk_window_get_decorations(GdkWindow *window,
|
||||
gdk_window_get_decorations(GdkWindow *window,
|
||||
GdkWMDecoration *decorations)
|
||||
{
|
||||
MotifWmHints *hints;
|
||||
gboolean result = FALSE;
|
||||
|
||||
g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
|
||||
|
||||
hints = gdk_window_get_mwm_hints (window);
|
||||
|
||||
if (hints)
|
||||
{
|
||||
if (hints->flags & MWM_HINTS_DECORATIONS)
|
||||
{
|
||||
*decorations = hints->decorations;
|
||||
if (decorations)
|
||||
*decorations = hints->decorations;
|
||||
result = TRUE;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user