summaryrefslogtreecommitdiffstats
path: root/WebCore/html/HTMLFormControlElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/html/HTMLFormControlElement.cpp')
-rw-r--r--WebCore/html/HTMLFormControlElement.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/WebCore/html/HTMLFormControlElement.cpp b/WebCore/html/HTMLFormControlElement.cpp
index 51b9e20..710cda1 100644
--- a/WebCore/html/HTMLFormControlElement.cpp
+++ b/WebCore/html/HTMLFormControlElement.cpp
@@ -46,11 +46,13 @@
#include "RenderTheme.h"
#include "ScriptEventListener.h"
#include "ValidityState.h"
+#include <limits>
#include <wtf/Vector.h>
namespace WebCore {
using namespace HTMLNames;
+using namespace std;
HTMLFormControlElement::HTMLFormControlElement(const QualifiedName& tagName, Document* document, HTMLFormElement* form)
: HTMLElement(tagName, document)
@@ -548,26 +550,22 @@ RenderTextControl* HTMLTextFormControlElement::textRendererAfterUpdateLayout()
void HTMLTextFormControlElement::setSelectionStart(int start)
{
- if (RenderTextControl* renderer = textRendererAfterUpdateLayout())
- renderer->setSelectionStart(start);
+ setSelectionRange(start, max(start, selectionEnd()));
}
void HTMLTextFormControlElement::setSelectionEnd(int end)
{
- if (RenderTextControl* renderer = textRendererAfterUpdateLayout())
- renderer->setSelectionEnd(end);
+ setSelectionRange(min(end, selectionStart()), end);
}
void HTMLTextFormControlElement::select()
{
- if (RenderTextControl* renderer = textRendererAfterUpdateLayout())
- renderer->select();
+ setSelectionRange(0, numeric_limits<int>::max());
}
void HTMLTextFormControlElement::setSelectionRange(int start, int end)
{
- if (RenderTextControl* renderer = textRendererAfterUpdateLayout())
- renderer->setSelectionRange(start, end);
+ WebCore::setSelectionRange(this, start, end);
}
int HTMLTextFormControlElement::selectionStart()