| 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)
|
|
|