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

Side by Side Diff: Source/core/html/shadow/SpinButtonElement.h

Issue 196933006: Do not dispatch 'change' events during pressing spin buttons for input[type=number]. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Test code updated Created 6 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) 2006, 2008, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2008, 2010 Apple Inc. All rights reserved.
3 * Copyright (C) 2010 Google Inc. All rights reserved. 3 * Copyright (C) 2010 Google Inc. All rights reserved.
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 29 matching lines...) Expand all
40 Down, 40 Down,
41 Up, 41 Up,
42 }; 42 };
43 43
44 class SpinButtonOwner { 44 class SpinButtonOwner {
45 public: 45 public:
46 virtual ~SpinButtonOwner() { } 46 virtual ~SpinButtonOwner() { }
47 virtual void focusAndSelectSpinButtonOwner() = 0; 47 virtual void focusAndSelectSpinButtonOwner() = 0;
48 virtual bool shouldSpinButtonRespondToMouseEvents() = 0; 48 virtual bool shouldSpinButtonRespondToMouseEvents() = 0;
49 virtual bool shouldSpinButtonRespondToWheelEvents() = 0; 49 virtual bool shouldSpinButtonRespondToWheelEvents() = 0;
50 virtual void spinButtonDidReleaseMouseCapture() = 0;
50 virtual void spinButtonStepDown() = 0; 51 virtual void spinButtonStepDown() = 0;
51 virtual void spinButtonStepUp() = 0; 52 virtual void spinButtonStepUp() = 0;
52 }; 53 };
53 54
54 // The owner of SpinButtonElement must call removeSpinButtonOwner 55 // The owner of SpinButtonElement must call removeSpinButtonOwner
55 // because SpinButtonElement can be outlive SpinButtonOwner 56 // because SpinButtonElement can be outlive SpinButtonOwner
56 // implementation, e.g. during event handling. 57 // implementation, e.g. during event handling.
57 static PassRefPtr<SpinButtonElement> create(Document&, SpinButtonOwner&); 58 static PassRefPtr<SpinButtonElement> create(Document&, SpinButtonOwner&);
58 UpDownState upDownState() const { return m_upDownState; } 59 UpDownState upDownState() const { return m_upDownState; }
59 void releaseCapture(); 60 void releaseCapture();
60 void removeSpinButtonOwner() { m_spinButtonOwner = 0; } 61 void removeSpinButtonOwner() { m_spinButtonOwner = 0; }
61 62
62 void step(int amount); 63 void step(int amount);
63 64
64 virtual bool willRespondToMouseMoveEvents() OVERRIDE; 65 virtual bool willRespondToMouseMoveEvents() OVERRIDE;
65 virtual bool willRespondToMouseClickEvents() OVERRIDE; 66 virtual bool willRespondToMouseClickEvents() OVERRIDE;
66 67
67 void forwardEvent(Event*); 68 void forwardEvent(Event*);
68 69
69 private: 70 private:
70 SpinButtonElement(Document&, SpinButtonOwner&); 71 SpinButtonElement(Document&, SpinButtonOwner&);
71 72
72 virtual void detach(const AttachContext& = AttachContext()) OVERRIDE;
73 virtual bool isSpinButtonElement() const OVERRIDE { return true; } 73 virtual bool isSpinButtonElement() const OVERRIDE { return true; }
74 virtual bool isDisabledFormControl() const OVERRIDE { return shadowHost() && shadowHost()->isDisabledFormControl(); } 74 virtual bool isDisabledFormControl() const OVERRIDE { return shadowHost() && shadowHost()->isDisabledFormControl(); }
75 virtual bool matchesReadOnlyPseudoClass() const OVERRIDE; 75 virtual bool matchesReadOnlyPseudoClass() const OVERRIDE;
76 virtual bool matchesReadWritePseudoClass() const OVERRIDE; 76 virtual bool matchesReadWritePseudoClass() const OVERRIDE;
77 virtual void defaultEventHandler(Event*) OVERRIDE; 77 virtual void defaultEventHandler(Event*) OVERRIDE;
78 virtual void willOpenPopup() OVERRIDE; 78 virtual void willOpenPopup() OVERRIDE;
79 void doStepAction(int); 79 void doStepAction(int);
80 void startRepeatingTimer(); 80 void startRepeatingTimer();
81 void stopRepeatingTimer(); 81 void stopRepeatingTimer();
82 void repeatingTimerFired(Timer<SpinButtonElement>*); 82 void repeatingTimerFired(Timer<SpinButtonElement>*);
83 virtual void setHovered(bool = true) OVERRIDE; 83 virtual void setHovered(bool = true) OVERRIDE;
84 bool shouldRespondToMouseEvents(); 84 bool shouldRespondToMouseEvents();
85 virtual bool isMouseFocusable() const OVERRIDE { return false; } 85 virtual bool isMouseFocusable() const OVERRIDE { return false; }
86 86
87 SpinButtonOwner* m_spinButtonOwner; 87 SpinButtonOwner* m_spinButtonOwner;
88 bool m_capturing; 88 bool m_capturing;
89 UpDownState m_upDownState; 89 UpDownState m_upDownState;
90 UpDownState m_pressStartingState; 90 UpDownState m_pressStartingState;
91 Timer<SpinButtonElement> m_repeatingTimer; 91 Timer<SpinButtonElement> m_repeatingTimer;
92 }; 92 };
93 93
94 DEFINE_TYPE_CASTS(SpinButtonElement, Node, node, toElement(node)->isSpinButtonEl ement(), toElement(node).isSpinButtonElement()); 94 DEFINE_TYPE_CASTS(SpinButtonElement, Node, node, toElement(node)->isSpinButtonEl ement(), toElement(node).isSpinButtonElement());
95 95
96 } // namespace 96 } // namespace
97 97
98 #endif 98 #endif
OLDNEW
« no previous file with comments | « Source/core/html/forms/TextFieldInputType.cpp ('k') | Source/core/html/shadow/SpinButtonElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698