void wxControlContainer::HandleOnFocus(wxFocusEvent& event) { wxLogTrace(_T("focus"), _T("OnFocus on wxPanel 0x%08lx, name: %s"), (unsigned long)m_winParent->GetHandle(), m_winParent->GetName().c_str() ); DoSetFocus(); event.Skip(); }
void wxControlContainer::HandleOnFocus(wxFocusEvent& event) { wxLogTrace(TRACE_FOCUS, wxT("OnFocus on wxPanel 0x%p, name: %s"), m_winParent->GetHandle(), m_winParent->GetName().c_str() ); DoSetFocus(); event.Skip(); }
static void MoveFocus( Window w, FvwmWindow *Fw, Bool FocusByMouse, Bool NoWarp, Bool do_force) { FvwmWindow *ffw_old = get_focus_window(); Bool accepts_input_focus = do_accept_input_focus(Fw); #if 0 FvwmWindow *ffw_new; #endif if (!do_force && Fw == ffw_old) { if (ffw_old) { #if 0 /* RBW - 2001/08/17 - For a MouseFocusClickRaises win, we must not drop the grab, since the (potential) click hasn't happened yet. */ if ((!HAS_SLOPPY_FOCUS(ffw_old) && !HAS_MOUSE_FOCUS(ffw_old)) || !DO_RAISE_MOUSE_FOCUS_CLICK(ffw_old)) { focus_grab_buttons(ffw_old, True); } #else focus_grab_buttons(ffw_old, True); #endif } return; } DoSetFocus(w, Fw, FocusByMouse, NoWarp); if (get_focus_window() != ffw_old) { if (accepts_input_focus) { #if 0 /* RBW - Ibid. */ ffw_new = get_focus_window(); if (ffw_new) { if ((!HAS_SLOPPY_FOCUS(ffw_new) && !HAS_MOUSE_FOCUS(ffw_new)) || !DO_RAISE_MOUSE_FOCUS_CLICK(ffw_new)) { focus_grab_buttons(ffw_new, True); } } #else focus_grab_buttons(get_focus_window(), True); #endif } focus_grab_buttons(ffw_old, False); } }
void Ctrl::ActivateWnd() { GuiLock __; // notification, don't set physical focus here LLOG("ActivateWnd " << Name()); Ptr<Ctrl> nfocusCtrl = this; Ptr<Ctrl> pfocusCtrl = focusCtrl; LLOG("About to set focus: " << UPP::Name(nfocusCtrl)); DoDeactivate(pfocusCtrl, nfocusCtrl); focusCtrl = nfocusCtrl; focusCtrlWnd = this; DoKillFocus(pfocusCtrl, nfocusCtrl); DoSetFocus(pfocusCtrl, nfocusCtrl, true); LLOG("Focus: " << UPP::Name(focusCtrl) << " FocusWnd:" << UPP::Name(focusCtrlWnd)); }
bool Ctrl::SetFocus0(bool activate) { GuiLock __; USRLOG(" SETFOCUS " << Desc(this)); LLOG("Ctrl::SetFocus " << Desc(this)); LLOG("focusCtrlWnd " << UPP::Name(focusCtrlWnd)); LLOG("Ctrl::SetFocus0 -> deferredSetFocus = NULL; was: " << UPP::Name(defferedSetFocus)); defferedSetFocus = NULL; if(focusCtrl == this) return true; if(!IsOpen() || !IsEnabled() || !IsVisible()) return false; Ptr<Ctrl> pfocusCtrl = focusCtrl; Ptr<Ctrl> topwindow = GetTopWindow(); Ptr<Ctrl> topctrl = GetTopCtrl(); Ptr<Ctrl> _this = this; if(!topwindow) topwindow = topctrl; LLOG("SetFocus -> SetWndFocus: topwindow = " << UPP::Name(topwindow) << ", focusCtrlWnd = " << UPP::Name(focusCtrlWnd)); if(!topwindow->HasWndFocus() && !topwindow->SetWndFocus()) return false;// cxl 31.1.2004 #ifdef PLATFORM_OSX11 // ugly temporary hack - popups not behaving right in MacOS // before 2012-9-2 was #ifdef GUI_X11, but that caused issues in most linux distros (cxl) // as parent window of popup always manages focus/keyboard for popup in X11 if(activate) // Dolik/fudadmin 2011-5-1 topctrl->SetWndForeground(); #else topwindow->SetWndForeground(); // cxl 2007-4-27 #endif LLOG("SetFocus -> focusCtrl = this: " << FormatIntHex(this) << ", _this = " << FormatIntHex(~_this) << ", " << UPP::Name(_this)); focusCtrl = _this; focusCtrlWnd = topwindow; DoKillFocus(pfocusCtrl, _this); LLOG("SetFocus 2"); DoDeactivate(pfocusCtrl, _this); DoSetFocus(pfocusCtrl, _this, activate); if(topwindow) lastActiveWnd = topwindow; return true; }
void MotifUI::SetFocus() { DoSetFocus(_w); }
FX_BOOL CFWL_NoteDriver::DispatchMessage(CFWL_Message* pMessage, IFWL_Widget* pMessageForm) { FX_BOOL bRet = FALSE; switch (pMessage->GetClassID()) { case FWL_MSGHASH_Activate: { bRet = DoActivate(static_cast<CFWL_MsgActivate*>(pMessage), pMessageForm); break; } case FWL_MSGHASH_Deactivate: { bRet = DoDeactivate(static_cast<CFWL_MsgDeactivate*>(pMessage), pMessageForm); break; } case FWL_MSGHASH_SetFocus: { bRet = DoSetFocus(static_cast<CFWL_MsgSetFocus*>(pMessage), pMessageForm); break; } case FWL_MSGHASH_KillFocus: { bRet = DoKillFocus(static_cast<CFWL_MsgKillFocus*>(pMessage), pMessageForm); break; } case FWL_MSGHASH_Key: { bRet = DoKey(static_cast<CFWL_MsgKey*>(pMessage), pMessageForm); break; } case FWL_MSGHASH_Mouse: { bRet = DoMouse(static_cast<CFWL_MsgMouse*>(pMessage), pMessageForm); break; } case FWL_MSGHASH_MouseWheel: { bRet = DoWheel(static_cast<CFWL_MsgMouseWheel*>(pMessage), pMessageForm); break; } case FWL_MSGHASH_Size: { bRet = DoSize(static_cast<CFWL_MsgSize*>(pMessage)); break; } case FWL_MSGHASH_Cursor: { bRet = TRUE; break; } case FWL_MSGHASH_WindowMove: { bRet = DoWindowMove(static_cast<CFWL_MsgWindowMove*>(pMessage), pMessageForm); break; } case FWL_MSGHASH_DropFiles: { bRet = DoDragFiles(static_cast<CFWL_MsgDropFiles*>(pMessage), pMessageForm); break; } default: { bRet = TRUE; break; } } if (bRet) { IFWL_WidgetDelegate* pDelegate = pMessage->m_pDstTarget->SetDelegate(NULL); if (pDelegate) { pDelegate->OnProcessMessage(pMessage); } } return bRet; }