Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: third_party/WebKit/Source/core/html/HTMLAreaElement.h

Issue 1912863002: Fix image map focus ring painting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * Copyright (C) 2004, 2008, 2009, 2011 Apple Inc. All rights reserved. 4 * Copyright (C) 2004, 2008, 2009, 2011 Apple Inc. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 22 matching lines...) Expand all
33 class HTMLImageElement; 33 class HTMLImageElement;
34 class Path; 34 class Path;
35 35
36 class CORE_EXPORT HTMLAreaElement final : public HTMLAnchorElement { 36 class CORE_EXPORT HTMLAreaElement final : public HTMLAnchorElement {
37 DEFINE_WRAPPERTYPEINFO(); 37 DEFINE_WRAPPERTYPEINFO();
38 public: 38 public:
39 DECLARE_NODE_FACTORY(HTMLAreaElement); 39 DECLARE_NODE_FACTORY(HTMLAreaElement);
40 40
41 bool isDefault() const { return m_shape == Default; } 41 bool isDefault() const { return m_shape == Default; }
42 42
43 bool pointInArea(LayoutPoint, const LayoutSize& containerSize); 43 // |containerObject| in the following functions is an object (normally a Lay outImage)
44 44 // which references the containing image map of this area. There might be mu ltiple
45 LayoutRect computeRect(const LayoutObject*) const; 45 // objects referencing the same map. For these functions, the effective geom etry of
46 Path computePath(const LayoutObject*) const; 46 // this map will be calculated based on the specified container object, e.g. the
47 // rectangle of the default shape will be the border box rect of the contain er object,
48 // and effective zoom factor of the container object will be applied on non- default shape.
49 bool pointInArea(const LayoutPoint&, const LayoutObject* containerObject) co nst;
50 LayoutRect computeAbsoluteRect(const LayoutObject* containerObject) const;
51 Path getPath(const LayoutObject* containerObject) const;
47 52
48 // The parent map's image. 53 // The parent map's image.
49 HTMLImageElement* imageElement() const; 54 HTMLImageElement* imageElement() const;
50 55
51 private: 56 private:
52 explicit HTMLAreaElement(Document&); 57 explicit HTMLAreaElement(Document&);
53 ~HTMLAreaElement(); 58 ~HTMLAreaElement();
54 59
55 void parseAttribute(const QualifiedName&, const AtomicString&, const AtomicS tring&) override; 60 void parseAttribute(const QualifiedName&, const AtomicString&, const AtomicS tring&) override;
56 bool isKeyboardFocusable() const override; 61 bool isKeyboardFocusable() const override;
57 bool isMouseFocusable() const override; 62 bool isMouseFocusable() const override;
58 bool layoutObjectIsFocusable() const override; 63 bool layoutObjectIsFocusable() const override;
59 void updateFocusAppearance(SelectionBehaviorOnFocus) override; 64 void updateFocusAppearance(SelectionBehaviorOnFocus) override;
60 void setFocus(bool) override; 65 void setFocus(bool) override;
61 66
62 enum Shape { Default, Poly, Rect, Circle }; 67 enum Shape { Default, Poly, Rect, Circle };
63 Path getRegion(const LayoutSize&) const; 68 void invalidateCachedPath();
64 void invalidateCachedRegion();
65 69
66 OwnPtr<Path> m_region; 70 mutable OwnPtr<Path> m_path;
67 Vector<double> m_coords; 71 Vector<double> m_coords;
68 LayoutSize m_lastSize;
69 Shape m_shape; 72 Shape m_shape;
70 }; 73 };
71 74
72 } // namespace blink 75 } // namespace blink
73 76
74 #endif // HTMLAreaElement_h 77 #endif // HTMLAreaElement_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698