OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) | 2 * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies) |
3 * Copyright (C) 2009 Antonio Gomes <tonikitoo@webkit.org> | 3 * Copyright (C) 2009 Antonio Gomes <tonikitoo@webkit.org> |
4 * | 4 * |
5 * All rights reserved. | 5 * All rights reserved. |
6 * | 6 * |
7 * Redistribution and use in source and binary forms, with or without | 7 * Redistribution and use in source and binary forms, with or without |
8 * modification, are permitted provided that the following conditions | 8 * modification, are permitted provided that the following conditions |
9 * are met: | 9 * are met: |
10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
(...skipping 19 matching lines...) Expand all Loading... |
30 | 30 |
31 #include "core/HTMLNames.h" | 31 #include "core/HTMLNames.h" |
32 #include "core/dom/NodeTraversal.h" | 32 #include "core/dom/NodeTraversal.h" |
33 #include "core/frame/FrameView.h" | 33 #include "core/frame/FrameView.h" |
34 #include "core/frame/LocalFrame.h" | 34 #include "core/frame/LocalFrame.h" |
35 #include "core/frame/Settings.h" | 35 #include "core/frame/Settings.h" |
36 #include "core/html/HTMLAreaElement.h" | 36 #include "core/html/HTMLAreaElement.h" |
37 #include "core/html/HTMLFrameOwnerElement.h" | 37 #include "core/html/HTMLFrameOwnerElement.h" |
38 #include "core/html/HTMLImageElement.h" | 38 #include "core/html/HTMLImageElement.h" |
39 #include "core/layout/LayoutBox.h" | 39 #include "core/layout/LayoutBox.h" |
| 40 #include "core/layout/LayoutView.h" |
40 #include "core/page/FrameTree.h" | 41 #include "core/page/FrameTree.h" |
41 #include "core/page/Page.h" | 42 #include "core/page/Page.h" |
42 #include "platform/geometry/IntRect.h" | 43 #include "platform/geometry/IntRect.h" |
43 | 44 |
44 namespace blink { | 45 namespace blink { |
45 | 46 |
46 using namespace HTMLNames; | 47 using namespace HTMLNames; |
47 | 48 |
48 static void DeflateIfOverlapped(LayoutRect&, LayoutRect&); | 49 static void DeflateIfOverlapped(LayoutRect&, LayoutRect&); |
49 static LayoutRect RectToAbsoluteCoordinates(LocalFrame* initial_frame, | 50 static LayoutRect RectToAbsoluteCoordinates(LocalFrame* initial_frame, |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 container->GetLayoutBox()->ScrollHeight()); | 353 container->GetLayoutBox()->ScrollHeight()); |
353 default: | 354 default: |
354 NOTREACHED(); | 355 NOTREACHED(); |
355 return false; | 356 return false; |
356 } | 357 } |
357 } | 358 } |
358 | 359 |
359 bool CanScrollInDirection(const LocalFrame* frame, WebFocusType type) { | 360 bool CanScrollInDirection(const LocalFrame* frame, WebFocusType type) { |
360 if (!frame->View()) | 361 if (!frame->View()) |
361 return false; | 362 return false; |
| 363 LayoutView* layoutView = frame->ContentLayoutObject(); |
| 364 if (!layoutView) |
| 365 return false; |
362 ScrollbarMode vertical_mode; | 366 ScrollbarMode vertical_mode; |
363 ScrollbarMode horizontal_mode; | 367 ScrollbarMode horizontal_mode; |
364 frame->View()->CalculateScrollbarModes(horizontal_mode, vertical_mode); | 368 layoutView->CalculateScrollbarModes(horizontal_mode, vertical_mode); |
365 if ((type == kWebFocusTypeLeft || type == kWebFocusTypeRight) && | 369 if ((type == kWebFocusTypeLeft || type == kWebFocusTypeRight) && |
366 kScrollbarAlwaysOff == horizontal_mode) | 370 kScrollbarAlwaysOff == horizontal_mode) |
367 return false; | 371 return false; |
368 if ((type == kWebFocusTypeUp || type == kWebFocusTypeDown) && | 372 if ((type == kWebFocusTypeUp || type == kWebFocusTypeDown) && |
369 kScrollbarAlwaysOff == vertical_mode) | 373 kScrollbarAlwaysOff == vertical_mode) |
370 return false; | 374 return false; |
371 LayoutSize size(frame->View()->ContentsSize()); | 375 LayoutSize size(frame->View()->ContentsSize()); |
372 LayoutSize offset(frame->View()->ScrollOffsetInt()); | 376 LayoutSize offset(frame->View()->ScrollOffsetInt()); |
373 LayoutRect rect(frame->View()->VisibleContentRect(kIncludeScrollbars)); | 377 LayoutRect rect(frame->View()->VisibleContentRect(kIncludeScrollbars)); |
374 | 378 |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
689 return rect; | 693 return rect; |
690 } | 694 } |
691 | 695 |
692 HTMLFrameOwnerElement* FrameOwnerElement(FocusCandidate& candidate) { | 696 HTMLFrameOwnerElement* FrameOwnerElement(FocusCandidate& candidate) { |
693 return candidate.IsFrameOwnerElement() | 697 return candidate.IsFrameOwnerElement() |
694 ? ToHTMLFrameOwnerElement(candidate.visible_node) | 698 ? ToHTMLFrameOwnerElement(candidate.visible_node) |
695 : nullptr; | 699 : nullptr; |
696 }; | 700 }; |
697 | 701 |
698 } // namespace blink | 702 } // namespace blink |
OLD | NEW |