| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2008 Nuanti Ltd. | 3 * Copyright (C) 2008 Nuanti Ltd. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 } | 155 } |
| 156 } | 156 } |
| 157 | 157 |
| 158 if (LocalDOMWindow* window = document->domWindow()) | 158 if (LocalDOMWindow* window = document->domWindow()) |
| 159 window->dispatchEvent(Event::create(focused ? EventTypeNames::focus : Ev
entTypeNames::blur)); | 159 window->dispatchEvent(Event::create(focused ? EventTypeNames::focus : Ev
entTypeNames::blur)); |
| 160 if (focused && document->focusedElement()) { | 160 if (focused && document->focusedElement()) { |
| 161 RefPtrWillBeRawPtr<Element> focusedElement(document->focusedElement()); | 161 RefPtrWillBeRawPtr<Element> focusedElement(document->focusedElement()); |
| 162 focusedElement->setFocus(true); | 162 focusedElement->setFocus(true); |
| 163 focusedElement->dispatchFocusEvent(0, FocusTypePage); | 163 focusedElement->dispatchFocusEvent(0, FocusTypePage); |
| 164 if (focusedElement == document->focusedElement()) { | 164 if (focusedElement == document->focusedElement()) { |
| 165 document->focusedElement()->dispatchFocusInEvent(EventTypeNames::foc
usin, 0); | 165 document->focusedElement()->dispatchFocusInEvent(EventTypeNames::foc
usin, 0, FocusTypePage); |
| 166 if (focusedElement == document->focusedElement()) | 166 if (focusedElement == document->focusedElement()) |
| 167 document->focusedElement()->dispatchFocusInEvent(EventTypeNames:
:DOMFocusIn, 0); | 167 document->focusedElement()->dispatchFocusInEvent(EventTypeNames:
:DOMFocusIn, 0, FocusTypePage); |
| 168 } | 168 } |
| 169 } | 169 } |
| 170 } | 170 } |
| 171 | 171 |
| 172 static inline bool hasCustomFocusLogic(Element* element) | 172 static inline bool hasCustomFocusLogic(Element* element) |
| 173 { | 173 { |
| 174 return element->isHTMLElement() && toHTMLElement(element)->hasCustomFocusLog
ic(); | 174 return element->isHTMLElement() && toHTMLElement(element)->hasCustomFocusLog
ic(); |
| 175 } | 175 } |
| 176 | 176 |
| 177 #if ENABLE(ASSERT) | 177 #if ENABLE(ASSERT) |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 } | 283 } |
| 284 } | 284 } |
| 285 | 285 |
| 286 RefPtr<LocalFrame> newFocusedFrame = (frame && frame->isLocalFrame()) ? toLo
calFrame(frame.get()) : 0; | 286 RefPtr<LocalFrame> newFocusedFrame = (frame && frame->isLocalFrame()) ? toLo
calFrame(frame.get()) : 0; |
| 287 if (newFocusedFrame && newFocusedFrame->view()) { | 287 if (newFocusedFrame && newFocusedFrame->view()) { |
| 288 RefPtrWillBeRawPtr<Document> document = newFocusedFrame->document(); | 288 RefPtrWillBeRawPtr<Document> document = newFocusedFrame->document(); |
| 289 Element* focusedElement = document ? document->focusedElement() : 0; | 289 Element* focusedElement = document ? document->focusedElement() : 0; |
| 290 if (focusedElement) { | 290 if (focusedElement) { |
| 291 focusedElement->dispatchFocusEvent(0, FocusTypePage); | 291 focusedElement->dispatchFocusEvent(0, FocusTypePage); |
| 292 if (focusedElement == document->focusedElement()) { | 292 if (focusedElement == document->focusedElement()) { |
| 293 document->focusedElement()->dispatchFocusInEvent(EventTypeNames:
:focusin, 0); | 293 document->focusedElement()->dispatchFocusInEvent(EventTypeNames:
:focusin, 0, FocusTypePage); |
| 294 if (focusedElement == document->focusedElement()) | 294 if (focusedElement == document->focusedElement()) |
| 295 document->focusedElement()->dispatchFocusInEvent(EventTypeNa
mes::DOMFocusIn, 0); | 295 document->focusedElement()->dispatchFocusInEvent(EventTypeNa
mes::DOMFocusIn, 0, FocusTypePage); |
| 296 } | 296 } |
| 297 } | 297 } |
| 298 } | 298 } |
| 299 | 299 |
| 300 setFocusedFrame(frame); | 300 setFocusedFrame(frame); |
| 301 } | 301 } |
| 302 | 302 |
| 303 Frame* FocusController::focusedOrMainFrame() const | 303 Frame* FocusController::focusedOrMainFrame() const |
| 304 { | 304 { |
| 305 if (Frame* frame = focusedFrame()) | 305 if (Frame* frame = focusedFrame()) |
| (...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 919 startingRect = nodeRectInAbsoluteCoordinates(container, true /* ignore b
order */); | 919 startingRect = nodeRectInAbsoluteCoordinates(container, true /* ignore b
order */); |
| 920 container = scrollableEnclosingBoxOrParentFrameForNodeInDirection(type,
container); | 920 container = scrollableEnclosingBoxOrParentFrameForNodeInDirection(type,
container); |
| 921 if (container && container->isDocumentNode()) | 921 if (container && container->isDocumentNode()) |
| 922 toDocument(container)->updateLayoutIgnorePendingStylesheets(); | 922 toDocument(container)->updateLayoutIgnorePendingStylesheets(); |
| 923 } while (!consumed && container); | 923 } while (!consumed && container); |
| 924 | 924 |
| 925 return consumed; | 925 return consumed; |
| 926 } | 926 } |
| 927 | 927 |
| 928 } // namespace blink | 928 } // namespace blink |
| OLD | NEW |