src/windows/native/sun/windows/awt_Window.cpp
Print this page
*** 196,205 ****
--- 196,206 ----
ms_instanceCounter++;
m_grabbed = FALSE;
m_isFocusableWindow = TRUE;
m_isRetainingHierarchyZOrder = FALSE;
m_filterFocusAndActivation = FALSE;
+ m_isSnapResizing = FALSE;
if (AwtWindow::ms_instanceCounter == 1) {
AwtWindow::ms_hCBTFilter =
::SetWindowsHookEx(WH_CBT, (HOOKPROC)AwtWindow::CBTFilter,
0, AwtToolkit::MainThread());
*** 1724,1733 ****
--- 1725,1736 ----
return AwtComponent::WmMove(x, y);
}
MsgRouting AwtWindow::WmGetMinMaxInfo(LPMINMAXINFO lpmmi)
{
+ m_isSnapResizing = FALSE;
+
MsgRouting r = AwtCanvas::WmGetMinMaxInfo(lpmmi);
if ((m_minSize.x == 0) && (m_minSize.y == 0)) {
return r;
}
lpmmi->ptMinTrackSize.x = m_minSize.x;
*** 1764,1773 ****
--- 1767,1778 ----
* java AWT target's dimension fields directly, since Windows
* and below can be resized from outside of java (by user)
*/
MsgRouting AwtWindow::WmSize(UINT type, int w, int h)
{
+ m_isSnapResizing = TRUE;
+
currentWmSizeState = type;
if (type == SIZE_MINIMIZED) {
UpdateSecurityWarningVisibility();
return mrDoDefault;
*** 1879,1889 ****
mr = WmSysCommand(wParam, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));
if (mr != mrConsume) {
AwtWindow::DefWindowProc(message, wParam, lParam);
}
AwtWindow::sm_resizing = FALSE;
! if (!AwtToolkit::GetInstance().IsDynamicLayoutActive()) {
WindowResized();
}
mr = mrConsume;
}
break;
--- 1884,1894 ----
mr = WmSysCommand(wParam, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));
if (mr != mrConsume) {
AwtWindow::DefWindowProc(message, wParam, lParam);
}
AwtWindow::sm_resizing = FALSE;
! if (!AwtToolkit::GetInstance().IsDynamicLayoutActive() || m_isSnapResizing) {
WindowResized();
}
mr = mrConsume;
}
break;