diff --git a/src/video/SDL_shape.c b/src/video/SDL_shape.c index 1c9f62063..90c41e488 100644 --- a/src/video/SDL_shape.c +++ b/src/video/SDL_shape.c @@ -240,6 +240,7 @@ SDL_SetWindowShape(SDL_Window *window,SDL_Surface *shape,SDL_WindowShapeMode *sh result = window->display->device->shape_driver.SetWindowShape(window->shaper,shape,shapeMode); window->shaper->hasshape = SDL_TRUE; if((window->shaper->usershownflag & SDL_WINDOW_SHOWN) == SDL_WINDOW_SHOWN) { + SDL_SetWindowPosition(window,window->x,window->y); SDL_ShowWindow(window); window->shaper->usershownflag &= !SDL_WINDOW_SHOWN; } diff --git a/src/video/win32/SDL_win32shape.c b/src/video/win32/SDL_win32shape.c index 747635c57..b5d01a07b 100644 --- a/src/video/win32/SDL_win32shape.c +++ b/src/video/win32/SDL_win32shape.c @@ -105,11 +105,11 @@ Win32_SetWindowShape(SDL_WindowShaper *shaper,SDL_Surface *shape,SDL_WindowShape /* * Set the new region mask for the window */ - mask_region = CreatePolyPolygonRgn(polygons,polygonVertexNumbers,num_rects,WINDING); + mask_region = CreatePolyPolygonRgn(polygons,polygonVertexNumbers,num_rects,WINDING); SetWindowRgn(((SDL_WindowData *)(shaper->window->driverdata))->hwnd, mask_region, TRUE); - SDL_free(polygons); - SDL_free(polygonVertexNumbers); + SDL_free(polygons); + SDL_free(polygonVertexNumbers); return 0; }