+2014-03-16 Andreas Kling <akling@apple.com>
+
+ HTMLInputElement::defaultEventHandler() shouldn't force style updates.
+ <https://webkit.org/b/130303>
+
+ Move the updateStyleIfNeeded() call down to TextFieldInputType instead
+ of doing it for every HTMLInputEvent.
+
+ There might be a better way to do this; we only want to know about this
+ specific element's renderer, and don't need the rest of the tree.
+ This is still an easy hack to avoid a lot of unnecessary work.
+
+ Reviewed by Anders Carlsson.
+
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::defaultEventHandler):
+ * html/TextFieldInputType.cpp:
+ (WebCore::TextFieldInputType::forwardEvent):
+
2014-03-17 Brent Fulgham <bfulgham@apple.com>
[WebVTT] Extending WebVTT Rendering with Regions
return;
}
- if (element().renderer() && (event->isMouseEvent() || event->isDragEvent() || event->eventInterface() == WheelEventInterfaceType || event->type() == eventNames().blurEvent || event->type() == eventNames().focusEvent)) {
- RenderTextControlSingleLine* renderTextControl = toRenderTextControlSingleLine(element().renderer());
- if (event->type() == eventNames().blurEvent) {
- if (RenderTextControlInnerBlock* innerTextRenderer = innerTextElement()->renderer()) {
- if (RenderLayer* innerLayer = innerTextRenderer->layer()) {
- IntSize scrollOffset(!renderTextControl->style().isLeftToRightDirection() ? innerLayer->scrollWidth() : 0, 0);
- innerLayer->scrollToOffset(scrollOffset, RenderLayer::ScrollOffsetClamped);
+ if (event->isMouseEvent()
+ || event->isDragEvent()
+ || event->eventInterface() == WheelEventInterfaceType
+ || event->type() == eventNames().blurEvent
+ || event->type() == eventNames().focusEvent)
+ {
+ element().document().updateStyleIfNeededForNode(element());
+
+ if (element().renderer()) {
+ RenderTextControlSingleLine* renderTextControl = toRenderTextControlSingleLine(element().renderer());
+ if (event->type() == eventNames().blurEvent) {
+ if (RenderTextControlInnerBlock* innerTextRenderer = innerTextElement()->renderer()) {
+ if (RenderLayer* innerLayer = innerTextRenderer->layer()) {
+ IntSize scrollOffset(!renderTextControl->style().isLeftToRightDirection() ? innerLayer->scrollWidth() : 0, 0);
+ innerLayer->scrollToOffset(scrollOffset, RenderLayer::ScrollOffsetClamped);
+ }
}
- }
- renderTextControl->capsLockStateMayHaveChanged();
- } else if (event->type() == eventNames().focusEvent)
- renderTextControl->capsLockStateMayHaveChanged();
+ renderTextControl->capsLockStateMayHaveChanged();
+ } else if (event->type() == eventNames().focusEvent)
+ renderTextControl->capsLockStateMayHaveChanged();
- element().forwardEvent(event);
+ element().forwardEvent(event);
+ }
}
}