[gtk+/gtk-2-24] win32: fix GDK_DEBUG="draw" crasher
- From: Dieter Verfaillie <dieterv src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-24] win32: fix GDK_DEBUG="draw" crasher
- Date: Wed, 9 Nov 2011 20:13:03 +0000 (UTC)
commit 1b58117bbf9c7216df42f897a72e66638278803a
Author: Dieter Verfaillie <dieterv optionexplicit be>
Date: Wed Nov 9 14:43:28 2011 +0100
win32: fix GDK_DEBUG="draw" crasher
When running with GDK_DUBUG="draw", gdk_win32_draw_rectangle
calls _gdk_win32_drawable_description, which calls
gdk_drawable_get_size for a GdkWindowImplWin32.
gdk_drawable_get_size then tries to call
GDK_DRAWABLE_GET_CLASS (drawable)->get_size, which points
to NULL for GdkWindowImplWin32.
Adding the missing drawable_class->get_size implementation
fixes this.
gdk/win32/gdkwindow-win32.c | 24 ++++++++++++++++++++++++
1 files changed, 24 insertions(+), 0 deletions(-)
---
diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c
index 867e343..60a7dd6 100644
--- a/gdk/win32/gdkwindow-win32.c
+++ b/gdk/win32/gdkwindow-win32.c
@@ -39,6 +39,10 @@
static GdkColormap* gdk_window_impl_win32_get_colormap (GdkDrawable *drawable);
static void gdk_window_impl_win32_set_colormap (GdkDrawable *drawable,
GdkColormap *cmap);
+
+static void gdk_window_impl_win32_get_size (GdkDrawable *drawable,
+ gint *width,
+ gint *height);
static void gdk_window_impl_win32_init (GdkWindowImplWin32 *window);
static void gdk_window_impl_win32_class_init (GdkWindowImplWin32Class *klass);
static void gdk_window_impl_win32_finalize (GObject *object);
@@ -117,6 +121,25 @@ _gdk_window_impl_get_type (void)
}
static void
+gdk_window_impl_win32_get_size (GdkDrawable *drawable,
+ gint *width,
+ gint *height)
+{
+ GdkWindowObject *wrapper;
+ GdkDrawableImplWin32 *draw_impl;
+
+ g_return_if_fail (GDK_IS_WINDOW_IMPL_WIN32 (drawable));
+
+ draw_impl = GDK_DRAWABLE_IMPL_WIN32 (drawable);
+ wrapper = (GdkWindowObject*) draw_impl->wrapper;
+
+ if (width)
+ *width = wrapper->width;
+ if (height)
+ *height = wrapper->height;
+}
+
+static void
gdk_window_impl_win32_init (GdkWindowImplWin32 *impl)
{
impl->toplevel_window_type = -1;
@@ -144,6 +167,7 @@ gdk_window_impl_win32_class_init (GdkWindowImplWin32Class *klass)
drawable_class->set_colormap = gdk_window_impl_win32_set_colormap;
drawable_class->get_colormap = gdk_window_impl_win32_get_colormap;
+ drawable_class->get_size = gdk_window_impl_win32_get_size;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]