Timeline
Oct 7, 2003:
- 6:49 PM Changeset in webkit [5146] by
-
- 5 edits in trunk/WebCore
Fix for link dragging regression in the titles of links. More accessibility
improvements.
Reviewed by darin
- khtml/khtml_part.cpp: (KHTMLPart::text):
- kwq/KWQAccObject.mm: (-[KWQAccObject role]): (-[KWQAccObject roleDescription]): (-[KWQAccObject helpText]): (-[KWQAccObject textUnderElement]): (-[KWQAccObject value]): (-[KWQAccObject title]): (-[KWQAccObject accessibilityIsIgnored]): (-[KWQAccObject accessibilityAttributeValue:]):
- kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]):
- 3:23 PM Changeset in webkit [5145] by
-
- 19 edits in trunk/WebCore
Reviewed by Darin
Fix for these bugs:
<rdar://problem/3443296>: REGRESSION: pop-up menu gets focus, but once it has
focus doesn't work right
<rdar://problem/3444873>: Select widgets that use list views do not take part in tab order
<rdar://problem/3446306>: Text area form widgets do not accept DOM focus correctly
<rdar://problem/3446323>: Using keyboard to work popup button select form
widget causes a crash
The intention of this patch is to add keyboard navigation support for
HTML form select widgets. This includes the two visual representations
for these widgets: popup buttons and lists. Many keyboard, focus, and
tabbing fixes are included in this work, as indicated below.
- khtml/html/html_formimpl.cpp: (HTMLSelectElementImpl::defaultEventHandler): Added. Submit form when return or enter key is pressed when focused on a select widget.
- khtml/html/html_formimpl.h: Make HTMLSelectElementImpl a friend class of HTMLInputElementImpl. This is done so that an HTMLSelectElementImpl can call the private method which simulates a form submit. Also add declaration of defaultEventHandler function.
- kwq/KWQButton.h: Clean up focusPolicy declaration.
- kwq/KWQComboBox.h: Add focusPolicy declaration.
- kwq/KWQComboBox.mm: (QComboBox::focusPolicy): Added. Widget will focus if full keyboard access is on. (-[KWQPopUpButtonCell trackMouse:inRect:ofView:untilMouseUp:]): Now calls sendFakeEventsAfterWidgetTracking instead of doFakeMouseUpAfterWidgetTracking now that name has changed. (-[KWQPopUpButton becomeFirstResponder]): Added. Needed for setting focus correctly. (-[KWQPopUpButton resignFirstResponder]): Ditto. (-[KWQPopUpButton nextKeyView]): Added. Makes tabbing work correctly for this widget. (-[KWQPopUpButton previousKeyView]): Ditto. (-[KWQPopUpButton nextValidKeyView]): Ditto. (-[KWQPopUpButton previousValidKeyView]): Ditto.
- kwq/KWQKHTMLPart.h: Change name of doFakeMouseUpAfterWidgetTracking to sendFakeEventsAfterWidgetTracking now that it handles key events as well.
- kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::sendFakeEventsAfterWidgetTracking): Name change as noted above. Also handles sending simulated key up events.
- kwq/KWQLineEdit.h: (QLineEdit::checksDescendantsForFocus): Added. This is a big part of the fiz for <rdar://problem/3446306>.
- kwq/KWQListBox.h: (QListBox::checksDescendantsForFocus): Ditto. Yes for this widget.
- kwq/KWQListBox.mm: (QListBox::focusPolicy): Added. Widget will focus if full keyboard access is on. (-[KWQListBoxScrollView becomeFirstResponder]): Added. Needed for setting focus correctly. This sets the focus to its document view. (-[KWQTableView becomeFirstResponder]): Added. Needed for setting focus correctly. (-[KWQTableView resignFirstResponder]): Added. Needed for setting focus correctly. (-[KWQTableView nextKeyView]): Added. Makes tabbing work correctly for this widget. (-[KWQTableView previousKeyView]): Ditto. (-[KWQTableView nextValidKeyView]): Ditto. (-[KWQTableView previousValidKeyView]): Ditto. (-[KWQTableView _KWQ_setKeyboardFocusRingNeedsDisplay]): Added.
- kwq/KWQTextArea.mm: (-[KWQTextAreaTextView becomeFirstResponder]): Other part of fix for <rdar://problem/3446306>. The recursion guards were bad and wrong. The checksDescendantsForFocus improvement prevents the erroneous recursion from happening.
- kwq/KWQTextEdit.h: (QTextEdit::checksDescendantsForFocus): Added. Yes for this widget.
- kwq/KWQWidget.h: (QWidget::checksDescendantsForFocus): Added. No by default.
- kwq/KWQWidget.mm: (QWidget::hasFocus): Now uses checksDescendantsForFocus to perform proper checks for views that may have a subview which is first responder.
- 1:15 PM Changeset in webkit [5144] by
-
- 9 edits in trunk/WebCore
Fix for 3363421, event handlers could be triggered for content outside an overflow:hidden
area. The layer checks that test for intersection/point containment need to only include
layers with overhanging floats if the element is overflow:visible.
Fix for 3366801, assignment to scrollLeft/Top of an overflow:hidden layer makes the layer
disappear. overflow:hidden blocks actually were never computing their scroll dimensions,
and so had bogus answers for those values.
Fix for 3366686, no reliable scrollHeight/Width reporting for overflow:hidden or
overflow:visible elements. The former was caused by the same bug as 3366801. The
latter was just me using the wrong method (clientWidth/Height instead of
overflowWidth/Height).
This patch also tightens the assignment to scrollLeft/Top to not do anything if you don't
have an overflow value other than visible.
Reviewed by darin
- khtml/ecma/kjs_dom.cpp: (DOMNode::putValue):
- khtml/rendering/render_block.cpp: (khtml::RenderBlock::layoutBlock):
- khtml/rendering/render_flexbox.cpp: (khtml::RenderFlexibleBox::layoutBlock):
- khtml/rendering/render_layer.cpp: (RenderLayer::RenderLayer): (RenderLayer::scrollToOffset): (RenderLayer::scrollWidth): (RenderLayer::scrollHeight): (RenderLayer::computeScrollDimensions): (RenderLayer::updateScrollInfoAfterLayout): (RenderLayer::intersectsDamageRect): (RenderLayer::containsPoint):
- khtml/rendering/render_layer.h:
- khtml/rendering/render_object.cpp: (RenderObject::scrollWidth): (RenderObject::scrollHeight):
- khtml/rendering/render_object.h:
- 10:43 AM Changeset in webkit [5143] by
-
- 3 edits in trunk/WebCore
Reviewed by Chris.
- fixed some exceptions I was seeing with my recent text change
- khtml/khtml_part.cpp: (KHTMLPart::text): Return an empty string for a null range rather than raising an exception. (KHTMLPart::selection): Return a null range rather than raising an exception if there is no selection.
- 8:49 AM Changeset in webkit [5142] by
-
- 4 edits in trunk/WebCore
Reviewed by Dave.
- removed code that mutates \n into a space so we can pass more W3C DOM Level 1 Core tests
- khtml/rendering/bidi.cpp: (khtml::addRun): Treat \n as a space. (khtml::RenderBlock::computeHorizontalPositionsForLine): Treat \n as a space. (khtml::RenderBlock::findNextLineBreak): Treat \n outside <pre> as a space. Removed code that mutates the \n into a space.
- khtml/rendering/render_text.cpp: (RenderText::trimmedMinMaxWidth): Treat \n outside <pre> as a space. (RenderText::calcMinMaxWidth): Treat \n outside <pre> as a space. Removed code that mutates the \n into a space. (RenderText::position): Detect a <br> with isBR instead of assuming a 1-character string with a \n in it is a <br>.
Oct 6, 2003:
- 9:43 PM Changeset in webkit [5141] by
-
- 23 edits in trunk/WebCore
Several fixes preparing for the incremental repainting patch to be enabled.
(1) Make layers update their positions after layout instead of during layout or
during painting.
(2) Fix a regression from the overflow:hidden body quirk landing. Make sure repaint()
understands that quirk exists and avoids clipping when it shouldn't.
(3) Fix a regression from the scrollbar improvements. The vertical scrollbar repainted
on every layout.
(4) Make sure outside list bullets are repainted when a list item needs to repaint.
(5) A whole bunch of INCREMENTAL_REPAINTING code that isn't turned on yet.
Reviewed by kocienda
- khtml/khtmlview.cpp: (KHTMLViewPrivate::KHTMLViewPrivate): (KHTMLViewPrivate::reset): (KHTMLView::resetScrollBars): (KHTMLView::needsFullRepaint):
- khtml/khtmlview.h:
- khtml/rendering/bidi.cpp: (khtml::RenderBlock::layoutInlineChildren):
- khtml/rendering/render_block.cpp: (khtml::RenderBlock::layoutBlock): (khtml::RenderBlock::layoutBlockChildren): (khtml::RenderBlock::getAbsoluteRepaintRectIncludingFloats): (khtml::RenderBlock::repaintFloatingDescendants): (khtml::RenderBlock::repaintObjectsBeforeLayout):
- khtml/rendering/render_block.h:
- khtml/rendering/render_box.cpp: (RenderBox::computeAbsoluteRepaintRect): (RenderBox::repaintDuringLayoutIfMoved):
- khtml/rendering/render_box.h:
- khtml/rendering/render_canvas.cpp: (RenderCanvas::layout):
- khtml/rendering/render_canvas.h: (khtml::RenderCanvas::hasOverhangingFloats):
- khtml/rendering/render_flexbox.cpp: (khtml::RenderFlexibleBox::layoutBlock): (khtml::RenderFlexibleBox::layoutHorizontalBox): (khtml::RenderFlexibleBox::layoutVerticalBox): (khtml::RenderFlexibleBox::placeChild):
- khtml/rendering/render_flexbox.h:
- khtml/rendering/render_flow.cpp: (RenderFlow::getAbsoluteRepaintRect):
- khtml/rendering/render_image.cpp: (RenderImage::setPixmap): (RenderImage::layout):
- khtml/rendering/render_layer.cpp: (RenderLayer::RenderLayer): (RenderLayer::computeRepaintRects): (RenderLayer::updateLayerPositions): (RenderLayer::updateLayerPosition): (RenderLayer::checkScrollbarsAfterLayout): (RenderLayer::paintLayer): (RenderLayer::calculateClipRects): (RenderLayer::calculateRects):
- khtml/rendering/render_layer.h: (khtml::RenderLayer::relativePositionOffset):
- khtml/rendering/render_list.cpp: (RenderListItem::getAbsoluteRepaintRect):
- khtml/rendering/render_list.h: (khtml::RenderListMarker::listImage):
- khtml/rendering/render_object.cpp: (RenderObject::repaint): (RenderObject::repaintRectangle): (RenderObject::repaintAfterLayoutIfNeeded): (RenderObject::repaintDuringLayoutIfMoved): (RenderObject::repaintFloatingDescendants): (RenderObject::checkForRepaintDuringLayout): (RenderObject::repaintObjectsBeforeLayout): (RenderObject::getAbsoluteRepaintRectIncludingFloats): (RenderObject::container):
- khtml/rendering/render_object.h:
- khtml/rendering/render_table.cpp: (RenderTable::layout):
- kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget):
- 5:01 PM Changeset in webkit [5140] by
-
- 7 edits in trunk/WebCore
Reviewed by Ken.
- preparation for the upcoming whitespace patch; refactored some of the code that extracts text
- khtml/khtml_part.h: Added text() member function.
- khtml/khtml_part.cpp: (KHTMLPart::text): Added. Refactored from selectedText; takes a DOM::Range as a parameter. Also added code to change newlines to spaces when extracting text from the DOM. (KHTMLPart::selectedText): Now calls text(). (KHTMLPart::selection): Removed stray declaration.
- kwq/KWQAccObject.mm: (-[KWQAccObject value]): Changed to call KHTMLPart::text.
- kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): Changed to call KHTMLPart::text instead of doing it ourselves.
- kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::attributedString): Added code to change change '\n' newlines to spaces when extracting text from the DOM.
- 1:28 PM Changeset in webkit [5139] by
-
- 5 edits in trunk/WebCore
Reviewed by Ken.
- fixed 3444255 - REGRESSION: www.aa.com crashes (innerHTML)
- khtml/html/html_elementimpl.cpp: (HTMLElementImpl::createContextualFragment): Keep the fragment ref'd since the tokenizer will ref and deref it. Then turn TreeShared's evil against itself to get the fragment back in the floating 0-ref state.
- khtml/html/html_elementimpl.h: Remove stray whitespace.
- khtml/html/htmlparser.cpp: (KHTMLParser::KHTMLParser): Initialize current to 0 in the other constructor too.
- 9:01 AM Changeset in webkit [5138] by
-
- 1 edit in trunk/WebKit/ChangeLog
Fixed a newline.
- 8:50 AM Changeset in webkit [5137] by
-
- 20 edits in trunk
- kjs/create_hash_table: Remove stray semicolon.
- kjs/array_object.lut.h:
- kjs/date_object.lut.h:
- kjs/lexer.lut.h:
- kjs/math_object.lut.h:
- kjs/number_object.lut.h:
- kjs/string_object.lut.h: Regenerated.
WebCore:
- khtml/ecma/kjs_css.lut.h:
- khtml/ecma/kjs_dom.lut.h:
- khtml/ecma/kjs_events.lut.h:
- khtml/ecma/kjs_html.lut.h:
- khtml/ecma/kjs_navigator.lut.h:
- khtml/ecma/kjs_range.lut.h:
- khtml/ecma/kjs_traversal.lut.h:
- khtml/ecma/kjs_views.lut.h:
- khtml/ecma/kjs_window.lut.h: Regenerated, without stray semicolon.
Oct 3, 2003:
- 4:24 PM Changeset in webkit [5136] by
-
- 3 edits in trunk/WebKit
Fix part of 3438071. Creating an instance of WebPreferences using init
will do the expected thing: that is, create a new instance! We used to
always return standardPreferences.
Reviewed by Chris.
- WebView.subproj/WebPreferences.m: (-[WebPreferences init]): (+[WebPreferences standardPreferences]):
- 3:38 PM Changeset in webkit [5135] by
-
- 3 edits in trunk
- updated layout tests for recent WebTextRenderer changes
- layout-tests/apple-only/base/www.cnn.com/index-expected.txt:
- layout-tests/apple-only/base/www.sun.com/index-expected.txt:
- layout-tests/css1/font_properties/font_weight-expected.txt:
- 3:32 PM Changeset in webkit [5134] by
-
- 2 edits in trunk/WebKit
Fix for numerous regressions caused by an inadvertent renaming of the recursiveDisplay
override method.
Reviewed by darin
- WebView.subproj/WebHTMLView.m: (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
- 2:57 PM Changeset in webkit [5133] by
-
- 2 edits in trunk/WebKit
Fixed some edge case issue (control characters after end of word) with our rounding hack.
Reviewed by Darin.
- WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startGlyph:endGlyph:numGlyphs:]):
- 2:51 PM Changeset in webkit [5132] by
-
- 3 edits1 delete in trunk/WebCore
Removed eastCursor.tiff because it was added by mistake.
- Resources/eastCursor.tiff: Removed.
- WebCore.pbproj/project.pbxproj:
- 2:49 PM Changeset in webkit [5131] by
-
- 7 edits in trunk/WebCore
Reviewed by Richard.
- fixed 3398420 - crash when creating a new document.body object in <body>
Also included David Faure's improvement to throw an exception.
- khtml/html/html_documentimpl.cpp: (HTMLDocumentImpl::setBody): Don't remove the body when null is passed in, as this means type error at the higher level, so throw an exception.
- khtml/html/htmlparser.cpp: (KHTMLParser::KHTMLParser): Initialize current to 0. (KHTMLParser::setCurrent): Ref new current and deref old; we need to keep it ref'd because script execution could drop the current node on the floor. (KHTMLParser::reset): Use setCurrent. (KHTMLParser::insertNode): Likewise. (KHTMLParser::reopenResidualStyleTags): Likewise. (KHTMLParser::popOneBlock): Likewise. (KHTMLParser::finished): Likewise.
- khtml/html/htmlparser.h: Prototype setCurrent.
- 2:46 PM Changeset in webkit [5130] by
-
- 14 edits in trunk/WebCore
Ran compress-tiffs on new cursor images.
- Resources/eastCursor.tiff:
- Resources/eastResizeCursor.tiff:
- Resources/helpCursor.tiff:
- Resources/moveCursor.tiff:
- Resources/northEastResizeCursor.tiff:
- Resources/northResizeCursor.tiff:
- Resources/northWestResizeCursor.tiff:
- Resources/southEastResizeCursor.tiff:
- Resources/southResizeCursor.tiff:
- Resources/southWestResizeCursor.tiff:
- Resources/waitCursor.tiff:
- Resources/westResizeCursor.tiff:
- 11:46 AM Changeset in webkit [5129] by
-
- 11 edits in trunk
WebCore:
Reviewed by Darin, with much help from Maciej and Hyatt
Fix for these bugs:
<rdar://problem/3441321>: Form buttons do not respond to key events when focused
<rdar://problem/3441060>: Form buttons do not scroll to view when focused
- khtml/html/html_formimpl.cpp: (HTMLInputElementImpl::simulateMouseClickForEvent): Added helper to simulate mouse clicks in elements. Used to trigger button actions in response to keyboard events. (HTMLInputElementImpl::defaultEventHandler): Improved handler to process key press events for radio, checkbox, image, reset, and submit buttons.
- khtml/html/html_formimpl.h: Added simulateMouseClickForEvent function.
- khtml/xml/dom2_eventsimpl.h: (DOM::EventImpl::isKeyboardEvent): Added type check virtual function. (DOM::KeyEventImpl::isKeyboardEvent): Ditto.
- kwq/KWQButton.h:
- kwq/KWQButton.mm: (-[KWQButton simulateClick]): New method. This makes AppKit do a button click programatically for button types. For <input type=image>, we just simulate a the click in the DOM since there is no real "clickable" AppKit widget. (-[KWQButton becomeFirstResponder]): Fixes the button scroll to visible when focused issue. (-[KWQButton resignFirstResponder]): Correctly give up focus when user clicks into the page body when a button has the focus. (QButton::simulateClick): QWidget bridge to the KWQButton simulateClick method.
WebKit:
Reviewed by Darin, with much help from Maciej and Hyatt
Fix for this bug:
<rdar://problem/3441321>: Form buttons do not respond to key events when focused
- WebView.subproj/WebFrameView.m: (-[WebFrameView _firstResponderIsControl]): Added to tell if the focus is on a form control. (-[WebFrameView keyDown:]): Call new _firstResponderIsControl method to see whether space bar key events should propagate. Adding this check keeps us from blocking the event here and allows AppKit to handle it.
- WebView.subproj/WebFrameViewPrivate.h: Add new _firstResponderIsControl method.
- 11:40 AM Changeset in webkit [5128] by
-
- 6 edits in trunk/WebCore
Removing redundant layouts and adding a few !needsLayout and !normalChildNeedsLayout
checks to prevent extra layouts.
Also, fixing the recalcStyle changed() bottleneck to go through view's layout and to
not do a full repaint. The layout method will then do the right thing (full repaint
without INCREMENTAL_REPAINTING turned on, the precise repainting needed otherwise).
Reviewed by darin
- khtml/html/html_tableimpl.cpp: (HTMLTableElementImpl::parseAttribute):
- khtml/rendering/render_block.cpp:
- khtml/rendering/render_container.cpp: (RenderContainer::appendChildNode): (RenderContainer::insertChildNode):
- khtml/xml/dom_docimpl.cpp: (DocumentImpl::recalcStyle):