window.Destroy(0);
return 0;
}
+ /*case WM_GETMINMAXINFO:
+ {
+ MINMAXINFO * mmi = (MINMAXINFO *)lParam;
+ if(window.nativeDecorations)
+ {
+ WINDOWPLACEMENT place = { 0 };
+ place.length = sizeof(WINDOWPLACEMENT);
+ GetWindowPlacement(windowHandle, &place);
+ if((place.showCmd & SW_SHOWMAXIMIZED) && window.state != maximized)
+ window.state = maximized;
+ else if((place.showCmd & SW_SHOWMINIMIZED) && window.state != minimized)
+ window.state = minimized;
+ else if((place.showCmd & SW_SHOWNORMAL) && window.state != normal && window.visible)
+ window.state = normal;
+ }
+ else
+ return (uint)DefWindowProc(windowHandle, msg, wParam, lParam);
+ break;
+ }*/
+#if 0
+ case WM_WINDOWPOSCHANGED:
+ {
+ if(window.nativeDecorations)
+ {
+ int x, y, w, h;
+ WINDOWPOS * pos = (WINDOWPOS *)lParam;
+ //if((pos->flags & SWP_SHOWWINDOW))
+#if 0
+ if((pos->flags & 0x800)) // SWP_STATECHANGED
+ {
+ WINDOWPLACEMENT place = { 0 };
+ place.length = sizeof(WINDOWPLACEMENT);
+ GetWindowPlacement(windowHandle, &place);
+ printf("WM_WINDOWPOSCHANGED: ");
+ printf("SWP_STATECHANGED (");
+ if((place.showCmd & SW_SHOWMAXIMIZED))
+ printf("maximized");
+ else if((place.showCmd & SW_SHOWMINIMIZED))
+ printf("minimized");
+ else if((place.showCmd & SW_SHOWNORMAL))
+ printf("normal");
+ printf(") ");
+
+ /*if((place.showCmd & SW_SHOWMAXIMIZED) && window.state != maximized)
+ window.state = maximized;
+ else if((place.showCmd & SW_SHOWMINIMIZED) && window.state != minimized)
+ window.state = minimized;
+ else if((place.showCmd & SW_SHOWNORMAL) && window.state != normal && window.visible)
+ window.state = normal;*/
+ printf("\n");
+ }
+#endif
+ if(!(pos->flags & SWP_NOMOVE) || !(pos->flags & SWP_NOSIZE))
+ {
+ //RECT rcWindow;
+ //GetWindowRect(windowHandle, &rcWindow);
+ WINDOWPLACEMENT place = { 0 };
+ place.length = sizeof(WINDOWPLACEMENT);
+ GetWindowPlacement(windowHandle, &place);
+ printf("WM_WINDOWPOSCHANGED: ");
+ printf("!SWP_NOMOVE || !SWP_NOSIZE (");
+
+ if(wParam == SIZE_MAXIMIZED && window.state != maximized)
+ window.state = maximized;
+ else if(wParam == SIZE_MINIMIZED && window.state != minimized)
+ window.state = minimized;
+ else if(wParam == SIZE_RESTORED && window.state != normal && window.visible)
+ window.state = normal;
+
+ /*if((place.showCmd & SW_MAXIMIZE) && window.state != maximized)
+ window.state = maximized;
+ else if((place.showCmd & SW_MINIMIZE) && window.state != minimized)
+ window.state = minimized;
+ else if((place.showCmd & SW_RESTORE) && window.state != normal && window.visible)
+ window.state = normal;*/
+
+ //x = rcWindow.left - desktopX;
+ //y = rcWindow.top - desktopY;
+ //w = rcWindow.right - rcWindow.left;
+ //h = rcWindow.bottom - rcWindow.top;
+ x = pos->x - desktopX;
+ y = pos->y - desktopY;
+ w = pos->cx;
+ h = pos->cy;
+ printf("%d, %d, %d, %d) ", x, y, w, h);
+
+ AeroSnapPosition(window, x, y, w, h);
+ if(!(pos->flags & SWP_NOSIZE) && !guiApp.modeSwitching)
+ window.UpdateVisual(null);
+ }
+ //printf("\n");
+ }
+ //else
+ return (uint)DefWindowProc(windowHandle, msg, wParam, lParam);
+ break;
+ }
+#endif
case WM_MOVE:
{
int x, y, w, h;
+ //WINDOWPLACEMENT place = { 0 };
RECT rcWindow;
+ //place.length = sizeof(WINDOWPLACEMENT);
+ //GetWindowPlacement(windowHandle, &place);
GetWindowRect(windowHandle, &rcWindow);
+#if 0
+ if((place.showCmd & SW_SHOWMAXIMIZED) && window.state != maximized)
+ window.state = maximized;
+ else if((place.showCmd & SW_SHOWMINIMIZED) && window.state != minimized)
+ window.state = minimized;
+ else if((place.showCmd & SW_SHOWNORMAL) && window.state != normal && window.visible)
+ window.state = normal;
+#endif
+
x = rcWindow.left - desktopX;
y = rcWindow.top - desktopY;
w = rcWindow.right - rcWindow.left;
h = rcWindow.bottom - rcWindow.top;
+ //printf("WM_MOVE - (%d,%d) (%dx%d) (%s) \n", x, y, w, h,
+ // window.state == maximized ? "maximized" : window.state == minimized ? "minimized" : window.state == normal ? "normal" : "BAD");
+
AeroSnapPosition(window, x, y, w, h);
break;
}
w = rcWindow.right - rcWindow.left;
h = rcWindow.bottom - rcWindow.top;
+ //printf("WM_SIZE - (%d,%d) (%dx%d) (%s) \n", x, y, w, h,
+ // wParam == SIZE_MAXIMIZED ? "SIZE_MAXIMIZED" : wParam == SIZE_MINIMIZED ? "SIZE_MINIMIZED" : wParam == SIZE_RESTORED ? "SIZE_RESTORED" : "BAD");
+
AeroSnapPosition(window, x, y, w, h);
if(!guiApp.modeSwitching)
window.UpdateVisual(null);