Index: Source/core/page/FocusController.cpp |
diff --git a/Source/core/page/FocusController.cpp b/Source/core/page/FocusController.cpp |
index 3629d5ef3a7601f61ba064e4713743a39faccfe6..c278579cae5a5d6bcda835e6c8bd121c2b20ab2a 100644 |
--- a/Source/core/page/FocusController.cpp |
+++ b/Source/core/page/FocusController.cpp |
@@ -713,6 +713,10 @@ bool FocusController::setFocusedElement(Element* element, PassRefPtr<Frame> newF |
setFocusedFrame(nullptr); |
return false; |
} |
+ |
+ if (type != FocusTypePage) |
+ m_wasFocusedByMouse = type == FocusTypeMouse; |
+ |
setFocusedFrame(newFocusedFrame); |
// Setting the focused node can result in losing our last reft to node when JS event handlers fire. |
@@ -726,6 +730,15 @@ bool FocusController::setFocusedElement(Element* element, PassRefPtr<Frame> newF |
return true; |
} |
+bool FocusController::setWasFocusedByMouse(bool wasFocusedByMouse) |
+{ |
+ if (m_wasFocusedByMouse != wasFocusedByMouse) { |
+ m_wasFocusedByMouse = wasFocusedByMouse; |
+ return true; |
+ } |
+ return false; |
+} |
+ |
void FocusController::setActive(bool active) |
{ |
if (m_isActive == active) |