mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-25 05:01:09 +00:00
Fixes from #98358, Havoc Pennington.
Mon Nov 25 17:44:09 2002 Owen Taylor <otaylor@redhat.com> Fixes from #98358, Havoc Pennington. * gdk/{x11,win32,linux-fb}/gdkcolor-*.c (gdk_colormap_finalize): Free the private structure. * gdk/x11,win32,linxu-fb}/gdkscreen-*.c (gdk_screen_set_default_colormap): gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init): Keep a ref to the default colormap. * gdk/x11/gdkscreen-x11.c (gdk_screen_x11_dispose): Unref the default colormap. * gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_set_colormap): Handle the CMAP == NULL case even when the window is destroyed. * gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init): Add a missing ref for the system colormap.
This commit is contained in:
parent
bc96f137be
commit
a1f5e821bf
21
ChangeLog
21
ChangeLog
@ -1,3 +1,24 @@
|
|||||||
|
Mon Nov 25 17:44:09 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
Fixes from #98358, Havoc Pennington.
|
||||||
|
|
||||||
|
* gdk/{x11,win32,linux-fb}/gdkcolor-*.c (gdk_colormap_finalize):
|
||||||
|
Free the private structure.
|
||||||
|
|
||||||
|
* gdk/x11,win32,linxu-fb}/gdkscreen-*.c (gdk_screen_set_default_colormap):
|
||||||
|
gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init):
|
||||||
|
Keep a ref to the default colormap.
|
||||||
|
|
||||||
|
* gdk/x11/gdkscreen-x11.c (gdk_screen_x11_dispose): Unref
|
||||||
|
the default colormap.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_set_colormap):
|
||||||
|
Handle the CMAP == NULL case even when the window is
|
||||||
|
destroyed.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init):
|
||||||
|
Add a missing ref for the system colormap.
|
||||||
|
|
||||||
Mon Nov 25 17:10:54 2002 Owen Taylor <otaylor@redhat.com>
|
Mon Nov 25 17:10:54 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtksettings.c (gtk_settings_set_property_value):
|
* gtk/gtksettings.c (gtk_settings_set_property_value):
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
Mon Nov 25 17:44:09 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
Fixes from #98358, Havoc Pennington.
|
||||||
|
|
||||||
|
* gdk/{x11,win32,linux-fb}/gdkcolor-*.c (gdk_colormap_finalize):
|
||||||
|
Free the private structure.
|
||||||
|
|
||||||
|
* gdk/x11,win32,linxu-fb}/gdkscreen-*.c (gdk_screen_set_default_colormap):
|
||||||
|
gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init):
|
||||||
|
Keep a ref to the default colormap.
|
||||||
|
|
||||||
|
* gdk/x11/gdkscreen-x11.c (gdk_screen_x11_dispose): Unref
|
||||||
|
the default colormap.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_set_colormap):
|
||||||
|
Handle the CMAP == NULL case even when the window is
|
||||||
|
destroyed.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init):
|
||||||
|
Add a missing ref for the system colormap.
|
||||||
|
|
||||||
Mon Nov 25 17:10:54 2002 Owen Taylor <otaylor@redhat.com>
|
Mon Nov 25 17:10:54 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtksettings.c (gtk_settings_set_property_value):
|
* gtk/gtksettings.c (gtk_settings_set_property_value):
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
Mon Nov 25 17:44:09 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
Fixes from #98358, Havoc Pennington.
|
||||||
|
|
||||||
|
* gdk/{x11,win32,linux-fb}/gdkcolor-*.c (gdk_colormap_finalize):
|
||||||
|
Free the private structure.
|
||||||
|
|
||||||
|
* gdk/x11,win32,linxu-fb}/gdkscreen-*.c (gdk_screen_set_default_colormap):
|
||||||
|
gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init):
|
||||||
|
Keep a ref to the default colormap.
|
||||||
|
|
||||||
|
* gdk/x11/gdkscreen-x11.c (gdk_screen_x11_dispose): Unref
|
||||||
|
the default colormap.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_set_colormap):
|
||||||
|
Handle the CMAP == NULL case even when the window is
|
||||||
|
destroyed.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init):
|
||||||
|
Add a missing ref for the system colormap.
|
||||||
|
|
||||||
Mon Nov 25 17:10:54 2002 Owen Taylor <otaylor@redhat.com>
|
Mon Nov 25 17:10:54 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtksettings.c (gtk_settings_set_property_value):
|
* gtk/gtksettings.c (gtk_settings_set_property_value):
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
Mon Nov 25 17:44:09 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
Fixes from #98358, Havoc Pennington.
|
||||||
|
|
||||||
|
* gdk/{x11,win32,linux-fb}/gdkcolor-*.c (gdk_colormap_finalize):
|
||||||
|
Free the private structure.
|
||||||
|
|
||||||
|
* gdk/x11,win32,linxu-fb}/gdkscreen-*.c (gdk_screen_set_default_colormap):
|
||||||
|
gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init):
|
||||||
|
Keep a ref to the default colormap.
|
||||||
|
|
||||||
|
* gdk/x11/gdkscreen-x11.c (gdk_screen_x11_dispose): Unref
|
||||||
|
the default colormap.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_set_colormap):
|
||||||
|
Handle the CMAP == NULL case even when the window is
|
||||||
|
destroyed.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init):
|
||||||
|
Add a missing ref for the system colormap.
|
||||||
|
|
||||||
Mon Nov 25 17:10:54 2002 Owen Taylor <otaylor@redhat.com>
|
Mon Nov 25 17:10:54 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtksettings.c (gtk_settings_set_property_value):
|
* gtk/gtksettings.c (gtk_settings_set_property_value):
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
Mon Nov 25 17:44:09 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
Fixes from #98358, Havoc Pennington.
|
||||||
|
|
||||||
|
* gdk/{x11,win32,linux-fb}/gdkcolor-*.c (gdk_colormap_finalize):
|
||||||
|
Free the private structure.
|
||||||
|
|
||||||
|
* gdk/x11,win32,linxu-fb}/gdkscreen-*.c (gdk_screen_set_default_colormap):
|
||||||
|
gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init):
|
||||||
|
Keep a ref to the default colormap.
|
||||||
|
|
||||||
|
* gdk/x11/gdkscreen-x11.c (gdk_screen_x11_dispose): Unref
|
||||||
|
the default colormap.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_set_colormap):
|
||||||
|
Handle the CMAP == NULL case even when the window is
|
||||||
|
destroyed.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init):
|
||||||
|
Add a missing ref for the system colormap.
|
||||||
|
|
||||||
Mon Nov 25 17:10:54 2002 Owen Taylor <otaylor@redhat.com>
|
Mon Nov 25 17:10:54 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtksettings.c (gtk_settings_set_property_value):
|
* gtk/gtksettings.c (gtk_settings_set_property_value):
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
Mon Nov 25 17:44:09 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
Fixes from #98358, Havoc Pennington.
|
||||||
|
|
||||||
|
* gdk/{x11,win32,linux-fb}/gdkcolor-*.c (gdk_colormap_finalize):
|
||||||
|
Free the private structure.
|
||||||
|
|
||||||
|
* gdk/x11,win32,linxu-fb}/gdkscreen-*.c (gdk_screen_set_default_colormap):
|
||||||
|
gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init):
|
||||||
|
Keep a ref to the default colormap.
|
||||||
|
|
||||||
|
* gdk/x11/gdkscreen-x11.c (gdk_screen_x11_dispose): Unref
|
||||||
|
the default colormap.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_set_colormap):
|
||||||
|
Handle the CMAP == NULL case even when the window is
|
||||||
|
destroyed.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (_gdk_windowing_window_init):
|
||||||
|
Add a missing ref for the system colormap.
|
||||||
|
|
||||||
Mon Nov 25 17:10:54 2002 Owen Taylor <otaylor@redhat.com>
|
Mon Nov 25 17:10:54 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* gtk/gtksettings.c (gtk_settings_set_property_value):
|
* gtk/gtksettings.c (gtk_settings_set_property_value):
|
||||||
|
@ -52,6 +52,7 @@ gdk_colormap_finalize (GObject *object)
|
|||||||
|
|
||||||
g_free (private->info);
|
g_free (private->info);
|
||||||
g_free (colormap->colors);
|
g_free (colormap->colors);
|
||||||
|
g_free (private);
|
||||||
|
|
||||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,17 @@ void
|
|||||||
gdk_screen_set_default_colormap (GdkScreen *screen,
|
gdk_screen_set_default_colormap (GdkScreen *screen,
|
||||||
GdkColormap *colormap)
|
GdkColormap *colormap)
|
||||||
{
|
{
|
||||||
default_colormap = colormap;
|
GdkColormap *old_colormap;
|
||||||
|
|
||||||
|
g_return_if_fail (GDK_IS_SCREEN (screen));
|
||||||
|
g_return_if_fail (GDK_IS_COLORMAP (colormap));
|
||||||
|
|
||||||
|
old_colormap = default_colormap;
|
||||||
|
|
||||||
|
default_colormap = g_object_ref (colormap);
|
||||||
|
|
||||||
|
if (old_colormap)
|
||||||
|
g_object_unref (old_colormap);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -114,6 +114,7 @@ gdk_colormap_finalize (GObject *object)
|
|||||||
|
|
||||||
g_free (private->info);
|
g_free (private->info);
|
||||||
g_free (colormap->colors);
|
g_free (colormap->colors);
|
||||||
|
g_free (private);
|
||||||
|
|
||||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,17 @@ void
|
|||||||
gdk_screen_set_default_colormap (GdkScreen *screen,
|
gdk_screen_set_default_colormap (GdkScreen *screen,
|
||||||
GdkColormap *colormap)
|
GdkColormap *colormap)
|
||||||
{
|
{
|
||||||
default_colormap = colormap;
|
GdkColormap *old_colormap;
|
||||||
|
|
||||||
|
g_return_if_fail (GDK_IS_SCREEN (screen));
|
||||||
|
g_return_if_fail (GDK_IS_COLORMAP (colormap));
|
||||||
|
|
||||||
|
old_colormap = default_colormap;
|
||||||
|
|
||||||
|
default_colormap = g_object_ref (colormap);
|
||||||
|
|
||||||
|
if (old_colormap)
|
||||||
|
g_object_unref (old_colormap);
|
||||||
}
|
}
|
||||||
|
|
||||||
gint
|
gint
|
||||||
|
@ -143,6 +143,7 @@ gdk_colormap_finalize (GObject *object)
|
|||||||
|
|
||||||
g_free (private->info);
|
g_free (private->info);
|
||||||
g_free (colormap->colors);
|
g_free (colormap->colors);
|
||||||
|
g_free (private);
|
||||||
|
|
||||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
@ -244,10 +244,17 @@ void
|
|||||||
gdk_screen_set_default_colormap (GdkScreen *screen,
|
gdk_screen_set_default_colormap (GdkScreen *screen,
|
||||||
GdkColormap *colormap)
|
GdkColormap *colormap)
|
||||||
{
|
{
|
||||||
|
GdkColormap *old_colormap;
|
||||||
|
|
||||||
g_return_if_fail (GDK_IS_SCREEN (screen));
|
g_return_if_fail (GDK_IS_SCREEN (screen));
|
||||||
g_return_if_fail (GDK_IS_COLORMAP (colormap));
|
g_return_if_fail (GDK_IS_COLORMAP (colormap));
|
||||||
|
|
||||||
|
old_colormap = GDK_SCREEN_X11 (screen)->default_colormap;
|
||||||
|
|
||||||
|
GDK_SCREEN_X11 (screen)->default_colormap = g_object_ref (colormap);
|
||||||
|
|
||||||
GDK_SCREEN_X11 (screen)->default_colormap = colormap;
|
if (old_colormap)
|
||||||
|
g_object_unref (old_colormap);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -256,6 +263,9 @@ gdk_screen_x11_dispose (GObject *object)
|
|||||||
GdkScreenX11 *screen_x11 = GDK_SCREEN_X11 (object);
|
GdkScreenX11 *screen_x11 = GDK_SCREEN_X11 (object);
|
||||||
|
|
||||||
_gdk_x11_events_uninit_screen (GDK_SCREEN (object));
|
_gdk_x11_events_uninit_screen (GDK_SCREEN (object));
|
||||||
|
|
||||||
|
g_object_unref (screen_x11->default_colormap);
|
||||||
|
screen_x11->default_colormap = NULL;
|
||||||
|
|
||||||
screen_x11->root_window = NULL;
|
screen_x11->root_window = NULL;
|
||||||
|
|
||||||
|
@ -228,7 +228,7 @@ gdk_window_impl_x11_set_colormap (GdkDrawable *drawable,
|
|||||||
impl = GDK_WINDOW_IMPL_X11 (drawable);
|
impl = GDK_WINDOW_IMPL_X11 (drawable);
|
||||||
draw_impl = GDK_DRAWABLE_IMPL_X11 (drawable);
|
draw_impl = GDK_DRAWABLE_IMPL_X11 (drawable);
|
||||||
|
|
||||||
if (GDK_WINDOW_DESTROYED (draw_impl->wrapper))
|
if (cmap && GDK_WINDOW_DESTROYED (draw_impl->wrapper))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* chain up */
|
/* chain up */
|
||||||
@ -294,7 +294,8 @@ _gdk_windowing_window_init (GdkScreen * screen)
|
|||||||
|
|
||||||
g_assert (screen_x11->root_window == NULL);
|
g_assert (screen_x11->root_window == NULL);
|
||||||
|
|
||||||
screen_x11->default_colormap = gdk_screen_get_system_colormap (screen);
|
gdk_screen_set_default_colormap (screen,
|
||||||
|
gdk_screen_get_system_colormap (screen));
|
||||||
|
|
||||||
XGetGeometry (screen_x11->xdisplay, screen_x11->xroot_window,
|
XGetGeometry (screen_x11->xdisplay, screen_x11->xroot_window,
|
||||||
&screen_x11->xroot_window, &x, &y, &width, &height, &border_width, &depth);
|
&screen_x11->xroot_window, &x, &y, &width, &height, &border_width, &depth);
|
||||||
@ -309,6 +310,7 @@ _gdk_windowing_window_init (GdkScreen * screen)
|
|||||||
draw_impl->xid = screen_x11->xroot_window;
|
draw_impl->xid = screen_x11->xroot_window;
|
||||||
draw_impl->wrapper = GDK_DRAWABLE (private);
|
draw_impl->wrapper = GDK_DRAWABLE (private);
|
||||||
draw_impl->colormap = gdk_screen_get_system_colormap (screen);
|
draw_impl->colormap = gdk_screen_get_system_colormap (screen);
|
||||||
|
g_object_ref (draw_impl->colormap);
|
||||||
|
|
||||||
private->window_type = GDK_WINDOW_ROOT;
|
private->window_type = GDK_WINDOW_ROOT;
|
||||||
private->depth = depth;
|
private->depth = depth;
|
||||||
|
Loading…
Reference in New Issue
Block a user