OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). | 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). |
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 are | 6 * modification, are permitted provided that the following conditions are |
7 * met: | 7 * met: |
8 * | 8 * |
9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 | 111 |
112 // Converts a AXObjectCache::AXNotification to a WebAXEvent | 112 // Converts a AXObjectCache::AXNotification to a WebAXEvent |
113 static WebAXEvent toWebAXEvent(AXObjectCache::AXNotification notification) | 113 static WebAXEvent toWebAXEvent(AXObjectCache::AXNotification notification) |
114 { | 114 { |
115 // These enums have the same values; enforced in AssertMatchingEnums.cpp. | 115 // These enums have the same values; enforced in AssertMatchingEnums.cpp. |
116 return static_cast<WebAXEvent>(notification); | 116 return static_cast<WebAXEvent>(notification); |
117 } | 117 } |
118 | 118 |
119 ChromeClientImpl::ChromeClientImpl(WebViewImpl* webView) | 119 ChromeClientImpl::ChromeClientImpl(WebViewImpl* webView) |
120 : m_webView(webView) | 120 : m_webView(webView) |
| 121 , m_cursorOverridden(false) |
121 { | 122 { |
122 } | 123 } |
123 | 124 |
124 ChromeClientImpl::~ChromeClientImpl() | 125 ChromeClientImpl::~ChromeClientImpl() |
125 { | 126 { |
126 } | 127 } |
127 | 128 |
128 PassOwnPtrWillBeRawPtr<ChromeClientImpl> ChromeClientImpl::create(WebViewImpl* w
ebView) | 129 PassOwnPtrWillBeRawPtr<ChromeClientImpl> ChromeClientImpl::create(WebViewImpl* w
ebView) |
129 { | 130 { |
130 return adoptPtrWillBeNoop(new ChromeClientImpl(webView)); | 131 return adoptPtrWillBeNoop(new ChromeClientImpl(webView)); |
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
656 } | 657 } |
657 | 658 |
658 void ChromeClientImpl::setCursor(const Cursor& cursor) | 659 void ChromeClientImpl::setCursor(const Cursor& cursor) |
659 { | 660 { |
660 m_lastSetMouseCursorForTesting = cursor; | 661 m_lastSetMouseCursorForTesting = cursor; |
661 setCursor(WebCursorInfo(cursor)); | 662 setCursor(WebCursorInfo(cursor)); |
662 } | 663 } |
663 | 664 |
664 void ChromeClientImpl::setCursor(const WebCursorInfo& cursor) | 665 void ChromeClientImpl::setCursor(const WebCursorInfo& cursor) |
665 { | 666 { |
| 667 if (m_cursorOverridden) |
| 668 return; |
| 669 |
666 #if OS(MACOSX) | 670 #if OS(MACOSX) |
667 // On Mac the mousemove event propagates to both the popup and main window. | 671 // On Mac the mousemove event propagates to both the popup and main window. |
668 // If a popup is open we don't want the main window to change the cursor. | 672 // If a popup is open we don't want the main window to change the cursor. |
669 if (m_webView->hasOpenedPopup()) | 673 if (m_webView->hasOpenedPopup()) |
670 return; | 674 return; |
671 #endif | 675 #endif |
672 if (m_webView->client()) | 676 if (m_webView->client()) |
673 m_webView->client()->didChangeCursor(cursor); | 677 m_webView->client()->didChangeCursor(cursor); |
674 } | 678 } |
675 | 679 |
676 void ChromeClientImpl::setCursorForPlugin(const WebCursorInfo& cursor) | 680 void ChromeClientImpl::setCursorForPlugin(const WebCursorInfo& cursor) |
677 { | 681 { |
678 setCursor(cursor); | 682 setCursor(cursor); |
679 } | 683 } |
680 | 684 |
| 685 void ChromeClientImpl::setCursorOverridden(bool overridden) |
| 686 { |
| 687 m_cursorOverridden = overridden; |
| 688 } |
| 689 |
681 void ChromeClientImpl::postAccessibilityNotification(AXObject* obj, AXObjectCach
e::AXNotification notification) | 690 void ChromeClientImpl::postAccessibilityNotification(AXObject* obj, AXObjectCach
e::AXNotification notification) |
682 { | 691 { |
683 // Alert assistive technology about the accessibility object notification. | 692 // Alert assistive technology about the accessibility object notification. |
684 if (!obj || !obj->document()) | 693 if (!obj || !obj->document()) |
685 return; | 694 return; |
686 | 695 |
687 WebLocalFrameImpl* webframe = WebLocalFrameImpl::fromFrame(obj->document()->
axObjectCacheOwner().frame()); | 696 WebLocalFrameImpl* webframe = WebLocalFrameImpl::fromFrame(obj->document()->
axObjectCacheOwner().frame()); |
688 if (webframe && webframe->client()) | 697 if (webframe && webframe->client()) |
689 webframe->client()->postAccessibilityEvent(WebAXObject(obj), toWebAXEven
t(notification)); | 698 webframe->client()->postAccessibilityEvent(WebAXObject(obj), toWebAXEven
t(notification)); |
690 } | 699 } |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
986 for (const auto& observer : observers) | 995 for (const auto& observer : observers) |
987 observer->willOpenPopup(); | 996 observer->willOpenPopup(); |
988 } | 997 } |
989 | 998 |
990 FloatSize ChromeClientImpl::elasticOverscroll() const | 999 FloatSize ChromeClientImpl::elasticOverscroll() const |
991 { | 1000 { |
992 return m_webView->elasticOverscroll(); | 1001 return m_webView->elasticOverscroll(); |
993 } | 1002 } |
994 | 1003 |
995 } // namespace blink | 1004 } // namespace blink |
OLD | NEW |