Skip to content
This repository has been archived by the owner on Nov 17, 2020. It is now read-only.

Commit

Permalink
Fix typo. The gtk.immodules file had never been included in my
Browse files Browse the repository at this point in the history
2004-08-15  Tor Lillqvist  <tml@iki.fi>

	* gtk-zip.sh.in: Fix typo. The gtk.immodules file had never been
	included in my zipfiles...!

	* gtk/gtkfilesystemwin32.c (extract_icon): Improve handling of
	icon alpha channel (on Windows XP) and mask (older Windows
	versions). (#148641, Tim Evans)
  • Loading branch information
tml1024 authored and Tor Lillqvist committed Aug 15, 2004
1 parent 52bf2d3 commit 9898746
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 24 deletions.
9 changes: 9 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
2004-08-15 Tor Lillqvist <tml@iki.fi>

* gtk-zip.sh.in: Fix typo. The gtk.immodules file had never been
included in my zipfiles...!

* gtk/gtkfilesystemwin32.c (extract_icon): Improve handling of
icon alpha channel (on Windows XP) and mask (older Windows
versions). (#148641, Tim Evans)

Sun Aug 15 02:31:55 2004 Matthias Clasen <maclas@gmx.de>

* gtk/gtkfilesystemunix.c (get_icon_type_from_stat): Make
Expand Down
9 changes: 9 additions & 0 deletions ChangeLog.pre-2-10
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
2004-08-15 Tor Lillqvist <tml@iki.fi>

* gtk-zip.sh.in: Fix typo. The gtk.immodules file had never been
included in my zipfiles...!

* gtk/gtkfilesystemwin32.c (extract_icon): Improve handling of
icon alpha channel (on Windows XP) and mask (older Windows
versions). (#148641, Tim Evans)

Sun Aug 15 02:31:55 2004 Matthias Clasen <maclas@gmx.de>

* gtk/gtkfilesystemunix.c (get_icon_type_from_stat): Make
Expand Down
9 changes: 9 additions & 0 deletions ChangeLog.pre-2-6
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
2004-08-15 Tor Lillqvist <tml@iki.fi>

* gtk-zip.sh.in: Fix typo. The gtk.immodules file had never been
included in my zipfiles...!

* gtk/gtkfilesystemwin32.c (extract_icon): Improve handling of
icon alpha channel (on Windows XP) and mask (older Windows
versions). (#148641, Tim Evans)

Sun Aug 15 02:31:55 2004 Matthias Clasen <maclas@gmx.de>

* gtk/gtkfilesystemunix.c (get_icon_type_from_stat): Make
Expand Down
9 changes: 9 additions & 0 deletions ChangeLog.pre-2-8
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
2004-08-15 Tor Lillqvist <tml@iki.fi>

* gtk-zip.sh.in: Fix typo. The gtk.immodules file had never been
included in my zipfiles...!

* gtk/gtkfilesystemwin32.c (extract_icon): Improve handling of
icon alpha channel (on Windows XP) and mask (older Windows
versions). (#148641, Tim Evans)

Sun Aug 15 02:31:55 2004 Matthias Clasen <maclas@gmx.de>

* gtk/gtkfilesystemunix.c (get_icon_type_from_stat): Make
Expand Down
2 changes: 1 addition & 1 deletion gtk-zip.sh.in
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ zip $ZIP -@ <<EOF
COPYING.LIB-2
etc/gtk-2.0/gdk-pixbuf.loaders
etc/gtk-2.0/gtkrc
etc/gtk-2.0/gtk.immodues
etc/gtk-2.0/gtk.immodules
$DLLDIR/libgdk_pixbuf-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@.dll
$DLLDIR/libgdk-win32-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@.dll
$DLLDIR/libgtk-win32-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@.dll
Expand Down
52 changes: 29 additions & 23 deletions gtk/gtkfilesystemwin32.c
Original file line number Diff line number Diff line change
Expand Up @@ -967,49 +967,55 @@ extract_icon (const char* filename)
if (GetDIBits (hdc, ii.hbmColor, 0, 1, NULL, (BITMAPINFO *)&bmi, DIB_RGB_COLORS))
{
gchar *pixels, *bits;
gint rowstride, x, y, w = bmi.bi.biWidth, h = bmi.bi.biHeight;
gint rowstride, x, y, w = bmi.bi.biWidth, h = bmi.bi.biHeight;
gboolean no_alpha;

bmi.bi.biBitCount = 24;
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_malloc (4 * w * h);
bits = g_malloc0 (4 * w * h);

/* color data */
if (!GetDIBits (hdc, ii.hbmColor, 0, h, bits, (BITMAPINFO *)&bmi, DIB_RGB_COLORS))
g_warning(G_STRLOC ": Failed to get dibits");

pixels = gdk_pixbuf_get_pixels (pixbuf);
rowstride = gdk_pixbuf_get_rowstride (pixbuf);
no_alpha = TRUE;
for (y = 0; y < h; y++)
{
for (x = 0; x < w; x++)
{
pixels[2] = bits[(x+y*w) * 3];
pixels[1] = bits[(x+y*w) * 3 + 1];
pixels[0] = bits[(x+y*w) * 3 + 2];
pixels[2] = bits[(x+y*w) * 4];
pixels[1] = bits[(x+y*w) * 4 + 1];
pixels[0] = bits[(x+y*w) * 4 + 2];
pixels[3] = bits[(x+y*w) * 4 + 3];
if (no_alpha && pixels[3] > 0) no_alpha = FALSE;
pixels += 4;
}
pixels += (w * 4 - rowstride);
}
/* transparency */
if (!GetDIBits (hdc, ii.hbmMask, 0, h, bits, (BITMAPINFO *)&bmi, DIB_RGB_COLORS))
g_warning(G_STRLOC ": Failed to get dibits");
pixels = gdk_pixbuf_get_pixels (pixbuf);
for (y = 0; y < h; y++)
{
for (x = 0; x < w; x++)
{
pixels[3] = 255 - bits[(x + y * w) * 3];
/* mask */
if (no_alpha) {
if (!GetDIBits (hdc, ii.hbmMask, 0, h, bits, (BITMAPINFO *)&bmi, DIB_RGB_COLORS))
g_warning(G_STRLOC ": Failed to get dibits");
pixels = gdk_pixbuf_get_pixels (pixbuf);
for (y = 0; y < h; y++)
{
for (x = 0; x < w; x++)
{
pixels[3] = 255 - bits[(x + y * w) * 4];
pixels += 4;
}
pixels += (w * 4 - rowstride);
}
}
pixels += (w * 4 - rowstride);
}

/* release temporary resources */
g_free (bits);
if (!DeleteObject (ii.hbmColor) || !DeleteObject (ii.hbmMask))
g_warning(G_STRLOC ": Leaking Icon Bitmaps ?");
/* release temporary resources */
g_free (bits);
if (!DeleteObject (ii.hbmColor) || !DeleteObject (ii.hbmMask))
g_warning(G_STRLOC ": Leaking Icon Bitmaps ?");
}
}
else
g_warning(G_STRLOC ": GetDIBits () failed, %s", g_win32_error_message (GetLastError ()));
Expand All @@ -1023,7 +1029,7 @@ extract_icon (const char* filename)
g_warning(G_STRLOC ": DestroyIcon failed");
}
else
g_print ("ExtractAssociatedIcon(%s) failed: %s\n", filename, g_win32_error_message (GetLastError ()));
g_warning (G_STRLOC ":ExtractAssociatedIcon(%s) failed: %s", filename, g_win32_error_message (GetLastError ()));

return pixbuf;
}
Expand Down

0 comments on commit 9898746

Please sign in to comment.