From a12a27582e3e5e1d8346d8cb09c18a57f3f70ada Mon Sep 17 00:00:00 2001 From: Joshua Granick Date: Sun, 28 Dec 2014 11:54:10 -0800 Subject: [PATCH] Confirm window.setIcon on Windows --- lime/ui/Window.hx | 14 ++++++++++---- project/src/backend/sdl/SDLApplication.cpp | 2 +- project/src/backend/sdl/SDLWindow.cpp | 11 ++++++++--- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/lime/ui/Window.hx b/lime/ui/Window.hx index 8b805279c..f7ae73e8d 100644 --- a/lime/ui/Window.hx +++ b/lime/ui/Window.hx @@ -4,7 +4,7 @@ package lime.ui; import lime.app.Application; import lime.app.Config; import lime.app.Event; -import lime.graphics.ImageBuffer; +import lime.graphics.Image; import lime.graphics.Renderer; import lime.system.System; @@ -449,10 +449,16 @@ class Window { } - public function setIcon (buffer:ImageBuffer):Void { + public function setIcon (image:Image):Void { + + if (image == null) { + + return; + + } #if (cpp || neko || nodejs) - lime_window_set_icon (handle, buffer); + lime_window_set_icon (handle, image.buffer); #end } @@ -463,7 +469,7 @@ class Window { private static var lime_window_event_manager_register = System.load ("lime", "lime_window_event_manager_register", 2); private static var lime_window_move = System.load ("lime", "lime_window_move", 3); private static var lime_window_resize = System.load ("lime", "lime_window_resize", 3); - private static var lime_window_set_icon = System.load ("lime", "lime_window_resize", 2); + private static var lime_window_set_icon = System.load ("lime", "lime_window_set_icon", 2); #end diff --git a/project/src/backend/sdl/SDLApplication.cpp b/project/src/backend/sdl/SDLApplication.cpp index 1c8852c89..1d78bc50d 100644 --- a/project/src/backend/sdl/SDLApplication.cpp +++ b/project/src/backend/sdl/SDLApplication.cpp @@ -307,7 +307,7 @@ namespace lime { SDL_Event event; event.type = -1; - + if (active && (firstTime || SDL_WaitEvent (&event))) { firstTime = false; diff --git a/project/src/backend/sdl/SDLWindow.cpp b/project/src/backend/sdl/SDLWindow.cpp index 2385ac010..d7b4edc6b 100644 --- a/project/src/backend/sdl/SDLWindow.cpp +++ b/project/src/backend/sdl/SDLWindow.cpp @@ -55,9 +55,14 @@ namespace lime { void SDLWindow::SetIcon (ImageBuffer *imageBuffer) { - SDL_Surface *surface = SDL_CreateRGBSurfaceFrom (imageBuffer->data->Bytes (), imageBuffer->width, imageBuffer->height, imageBuffer->bpp, imageBuffer->width * imageBuffer->bpp, 0x0f00, 0x00f0, 0x000f, 0xf000); - SDL_SetWindowIcon (sdlWindow, surface); - SDL_FreeSurface (surface); + SDL_Surface *surface = SDL_CreateRGBSurfaceFrom (imageBuffer->data->Bytes (), imageBuffer->width, imageBuffer->height, imageBuffer->bpp * 8, imageBuffer->width * imageBuffer->bpp, 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000); + + if (surface) { + + SDL_SetWindowIcon (sdlWindow, surface); + SDL_FreeSurface (surface); + + } }