[gtk+/gtk-2-24] [win32] Fix win32 theme crash on offscreen windows
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-24] [win32] Fix win32 theme crash on offscreen windows
- Date: Fri, 16 Dec 2011 08:14:14 +0000 (UTC)
commit e9b0f9e81aab098462cfc0117c449e7597858438
Author: Alexander Larsson <alexl redhat com>
Date: Fri Dec 16 09:08:50 2011 +0100
[win32] Fix win32 theme crash on offscreen windows
We add _gdk_offscreen_window_get_real_drawable to get the real
pixmap impl for offscreen windows, then we use this
in gdkgc-win32.c:get_impl_drawable() for offscreen windows
This fixes a crash when rendering win32 theme parts on
offscreen windows (bug #623563)
gdk/gdkinternals.h | 1 +
gdk/gdkoffscreenwindow.c | 6 ++++++
gdk/win32/gdkgc-win32.c | 2 ++
3 files changed, 9 insertions(+), 0 deletions(-)
---
diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h
index 807e5aa..0bd803f 100644
--- a/gdk/gdkinternals.h
+++ b/gdk/gdkinternals.h
@@ -685,6 +685,7 @@ typedef struct _GdkOffscreenWindow GdkOffscreenWindow;
#define GDK_OFFSCREEN_WINDOW(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_OFFSCREEN_WINDOW, GdkOffscreenWindow))
#define GDK_IS_OFFSCREEN_WINDOW(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_OFFSCREEN_WINDOW))
GType gdk_offscreen_window_get_type (void);
+GdkDrawable * _gdk_offscreen_window_get_real_drawable (GdkOffscreenWindow *window);
void _gdk_offscreen_window_new (GdkWindow *window,
GdkScreen *screen,
GdkVisual *visual,
diff --git a/gdk/gdkoffscreenwindow.c b/gdk/gdkoffscreenwindow.c
index 22d0cba..9ed5d45 100644
--- a/gdk/gdkoffscreenwindow.c
+++ b/gdk/gdkoffscreenwindow.c
@@ -842,6 +842,12 @@ gdk_offscreen_window_get_pointer (GdkWindow *window,
return TRUE;
}
+GdkDrawable *
+_gdk_offscreen_window_get_real_drawable (GdkOffscreenWindow *offscreen)
+{
+ return get_real_drawable (offscreen);
+}
+
/**
* gdk_offscreen_window_get_pixmap:
* @window: a #GdkWindow
diff --git a/gdk/win32/gdkgc-win32.c b/gdk/win32/gdkgc-win32.c
index 712bc28..e7e6fd8 100644
--- a/gdk/win32/gdkgc-win32.c
+++ b/gdk/win32/gdkgc-win32.c
@@ -743,6 +743,8 @@ predraw (GdkGC *gc,
static GdkDrawableImplWin32 *
get_impl_drawable (GdkDrawable *drawable)
{
+ if (GDK_IS_OFFSCREEN_WINDOW (drawable))
+ return _gdk_offscreen_window_get_real_drawable (GDK_OFFSCREEN_WINDOW (drawable));
if (GDK_IS_DRAWABLE_IMPL_WIN32 (drawable))
return GDK_DRAWABLE_IMPL_WIN32(drawable);
else if (GDK_IS_WINDOW (drawable))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]