From 4e4b8727fce6ae1b77760f97b28297b9139311d2 Mon Sep 17 00:00:00 2001 From: Camilla Berglund Date: Fri, 11 Mar 2016 14:41:18 +0100 Subject: [PATCH] Fix Win32 icon restoration --- src/win32_window.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/win32_window.c b/src/win32_window.c index 8d7e2ab7..c0d01ddd 100644 --- a/src/win32_window.c +++ b/src/win32_window.c @@ -1032,6 +1032,11 @@ void _glfwPlatformSetWindowIcon(_GLFWwindow* window, bigIcon = createIcon(bigImage, 0, 0, GLFW_TRUE); smallIcon = createIcon(smallImage, 0, 0, GLFW_TRUE); } + else + { + bigIcon = (HICON) GetClassLongPtrW(window->win32.handle, GCLP_HICON); + smallIcon = (HICON) GetClassLongPtrW(window->win32.handle, GCLP_HICONSM); + } SendMessage(window->win32.handle, WM_SETICON, ICON_BIG, (LPARAM) bigIcon); SendMessage(window->win32.handle, WM_SETICON, ICON_SMALL, (LPARAM) smallIcon); @@ -1042,8 +1047,11 @@ void _glfwPlatformSetWindowIcon(_GLFWwindow* window, if (window->win32.smallIcon) DestroyIcon(window->win32.smallIcon); - window->win32.bigIcon = bigIcon; - window->win32.smallIcon = smallIcon; + if (count) + { + window->win32.bigIcon = bigIcon; + window->win32.smallIcon = smallIcon; + } } void _glfwPlatformGetWindowPos(_GLFWwindow* window, int* xpos, int* ypos)