Don't create the GdkPixbuf until we know that we have something to put in

2005-07-06  Tor Lillqvist  <tml@novell.com>

	* gdk/win32/gdkcursor-win32.c
	(gdk_win32_icon_to_pixbuf_libgtk_only): Don't create the GdkPixbuf
	until we know that we have something to put in it.
This commit is contained in:
Tor Lillqvist 2005-07-06 15:30:10 +00:00 committed by Tor Lillqvist
parent d7456e064f
commit 489f99911a
4 changed files with 23 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2005-07-06 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkcursor-win32.c
(gdk_win32_icon_to_pixbuf_libgtk_only): Don't create the GdkPixbuf
until we know that we have something to put in it.
2005-07-05 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkspinbutton.c (gtk_spin_button_new_with_range): Add some

View File

@ -1,3 +1,9 @@
2005-07-06 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkcursor-win32.c
(gdk_win32_icon_to_pixbuf_libgtk_only): Don't create the GdkPixbuf
until we know that we have something to put in it.
2005-07-05 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkspinbutton.c (gtk_spin_button_new_with_range): Add some

View File

@ -1,3 +1,9 @@
2005-07-06 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkcursor-win32.c
(gdk_win32_icon_to_pixbuf_libgtk_only): Don't create the GdkPixbuf
until we know that we have something to put in it.
2005-07-05 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkspinbutton.c (gtk_spin_button_new_with_range): Add some

View File

@ -426,14 +426,15 @@ gdk_win32_icon_to_pixbuf_libgtk_only (HICON hicon)
if (!GDI_CALL (GetIconInfo, (hicon, &ii)))
return NULL;
memset (&bmi, 0, sizeof (bmi));
bmi.bi.biSize = sizeof (bmi.bi);
if (!(hdc = CreateCompatibleDC (NULL)))
{
WIN32_GDI_FAILED ("CreateCompatibleDC");
goto out0;
}
memset (&bmi, 0, sizeof (bmi));
bmi.bi.biSize = sizeof (bmi.bi);
if (!GDI_CALL (GetDIBits, (hdc, ii.hbmColor, 0, 1, NULL, (BITMAPINFO *)&bmi, DIB_RGB_COLORS)))
goto out1;
@ -443,13 +444,14 @@ gdk_win32_icon_to_pixbuf_libgtk_only (HICON hicon)
bmi.bi.biBitCount = 32;
bmi.bi.biCompression = BI_RGB;
bmi.bi.biHeight = -h;
pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, w, h);
bits = g_malloc0 (4 * w * h);
/* color data */
if (!GDI_CALL (GetDIBits, (hdc, ii.hbmColor, 0, h, bits, (BITMAPINFO *)&bmi, DIB_RGB_COLORS)))
goto out2;
pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, w, h);
pixels = gdk_pixbuf_get_pixels (pixbuf);
rowstride = gdk_pixbuf_get_rowstride (pixbuf);
no_alpha = TRUE;