Bug 599053 - Check for focus in chrome before forwarding IME events; r=smaug a=blocking-fennec
--- a/content/events/src/nsEventStateManager.cpp
+++ b/content/events/src/nsEventStateManager.cpp
@@ -3296,16 +3296,21 @@ TabParent*
nsEventStateManager::GetCrossProcessTarget()
{
return TabParent::GetIMETabParent();
}
PRBool
nsEventStateManager::IsTargetCrossProcess(nsGUIEvent *aEvent)
{
+ // Check to see if there is a focused, editable content in chrome,
+ // in that case, do not forward IME events to content
+ nsIContent *focusedContent = GetFocusedContent();
+ if (focusedContent && focusedContent->IsEditable())
+ return PR_FALSE;
return TabParent::GetIMETabParent() != nsnull;
}
#endif
NS_IMETHODIMP
nsEventStateManager::NotifyDestroyPresContext(nsPresContext* aPresContext)
{
nsIMEStateManager::OnDestroyPresContext(aPresContext);