@Override LRESULT WM_KILLFOCUS (int /*long*/ wParam, int /*long*/ lParam) { /* * Bug in Windows. When a combo box that is read only * is disposed in CBN_KILLFOCUS, Windows segment faults. * The fix is to send focus from WM_KILLFOCUS instead * of CBN_KILLFOCUS. * * NOTE: In version 6 of COMCTL32.DLL, the bug is fixed. */ if ((style & SWT.READ_ONLY) != 0) { return super.WM_KILLFOCUS (wParam, lParam); } /* * Return NULL - Focus notification is * done in WM_COMMAND by CBN_KILLFOCUS. */ return null; }
@Override LRESULT WM_KILLFOCUS (int /*long*/ wParam, int /*long*/ lParam) { LRESULT result = super.WM_KILLFOCUS (wParam, lParam); if (focusItem != null) focusItem.redraw (true); return result; }
@Override LRESULT WM_KILLFOCUS (int /*long*/ wParam, int /*long*/ lParam) { LRESULT result = super.WM_KILLFOCUS (wParam, lParam); /* * Bug in Windows. When focus is lost, Windows does not * redraw the selection properly, leaving the image and * check box appearing selected. The fix is to redraw * the table. */ if (imageList != null || (style & SWT.CHECK) != 0) { OS.InvalidateRect (handle, null, false); } return result; }
@Override LRESULT WM_KILLFOCUS (int /*long*/ wParam, int /*long*/ lParam) { if (ime != null) { LRESULT result = ime.WM_KILLFOCUS (wParam, lParam); if (result != null) return result; } Caret caret = this.caret; LRESULT result = super.WM_KILLFOCUS (wParam, lParam); if (caret != null) caret.killFocus (); return result; }
@Override LRESULT WM_KILLFOCUS (int /*long*/ wParam, int /*long*/ lParam) { int index = (int)/*64*/OS.SendMessage (handle, OS.TB_GETHOTITEM, 0, 0); TBBUTTON lpButton = new TBBUTTON (); int /*long*/ code = OS.SendMessage (handle, OS.TB_GETBUTTON, index, lpButton); if (code != 0) lastFocusId = lpButton.idCommand; return super.WM_KILLFOCUS (wParam, lParam); }
return super.WM_KILLFOCUS (wParam, lParam);