1532
1533 // When the window is deactivated, send WM_IME_ENDCOMPOSITION
1534 // message to deactivate the composition window so that
1535 // it won't receive keyboard input focus.
1536 HIMC hIMC;
1537 HWND hwnd = ImmGetHWnd();
1538 if ((hIMC = ImmGetContext(hwnd)) != NULL) {
1539 ImmReleaseContext(hwnd, hIMC);
1540 DefWindowProc(WM_IME_ENDCOMPOSITION, 0, 0);
1541 }
1542 }
1543 break;
1544 }
1545 case WM_MOUSEACTIVATE: {
1546 AwtWindow *window = GetContainer();
1547 if (window && window->IsFocusableWindow()) {
1548 // AWT/Swing will later request focus to a proper component
1549 // on handling the Java mouse event. Anyway, we have to
1550 // activate the window here as it works both for AWT & Swing.
1551 // Do it in our own fassion,
1552 window->AwtSetActiveWindow(TRUE, LOWORD(lParam)/*hittest*/);
1553 }
1554 mr = mrConsume;
1555 retValue = MA_NOACTIVATE;
1556 break;
1557 }
1558 case WM_CTLCOLORMSGBOX:
1559 case WM_CTLCOLOREDIT:
1560 case WM_CTLCOLORLISTBOX:
1561 case WM_CTLCOLORBTN:
1562 case WM_CTLCOLORDLG:
1563 case WM_CTLCOLORSCROLLBAR:
1564 case WM_CTLCOLORSTATIC:
1565 mr = WmCtlColor((HDC)wParam, (HWND)lParam,
1566 message-WM_CTLCOLORMSGBOX+CTLCOLOR_MSGBOX,
1567 *(HBRUSH*)&retValue);
1568 break;
1569 case WM_HSCROLL:
1570 mr = WmHScroll(LOWORD(wParam), HIWORD(wParam), (HWND)lParam);
1571 break;
1572 case WM_VSCROLL:
1905 * there.
1906 */
1907 case WM_AWT_COMPONENT_SHOW:
1908 Show();
1909 mr = mrConsume;
1910 break;
1911 case WM_AWT_COMPONENT_HIDE:
1912 Hide();
1913 mr = mrConsume;
1914 break;
1915
1916 case WM_AWT_COMPONENT_SETFOCUS:
1917 if ((BOOL)wParam) {
1918 retValue = SynthesizeWmSetFocus(GetHWnd(), NULL);
1919 } else {
1920 retValue = SynthesizeWmKillFocus(GetHWnd(), NULL);
1921 }
1922 mr = mrConsume;
1923 break;
1924 case WM_AWT_WINDOW_SETACTIVE:
1925 retValue = (LRESULT)((AwtWindow*)this)->AwtSetActiveWindow((BOOL)wParam);
1926 mr = mrConsume;
1927 break;
1928
1929 case WM_AWT_SET_SCROLL_INFO: {
1930 SCROLLINFO *si = (SCROLLINFO *) lParam;
1931 ::SetScrollInfo(GetHWnd(), (int) wParam, si, TRUE);
1932 delete si;
1933 mr = mrConsume;
1934 break;
1935 }
1936 case WM_AWT_CREATE_PRINTED_PIXELS: {
1937 CreatePrintedPixelsStruct* cpps = (CreatePrintedPixelsStruct*)wParam;
1938 SIZE loc = { cpps->srcx, cpps->srcy };
1939 SIZE size = { cpps->srcw, cpps->srch };
1940 retValue = (LRESULT)CreatePrintedPixels(loc, size, cpps->alpha);
1941 mr = mrConsume;
1942 break;
1943 }
1944 case WM_UNDOCUMENTED_CLICKMENUBAR:
1945 {
|
1532
1533 // When the window is deactivated, send WM_IME_ENDCOMPOSITION
1534 // message to deactivate the composition window so that
1535 // it won't receive keyboard input focus.
1536 HIMC hIMC;
1537 HWND hwnd = ImmGetHWnd();
1538 if ((hIMC = ImmGetContext(hwnd)) != NULL) {
1539 ImmReleaseContext(hwnd, hIMC);
1540 DefWindowProc(WM_IME_ENDCOMPOSITION, 0, 0);
1541 }
1542 }
1543 break;
1544 }
1545 case WM_MOUSEACTIVATE: {
1546 AwtWindow *window = GetContainer();
1547 if (window && window->IsFocusableWindow()) {
1548 // AWT/Swing will later request focus to a proper component
1549 // on handling the Java mouse event. Anyway, we have to
1550 // activate the window here as it works both for AWT & Swing.
1551 // Do it in our own fassion,
1552 window->AwtSetActiveWindow(LOWORD(lParam)/*hittest*/);
1553 }
1554 mr = mrConsume;
1555 retValue = MA_NOACTIVATE;
1556 break;
1557 }
1558 case WM_CTLCOLORMSGBOX:
1559 case WM_CTLCOLOREDIT:
1560 case WM_CTLCOLORLISTBOX:
1561 case WM_CTLCOLORBTN:
1562 case WM_CTLCOLORDLG:
1563 case WM_CTLCOLORSCROLLBAR:
1564 case WM_CTLCOLORSTATIC:
1565 mr = WmCtlColor((HDC)wParam, (HWND)lParam,
1566 message-WM_CTLCOLORMSGBOX+CTLCOLOR_MSGBOX,
1567 *(HBRUSH*)&retValue);
1568 break;
1569 case WM_HSCROLL:
1570 mr = WmHScroll(LOWORD(wParam), HIWORD(wParam), (HWND)lParam);
1571 break;
1572 case WM_VSCROLL:
1905 * there.
1906 */
1907 case WM_AWT_COMPONENT_SHOW:
1908 Show();
1909 mr = mrConsume;
1910 break;
1911 case WM_AWT_COMPONENT_HIDE:
1912 Hide();
1913 mr = mrConsume;
1914 break;
1915
1916 case WM_AWT_COMPONENT_SETFOCUS:
1917 if ((BOOL)wParam) {
1918 retValue = SynthesizeWmSetFocus(GetHWnd(), NULL);
1919 } else {
1920 retValue = SynthesizeWmKillFocus(GetHWnd(), NULL);
1921 }
1922 mr = mrConsume;
1923 break;
1924 case WM_AWT_WINDOW_SETACTIVE:
1925 retValue = (LRESULT)((AwtWindow*)this)->AwtSetActiveWindow();
1926 mr = mrConsume;
1927 break;
1928
1929 case WM_AWT_SET_SCROLL_INFO: {
1930 SCROLLINFO *si = (SCROLLINFO *) lParam;
1931 ::SetScrollInfo(GetHWnd(), (int) wParam, si, TRUE);
1932 delete si;
1933 mr = mrConsume;
1934 break;
1935 }
1936 case WM_AWT_CREATE_PRINTED_PIXELS: {
1937 CreatePrintedPixelsStruct* cpps = (CreatePrintedPixelsStruct*)wParam;
1938 SIZE loc = { cpps->srcx, cpps->srcy };
1939 SIZE size = { cpps->srcw, cpps->srch };
1940 retValue = (LRESULT)CreatePrintedPixels(loc, size, cpps->alpha);
1941 mr = mrConsume;
1942 break;
1943 }
1944 case WM_UNDOCUMENTED_CLICKMENUBAR:
1945 {
|