blob: ff07dffdfbe40700020b4f654fa9122e02094968 [file] [log] [blame]
=== Safari-111 ===
2003-10-24 Richard Williamson <rjw@apple.com>
Fixed 3425358. Don't try to create page cache for pages that
have a nil view().
Reviewed by Hyatt.
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge saveDocumentToPageCache]):
2003-10-24 David Hyatt <hyatt@apple.com>
Fix for 3133375, the minwidth computation for pres is wrong. There were a couple of bugs here.
One is that pres only should have a breakable character if they contain a newline. Otherwise they're
treated essentially like nowrap. The other was that m_beginMinWidth and m_endMinWidth needed to be
set to the maxwidth of the first line and the maxwidth of the last line respectively for pres instead of
being only the first and last words.
Reviewed by mjs
* khtml/rendering/render_text.cpp:
(RenderText::calcMinMaxWidth):
2003-10-24 David Hyatt <hyatt@apple.com>
Two fixes to the computation of min/max width for text runs.
(1) Make sure that pre runs don't add in word-spacing to the last word on a line (e.g., when a newline explicitly
breaks a pre).
(2) Fix a bug where breakable characters weren't getting factored into minwidth properly. When a word got broken
because of a breakable character, we were treating the breakable character like a space, and not including its
width as part of the minimum width of the text run.
Reviewed by john
* khtml/rendering/render_text.cpp:
(RenderText::calcMinMaxWidth):
2003-10-23 David Hyatt <hyatt@apple.com>
This patch fixes the pseudo-elements ::first-line and ::first-letter to inherit styles properly. More
specifically it does the following:
(1) Implements caching of pseudo-styles once computed off the style() which originated the pseudo-style.
The old code did this, and this was a regression from my previous patch.
(2) Fixes first-letter checking so that it happens at layout time rather than during render object
construction time, since that makes first-letter more dynamic and causes it to be discovered in cases
where it was being missed before. This fixes the front page of meyerweb.com.
(3) Make first-letter inherit from first-line like it's supposed to, and also make first-line styles
cross blocks and inherit properly from enclosing containers.
(4) Make first-letter changes cause a detach/attach to fire just as when the display changes. I generalized
the notion of needing to detach on a style change by making it a new kind of hint in dom_nodeimpl's style
diff function.
(5) Fixed isBlockFlow to return true for inline-blocks.
Reviewed by john
* khtml/rendering/render_block.cpp:
(khtml::RenderBlock::addChildToFlow):
(khtml::RenderBlock::layoutBlock):
(khtml::RenderBlock::getFirstLineBox):
(khtml::RenderBlock::firstLineBlock):
(khtml::RenderBlock::updateFirstLetter):
* khtml/rendering/render_block.h:
(khtml::RenderBlock::isBlockFlow):
* khtml/rendering/render_line.cpp:
(InlineFlowBox::paintBackgroundAndBorder):
* khtml/rendering/render_list.cpp:
(RenderListItem::setStyle):
* khtml/rendering/render_object.cpp:
(RenderObject::RenderObject):
(RenderObject::firstLineBlock):
(RenderObject::updateFirstLetter):
(RenderObject::dump):
(RenderObject::setStyle):
(RenderObject::recalcMinMaxWidths):
(RenderObject::style):
(RenderObject::getPseudoStyle):
* khtml/rendering/render_object.h:
(khtml::RenderObject::overhangingContents):
* khtml/rendering/render_style.cpp:
(pseudoBit):
* khtml/rendering/render_style.h:
(khtml::RenderStyle::):
* khtml/rendering/render_table.cpp:
(RenderTable::firstLineBlock):
(RenderTable::updateFirstLetter):
* khtml/rendering/render_table.h:
* khtml/rendering/render_text.cpp:
(RenderText::paintObject):
(RenderText::htmlFont):
* khtml/xml/dom_elementimpl.cpp:
(ElementImpl::recalcStyle):
* khtml/xml/dom_nodeimpl.cpp:
(NodeImpl::diff):
* khtml/xml/dom_nodeimpl.h:
(DOM::NodeImpl::):
2003-10-23 Ken Kocienda <kocienda@apple.com>
Reviewed by David
Fix for these bugs:
<rdar://problem/3171929>: Safari picks a different button in a
form when you hit return if the first button has no name
<rdar://problem/3200386>: investigate which button is activated
when hitting return in form text input fields
HTML spec says that buttons must have names to be considered
successful. However, other browsers do not impose this constraint.
Therefore, we behave differently, and can use different buttons than
the author intended.
* khtml/html/html_formimpl.cpp:
(HTMLButtonElementImpl::isSuccessfulSubmitButton)
(HTMLInputElementImpl::isSuccessfulSubmitButton)
2003-10-22 David Hyatt <hyatt@apple.com>
Fix for 3460726, the user agent string was returning nil.
Fix for 3386544, empty documents did not get a layout, and so they looked white. Also fixed the positioning
of widgets to account for border/padding in updateWidgetPositions.
Fix for espn.com crasher, 3458143, caused by layout object not being properly cleared when layouts were
unscheduled.
Reviewed by darin
* khtml/khtmlview.cpp:
* khtml/rendering/render_canvas.cpp:
(RenderCanvas::RenderCanvas):
* khtml/rendering/render_replaced.cpp:
(RenderWidget::updateWidgetPositions):
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::userAgent):
2003-10-22 Maciej Stachowiak <mjs@apple.com>
Reviewed by
- fixed 3460664 - Exception handlers not properly removed
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::mouseMoved): Don't return from exception block
(KWQKHTMLPart::khtmlMouseReleaseEvent): Add exception blocking (whoops)
2003-10-22 John Sullivan <sullivan@apple.com>
- fixed 3460652 -- REGRESSION (100-110+): Can't tab out of a
frameset page
Reviewed by Darin (actually he made the change on my machine)
* khtml/html/html_baseimpl.cpp:
(HTMLFrameSetElementImpl::defaultEventHandler):
only set defaultHandled for the one event that we actually
handle (mouse event to resize frame borders); this was always
being set, hence preventing key events from being used elsewhere.
2003-10-22 Richard Williamson <rjw@apple.com>
Fixed 3454067. RenderText's repaint wasn't called because of recent changes to de-virtualize repaint. Modified getAbsoluteRepaintRect() to return containing block's getAbsoluteRepaintRect().
Also removed the long standing +1 from QFontMetrics::height().
Reviewed by Hyatt.
* khtml/rendering/render_text.cpp:
(RenderText::getAbsoluteRepaintRect):
* khtml/rendering/render_text.h:
* kwq/KWQFontMetrics.mm:
(QFontMetrics::height):
2003-10-22 David Hyatt <hyatt@apple.com>
Fix visibility to be done when widgets are added or when styles are set rather than at paint time. Fixes
the ads painting on top of content at tvguide.com.
Reviewed by cblu
* khtml/rendering/render_replaced.cpp:
(RenderWidget::setQWidget):
(RenderWidget::setStyle):
(RenderWidget::paintObject):
* kwq/KWQWidget.h:
* kwq/KWQWidget.mm:
(QWidget::QWidget):
(QWidget::show):
(QWidget::hide):
2003-10-21 Maciej Stachowiak <mjs@apple.com>
Reviewed by Dave.
Finished exception blocking changes, so now I can finally say:
- fixed 3137084 - Many non-reproducible crashers in ContextImp::mark / ScopeChain::mark
- fixed 3308848 - nil-deref in KHTMLView::topLevelWidget
- fixed 3311511 - nil deref inside KJS::Screen
- fixed 3397422 - 7B51: Safari crashed in KJS::ObjectImp::mark()
- fixed 3408373 - Panther7B58 : Safari Crashed in KJS::ObjectImp::mark
- fixed 3409307 - 7B55: safari crashed in KJS::Interpreter::globalExec() (idle, nothing particular going on)
- fixed 3410160 - 7B60 Safari crashed in KHTMLPart::parentPart called from JS while in the background
- fixed 3413224 - unrepro crash in KJS::Window::mark
- fixed 3419940 - unrepro crash in KJS::Collector::allocate trying to access http://www.lindyinthepalms.com
- fixed 3420123 - Panther7B66: Safari crashed while going to http://www.tangents.co.uk/index2.html
- fixed 3423225 - Safari crash in vtable for KWQMapImpl (vtable for KWQMapImpl + 8).
- fixed 3437190 - nil-deref on quit in calling marked() from ScopeChain::mark()
* WebCore.pbproj/project.pbxproj:
* kwq/KWQFontMetrics.mm:
* kwq/KWQPainter.mm:
(QPainter::drawPixmap):
(QPainter::drawTiledPixmap):
(QPainter::_updateRenderer):
* kwq/WebCoreTextRenderer.h:
2003-10-21 David Hyatt <hyatt@apple.com>
http://placenamehere.com/safari/fixedbgtest.html is now fixed with a patch from the KHTML trunk.
Fixed backgrounds repeated when they weren't supposed to.
* khtml/rendering/render_box.cpp:
(RenderBox::paintBackgroundExtended):
2003-10-21 David Hyatt <hyatt@apple.com>
Change pseudo-element style resolution to be lazy and to not occur until the style is actually asked
for by the front end render objects. Also fix first-letter to inherit properly from first-line styles.
Reviewed by mjs
* khtml/css/cssstyleselector.cpp:
(khtml::CSSStyleSelector::initForStyleResolve):
(khtml::CSSStyleSelector::styleForElement):
(khtml::CSSStyleSelector::pseudoStyleForElement):
(khtml::CSSStyleSelector::checkSelector):
(khtml::CSSStyleSelector::checkOneSelector):
* khtml/css/cssstyleselector.h:
* khtml/rendering/render_block.cpp:
(khtml::RenderBlock::addChildToFlow):
* khtml/rendering/render_container.cpp:
(RenderContainer::updatePseudoChild):
* khtml/rendering/render_object.cpp:
(RenderObject::setStyle):
(RenderObject::createInlineBox):
(RenderObject::style):
(RenderObject::getPseudoStyle):
* khtml/rendering/render_object.h:
* khtml/rendering/render_style.cpp:
(pseudoBit):
(RenderStyle::hasPseudoStyle):
(RenderStyle::setHasPseudoStyle):
(RenderStyle::getPseudoStyle):
(RenderStyle::addPseudoStyle):
* khtml/rendering/render_style.h:
(khtml::RenderStyle::NonInheritedFlags::operator==):
(khtml::RenderStyle::setBitDefaults):
* khtml/rendering/render_text.cpp:
(InlineTextBox::paintSelection):
(RenderText::paintObject):
(RenderText::htmlFont):
2003-10-21 Maciej Stachowiak <mjs@apple.com>
Reviewed by Dave.
More exception blocking.
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::~KWQKHTMLPart):
(KWQKHTMLPart::generateFrameName):
(KWQKHTMLPart::openURL):
(KWQKHTMLPart::openURLRequest):
(regExpForLabels):
(KWQKHTMLPart::clearRecordedFormValues):
(KWQKHTMLPart::recordFormValue):
(KWQKHTMLPart::submitForm):
(KHTMLPart::frameDetached):
(KWQKHTMLPart::urlSelected):
(KWQKHTMLPart::createPart):
(KWQKHTMLPart::setTitle):
(KWQKHTMLPart::setStatusBarText):
(KWQKHTMLPart::scheduleClose):
(KWQKHTMLPart::unfocusWindow):
(KWQKHTMLPart::jumpToSelection):
(KWQKHTMLPart::redirectionTimerStartedOrStopped):
(KWQKHTMLPart::userAgent):
(KWQKHTMLPart::mimeTypeForFileName):
(KWQKHTMLPart::nextKeyView):
(KWQKHTMLPart::currentEventIsMouseDownInWidget):
(KWQKHTMLPart::openURLFromPageCache):
(KWQKHTMLPart::saveDocumentState):
(KWQKHTMLPart::restoreDocumentState):
(KWQKHTMLPart::requestedURLString):
(KWQKHTMLPart::incomingReferrer):
(KWQKHTMLPart::runJavaScriptAlert):
(KWQKHTMLPart::runJavaScriptConfirm):
(KWQKHTMLPart::runJavaScriptPrompt):
(KWQKHTMLPart::createEmptyDocument):
(KWQKHTMLPart::keyEvent):
(KWQKHTMLPart::khtmlMousePressEvent):
(KWQKHTMLPart::passWidgetMouseDownEventToWidget):
(KWQKHTMLPart::lastEventIsMouseUp):
(findViewInSubviews):
(KWQKHTMLPart::khtmlMouseMoveEvent):
(KWQKHTMLPart::passSubframeEventToSubframe):
(KWQKHTMLPart::buttonForCurrentEvent):
(KWQKHTMLPart::stateForCurrentEvent):
(KWQKHTMLPart::mouseDown):
(KWQKHTMLPart::mouseDragged):
(KWQKHTMLPart::mouseUp):
(KWQKHTMLPart::sendFakeEventsAfterWidgetTracking):
(KWQKHTMLPart::mouseMoved):
(KWQKHTMLPart::sendContextMenuEvent):
(fileWrapperForElement):
(KWQKHTMLPart::attributedString):
(KWQKHTMLPart::keyboardUIMode):
2003-10-21 Chris Blumenberg <cblu@apple.com>
Fixed: <rdar://problem/3176170>: OBJECT tag with no or empty TYPE is mishandled
Reviewed by rjw.
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::createPart): call renamed frameRequiredForMIMEType:URL:
* kwq/WebCoreBridge.h: renamed frameRequiredForMIMEType: to frameRequiredForMIMEType:URL:
2003-10-20 David Hyatt <hyatt@apple.com>
Fix generated content (before/after) so that it no longer has any restrictions on it. CSS2.1 lifted
restrictions preventing the floating/positioning of generated content.
Reviewed by rjw
* khtml/css/cssstyleselector.cpp:
(khtml::CSSStyleSelector::adjustRenderStyle):
* khtml/rendering/render_container.cpp:
(RenderContainer::updatePseudoChild):
2003-10-20 Ken Kocienda <kocienda@apple.com>
Reviewed by David
* khtml/dom/dom2_events.cpp:
(UIEvent::keyCode): Change over to use ascii value for key code.
(UIEvent::which): Ditto.
(KeyboardEvent::KeyboardEvent): New key event class which
tracks the DOM Level 3 spec more closely.
(KeyboardEvent::operator = ): New function.
(KeyboardEvent::~KeyboardEvent): New function.
(KeyboardEvent::ctrlKey): New function.
(KeyboardEvent::shiftKey): New function.
(KeyboardEvent::altKey): New function.
(KeyboardEvent::metaKey): New function.
(KeyboardEvent::altGraphKey): New function.
(KeyboardEvent::initKeyboardEvent): New function.
* khtml/dom/dom2_events.h: Ditto.
* khtml/html/html_formimpl.cpp:
(HTMLGenericFormElementImpl::defaultEventHandler): Use key
identifiers to test which key was pressed, instead of removed keyVal().
(HTMLInputElementImpl::defaultEventHandler): Ditto.
(HTMLSelectElementImpl::defaultEventHandler): Ditto.
* khtml/html/html_inlineimpl.cpp:
(HTMLAnchorElementImpl::defaultEventHandler): Change casts to match new
class name. Use key identifiers to test which key was pressed,
instead of removed keyVal(). Use new modifier accessors.
* khtml/xml/dom2_eventsimpl.cpp:
(EventImpl::typeToId): Some reorganization of the constants in the
switch statements. Name change for these to remove the KHTML_ prefix
from the key up and key down events will happen soon.
(EventImpl::idToType): Ditto.
(KeyboardEventImpl::KeyboardEventImpl): New key event class which
tracks the DOM Level 3 spec more closely.
(KeyboardEventImpl::~KeyboardEventImpl): Ditto.
(KeyboardEventImpl::initKeyboardEvent): Ditto.
* khtml/xml/dom2_eventsimpl.h:
(DOM::EventImpl::): Some reorganization of the constants in the
switch statements. Name change for these to remove the KHTML_ prefix
from the key up and key down events will happen soon.
(DOM::KeyboardEventImpl::keyIdentifier): New function.
(DOM::KeyboardEventImpl::keyLocation): New function.
(DOM::KeyboardEventImpl::ctrlKey): New function.
(DOM::KeyboardEventImpl::shiftKey): New function.
(DOM::KeyboardEventImpl::altKey): New function.
(DOM::KeyboardEventImpl::metaKey): New function.
(DOM::KeyboardEventImpl::altGraphKey): New function.
(DOM::KeyboardEventImpl::qKeyEvent): New function.
* khtml/xml/dom_docimpl.cpp:
(DocumentImpl::createEvent): Now can create keyboard events.
* khtml/xml/dom_nodeimpl.cpp:
(NodeImpl::dispatchKeyEvent): Class name changes.
* kwq/KWQEvent.h: Added QString identifier member.
* kwq/KWQEvent.mm:
(hexDigit): Added helper.
(identifierForKeyText): Added new function to map keys to DOM
key identifiers as listed in the DOM spec.
(QKeyEvent::identifier): Added accessor.
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::stateForCurrentEvent): Added check to see if
a key press is on one of the numeric keypad keys.
* kwq/KWQLogging.h: Added log constant for DOM events.
* kwq/KWQLogging.m: Ditto
2003-10-20 David Hyatt <hyatt@apple.com>
Make first-letter and before/after work with text transforms.
Reviewed by mjs
* khtml/rendering/render_block.cpp:
(khtml::RenderBlock::addChildToFlow):
* khtml/rendering/render_container.cpp:
(RenderContainer::updatePseudoChild):
* khtml/rendering/render_text.cpp:
(RenderText::setStyle):
(RenderText::isTextFragment):
(RenderText::originalString):
(RenderText::setText):
(m_generatedContentStr):
(m_start):
(RenderTextFragment::~RenderTextFragment):
(RenderTextFragment::isTextFragment):
(RenderTextFragment::originalString):
* khtml/rendering/render_text.h:
(khtml::RenderTextFragment::start):
(khtml::RenderTextFragment::end):
(khtml::RenderTextFragment::contentString):
* khtml/xml/dom_nodeimpl.h:
(DOM::NodeImpl::setRenderer):
2003-10-19 David Hyatt <hyatt@apple.com>
Remove the "flow-around-floats" hack for lists. Other browsers don't do this.
Reviewed by darin
* khtml/css/quirks.css:
2003-10-19 David Hyatt <hyatt@apple.com>
Fix for a regression/crash on tivocommunity.com caused by faulty border-collapse code in the collapsedRightBorder
case. I forgot to deal with colspans.
Reviewed by darin
* khtml/rendering/render_table.cpp:
(RenderTable::cellRight):
(RenderTableCell::collapsedRightBorder):
2003-10-19 David Hyatt <hyatt@apple.com>
Patch from KHTML trunk that makes textareas work properly even when they have no render objects.
* khtml/html/html_formimpl.cpp:
(HTMLTextAreaElementImpl::encoding):
(HTMLTextAreaElementImpl::value):
2003-10-18 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fixed 3454444 -- contents of mailto form shows up in Mail title instead of body (IE sends mail directly)
* kwq/KWQKURL.mm: (KURL::parse): Changed non-hierarchical code to consider everything
after a question mark as a query, just the way the hierarchical code does. This makes
the code that constructs the mailto URL work properly.
2003-10-18 David Hyatt <hyatt@apple.com>
Fix the intrinsic minmax width computation for blocks and XUL boxes to actually check fixed min/max CSS widths.
Reviewed by darin
* khtml/rendering/render_block.cpp:
(khtml::RenderBlock::calcMinMaxWidth):
* khtml/rendering/render_flexbox.cpp:
(khtml::RenderFlexibleBox::calcMinMaxWidth):
2003-10-18 David Hyatt <hyatt@apple.com>
Change the names of the border-spacing properties to border-horizontal-spacing and border-vertical-spacing.
* khtml/css/cssparser.cpp:
(CSSParser::parseValue):
* khtml/css/cssproperties.c:
(findProp):
* khtml/css/cssproperties.h:
* khtml/css/cssproperties.in:
* khtml/css/cssstyleselector.cpp:
(khtml::CSSStyleSelector::applyRule):
2003-10-18 David Hyatt <hyatt@apple.com>
Fix for diveintomark className parsing bug. class="bigblue blue" would fail to match a rule with .blue.
The bug was in the selector matching code for class attributes.
Also fixing a minmax width bug for blocks on the mozilla.org Web site. XUL boxes had the same bug as
well.
Reviewed by darin
* khtml/css/cssstyleselector.cpp:
(khtml::CSSStyleSelector::checkOneSelector):
* khtml/rendering/render_block.cpp:
(khtml::RenderBlock::calcMinMaxWidth):
* khtml/rendering/render_flexbox.cpp:
(khtml::RenderFlexibleBox::calcMinMaxWidth):
2003-10-18 David Hyatt <hyatt@apple.com>
Fix for 3443502, generated content sometimes doesn't generate. The bug is caused by an
uninitialized variable. m_isContinuation needed to be set to false in the RenderInline
constructor.
* khtml/rendering/render_inline.cpp:
(m_isContinuation):
2003-10-17 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- make text areas set the base writing direction based on the direction in the CSS style
* kwq/KWQTextArea.h: Added setBaseWritingDirection method.
* kwq/KWQTextArea.mm:
(-[KWQTextArea _createTextView]): Use _KWQ_setTypingParagraphStyle.
(-[KWQTextArea setWordWrap:]): Use _KWQ_setTypingParagraphStyle.
(-[KWQTextArea setBaseWritingDirection:]): Added. New method that sets the base writing
direction in both the style of the text and the typing attributes.
(-[NSTextView _KWQ_typingParagraphStyle]): Added. Helper method to make setBaseWritingDirection:
a little less gigantic.
(-[NSTextView _KWQ_setTypingParagraphStyle:]): Ditto.
(-[NSTextStorage _KWQ_setBaseWritingDirection:]): Ditto.
* kwq/KWQTextEdit.mm: (QTextEdit::setAlignment): Set both alignment and base writing direction.
2003-10-17 David Hyatt <hyatt@apple.com>
Implement horizontal and vertical border-spacing. Allow them to be specified individually.
Reviewed by mjs
------
Fix the calcWidth method of tables to account for horizontal margins properly.
Reviewed by john
------
Implement border collapsing in tables.
Reviewed by kocienda
* khtml/css/cssparser.cpp:
(CSSParser::parseValue):
* khtml/css/cssproperties.c:
(hash_prop):
(findProp):
* khtml/css/cssproperties.h:
* khtml/css/cssproperties.in:
* khtml/css/cssstyleselector.cpp:
(khtml::CSSStyleSelector::applyRule):
* khtml/css/cssvalues.c:
* khtml/css/cssvalues.h:
* khtml/css/cssvalues.in:
* khtml/rendering/bidi.cpp:
(khtml::RenderBlock::layoutInlineChildren):
* khtml/rendering/render_box.cpp:
(RenderBox::paintBoxDecorations):
* khtml/rendering/render_form.cpp:
(RenderFieldset::paintBorderMinusLegend):
* khtml/rendering/render_object.cpp:
(RenderObject::paintBorder):
(RenderObject::collectBorders):
* khtml/rendering/render_object.h:
* khtml/rendering/render_style.cpp:
(StyleInheritedData::StyleInheritedData):
(StyleInheritedData::operator==):
(RenderStyle::diff):
* khtml/rendering/render_style.h:
(khtml::):
(khtml::CollapsedBorderValue::precedence):
(khtml::CollapsedBorderValue::width):
(khtml::CollapsedBorderValue::style):
(khtml::CollapsedBorderValue::exists):
(khtml::CollapsedBorderValue::color):
(khtml::CollapsedBorderValue::isTransparent):
(khtml::CollapsedBorderValue::operator==):
(khtml::RenderStyle::borderLeft):
(khtml::RenderStyle::borderRight):
(khtml::RenderStyle::borderTop):
(khtml::RenderStyle::borderBottom):
(khtml::RenderStyle::horizontalBorderSpacing):
(khtml::RenderStyle::verticalBorderSpacing):
(khtml::RenderStyle::setHorizontalBorderSpacing):
(khtml::RenderStyle::setVerticalBorderSpacing):
* khtml/rendering/render_table.cpp:
(RenderTable::RenderTable):
(RenderTable::setStyle):
(RenderTable::calcWidth):
(RenderTable::paint):
(RenderTable::borderLeft):
(RenderTable::borderRight):
(RenderTable::borderTop):
(RenderTable::borderBottom):
(RenderTable::cellAbove):
(RenderTable::cellBelow):
(RenderTable::cellLeft):
(RenderTable::cellRight):
(RenderTableSection::setCellWidths):
(RenderTableSection::calcRowHeight):
(RenderTableSection::layoutRows):
(compareBorders):
(RenderTableCell::collapsedLeftBorder):
(RenderTableCell::collapsedRightBorder):
(RenderTableCell::collapsedTopBorder):
(RenderTableCell::collapsedBottomBorder):
(RenderTableCell::borderLeft):
(RenderTableCell::borderRight):
(RenderTableCell::borderTop):
(RenderTableCell::borderBottom):
(collapsedBorderStyle):
(CollapsedBorder::CollapsedBorder):
(CollapsedBorders:::count):
(CollapsedBorders::addBorder):
(CollapsedBorders::nextBorder):
(addBorderStyle):
(RenderTableCell::collectBorders):
(RenderTableCell::paintCollapsedBorder):
(RenderTableCell::paintObject):
(RenderTableCell::paintBoxDecorations):
* khtml/rendering/render_table.h:
(khtml::RenderTable::hBorderSpacing):
(khtml::RenderTable::vBorderSpacing):
(khtml::RenderTable::bordersPaddingAndSpacing):
(khtml::RenderTable::currentBorderStyle):
* khtml/rendering/table_layout.cpp:
(FixedTableLayout::layout):
(AutoTableLayout::calcEffectiveWidth):
(AutoTableLayout::layout):
2003-10-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by John.
More exception blocking.
* kwq/KWQFont.mm:
(QFont::isFixedPitch):
(QFont::getNSFont):
* kwq/KWQKJobClasses.mm:
(KIO::TransferJob::~TransferJob):
* kwq/KWQLoader.mm:
(KWQServeRequest):
(KWQCheckIfReloading):
(KWQCheckCacheObjectStatus):
(KWQRetainResponse):
(KWQReleaseResponse):
(KWQResponseMIMEType):
=== Safari-110 ===
2003-10-16 Darin Adler <darin@apple.com>
Reviewed by vicki.
- fix buildit build failure
* kwq/KWQScrollView.mm:
(QScrollView::resizeContents):
2003-10-15 Darin Adler <darin@apple.com>
Reviewed by Ken.
- change "volatile X * volatile" to "X * volatile" in cases where the
pointer needs to be volatile but the object pointed to do does not
* kwq/KWQKConfigBase.mm: (KConfig::readEntry):
* kwq/KWQKCursor.mm: (+[NSCursor _WebCore_cursorWithName:hotSpot:]):
* kwq/KWQKLocale.mm:
(inputElementAltText):
(resetButtonDefaultLabel):
(searchableIndexIntroduction):
(submitButtonDefaultLabel):
(KLocale::language):
* kwq/KWQLineEdit.mm: (QLineEdit::text):
* kwq/KWQScrollView.mm:
(QScrollView::setContentsPos):
(QScrollView::addChild):
(QScrollView::updateContents):
(QScrollView::contentsToViewport):
(QScrollView::viewportToContents):
(QScrollView::getDocumentView):
* kwq/KWQTextEdit.mm:
(QTextEdit::text):
(QTextEdit::textWithHardLineBreaks):
* kwq/KWQWidget.mm: (QWidget::getOuterView):
Removed the excess volatiles and excess casts that go with them.
* kwq/KWQKCookieJar.mm: (KWQKCookieJar::cookie): Do the same, but also
remove an unnecessary nil check that is the same as QString::fromNSString's
default behavior.
2003-10-15 Maciej Stachowiak <mjs@apple.com>
Reviewed by Dave.
More objc-exception-blocking excitement.
* kwq/KWQKConfigBase.mm:
(KConfig::readEntry):
(KConfig::readNumEntry):
(RefreshPlugins):
* kwq/KWQKCursor.mm:
(+[NSCursor _WebCore_cursorWithName:hotSpot:]):
* kwq/KWQKJavaAppletWidget.mm:
(KJavaAppletWidget::showApplet):
* kwq/KWQKLocale.mm:
(inputElementAltText):
(resetButtonDefaultLabel):
(searchableIndexIntroduction):
(submitButtonDefaultLabel):
(KLocale::language):
* kwq/KWQRegion.mm:
(QRegion::QRegion):
2003-10-14 David Hyatt <hyatt@apple.com>
Fix an obvious little typo with smallCaps inheritance. Richard reviewed.
Also merge in Dirk's patch to fix a crasher caused by an obvious deref mistake.
Reviewed by rjw and nobody
* khtml/css/cssstyleselector.cpp:
(khtml::convertToLength):
(khtml::CSSStyleSelector::applyRule):
2003-10-14 Ken Kocienda <kocienda@apple.com>
Reviewed by Hyatt
* khtml/dom/dom_misc.h: Declared TristateFlag enum used to implement
inheritance behavior for inheritable attributes like designMode.
* khtml/dom/html_document.cpp:
(HTMLDocument::designMode): Added getter.
(HTMLDocument::setDesignMode): Added setter.
* khtml/dom/html_document.h: Added declarations for designMode getter and setter.
* khtml/dom/html_element.cpp:
(HTMLElement::isContentEditable): Added convenience.
(HTMLElement::contentEditable): Added getter.
(HTMLElement::setContentEditable): Added setter.
* khtml/dom/html_element.h: Added declarations for contentEditable accessors.
* khtml/ecma/kjs_html.cpp: Added js support for contentEditable and designMode.
(KJS::HTMLDocument::tryGet)
(KJS::HTMLDocument::putValue)
(KJS::HTMLElement::getValueProperty)
(KJS::HTMLElement::putValue)
* khtml/ecma/kjs_html.h:
(KJS::HTMLDocument::): Added DesignMode to attribuute enum.
(KJS::HTMLElement::): Added ContentEditable to attribute enum.
* khtml/html/html_documentimpl.cpp:
(HTMLDocumentImpl::designMode): Added getter.
(HTMLDocumentImpl::setDesignMode): Added setter.
* khtml/html/html_documentimpl.h: Declared designMode accessors.
* khtml/html/html_elementimpl.cpp:
(HTMLElementImpl::HTMLElementImpl):
(HTMLElementImpl::parseAttribute): Added support for contentEditable.
(HTMLElementImpl::isContentEditable): Added. Implements inheritance feature
for this attribute.
(HTMLElementImpl::contentEditable): Getter for contentEditable attribute.
(HTMLElementImpl::setContentEditable): Setter for contentEditable attribute.
* khtml/html/html_elementimpl.h:
* khtml/khtml_part.cpp:
(KHTMLPart::setEditMode): Added.
(KHTMLPart::editMode): Added. Implements inheritance behavior for
attribute.
(KHTMLPart::inEditMode): Helper that calls on editMode function.
(KHTMLPart::parentPart): Made const.
* khtml/khtml_part.h: Rolled in a couple of typo fixes. Added
declarations for the changes made in the implementation file.
* khtml/khtmlpart_p.h:
(KHTMLPartPrivate::KHTMLPartPrivate): Declared editMode flag.
Also added support for editMode flag in initializers and copy function.
* khtml/misc/htmlattrs.in: Added contentEditable as an attribute name.
2003-10-13 David Hyatt <hyatt@apple.com>
Fix for a small-caps rendering error when used in conjunction with ::first-line. Always update
the Font variable even when QFonts are the same, since small-caps is not stored in QFonts.
Reviewed by rjw
* khtml/rendering/render_text.cpp:
(RenderText::paintObject):
2003-10-13 Richard Williamson (Home0 <rjw@apple.com>
Updated layout tests actuals to reflect implementation of small-caps style.
* layout-tests/css1/font_properties/font-expected.txt:
* layout-tests/css1/font_properties/font_variant-expected.txt:
* layout-tests/css1/pseudo/firstline-expected.txt:
* layout-tests/css1/pseudo/multiple_pseudo_elements-expected.txt:
2003-10-13 Richard Williamson <rjw@apple.com>
Added support for small-caps.
Reviewed by John.
* khtml/rendering/font.h:
(khtml::Font::isSmallCaps):
* khtml/rendering/render_text.cpp:
(RenderText::shouldUseMonospaceCache):
2003-10-12 Darin Adler <darin@apple.com>
* layout-tests/fast/js/date-parse-test.html: Fixed a couple of silly mistakes.
* kwq/character-sets.txt: New version of file from www.iana.org. No substantive change.
Also, now that we don't use MIB numbers any more, I could leave out our one local change,
the MIB number we added for ISO-10646-J-1.
2003-10-10 David Hyatt <hyatt@apple.com>
Beginning of work on border collapsing. This patch makes sure that cell spacing between cells is
ignored and that padding on tables is ignored. This ensures that there is no space between cells
or between the edges of cells and the border of the table itself.
Reviewed by john
* khtml/rendering/render_style.h:
(khtml::RenderStyle::setBitDefaults):
* khtml/rendering/render_table.cpp:
(RenderTable::setStyle):
(RenderTable::layout):
* khtml/rendering/render_table.h:
(khtml::RenderTable::collapseBorders):
(khtml::RenderTable::bordersPaddingAndSpacing):
2003-10-10 David Hyatt <hyatt@apple.com>
Fix for table regression 3449444, as well as a patch to support padding on tables and to stop
honoring borders on row groups (both of which are correct for the "separate" border model).
* khtml/rendering/render_table.cpp:
(RenderTable::layout):
(RenderTableSection::calcRowHeight):
(RenderTableSection::layoutRows):
* khtml/rendering/render_table.h:
(khtml::RenderTable::bordersPaddingAndSpacing):
* khtml/rendering/table_layout.cpp:
(FixedTableLayout::calcMinMaxWidth):
(FixedTableLayout::layout):
(AutoTableLayout::calcMinMaxWidth):
(AutoTableLayout::layout):
Reviewed by darin
2003-10-10 David Hyatt <hyatt@apple.com>
Patch to move the widgets during layout instead of at paint time.
Reviewed by darin
* khtml/khtmlview.cpp:
* khtml/rendering/render_canvas.cpp:
(RenderCanvas::repaintViewRectangle):
* khtml/rendering/render_form.cpp:
(RenderFormElement::baselinePosition):
(RenderFormElement::layout):
* khtml/rendering/render_object.cpp:
(RenderObject::updateWidgetPositions):
* khtml/rendering/render_object.h:
* khtml/rendering/render_replaced.cpp:
(RenderWidget::layout):
(RenderWidget::updateWidgetPositions):
* khtml/rendering/render_replaced.h:
* kwq/KWQCheckBox.h:
* kwq/KWQCheckBox.mm:
(QCheckBox::baselinePosition):
* kwq/KWQComboBox.h:
* kwq/KWQComboBox.mm:
(QComboBox::baselinePosition):
* kwq/KWQFileButton.h:
* kwq/KWQFileButton.mm:
(KWQFileButton::baselinePosition):
* kwq/KWQLineEdit.h:
* kwq/KWQLineEdit.mm:
(QLineEdit::baselinePosition):
* kwq/KWQPushButton.h:
* kwq/KWQPushButton.mm:
(QPushButton::baselinePosition):
* kwq/KWQRadioButton.h:
* kwq/KWQRadioButton.mm:
(QRadioButton::baselinePosition):
* kwq/KWQWidget.h:
* kwq/KWQWidget.mm:
(QWidget::baselinePosition):
(QWidget::setFrameGeometry):
* kwq/WebCoreBridge.h:
* kwq/WebCoreBridge.mm:
2003-10-10 David Hyatt <hyatt@apple.com>
Make sure the i-beam cursor is only forced if you have a selection.
Reviewed by John
* khtml/khtmlview.cpp
2003-10-10 Ken Kocienda <kocienda@apple.com>
Reviewed by John
Fix for this bug:
<rdar://problem/3440703>: Textarea form controls do not respect disabled attribute
* khtml/rendering/render_form.cpp:
(RenderTextArea::updateFromElement): Check for disabled attribute.
* kwq/KWQTextArea.h:
* kwq/KWQTextArea.mm:
(-[KWQTextArea setEnabled:]): Added.
(-[KWQTextArea isEnabled]): Added.
(-[KWQTextArea drawRect:]): Draws a disabled-looking bezel when disabled.
(-[KWQTextAreaTextView becomeFirstResponder]): Return NO if disabled.
(-[KWQTextAreaTextView mouseDown:]): Block events if disabled.
(-[KWQTextAreaTextView keyDown:]): Ditto.
(-[KWQTextAreaTextView keyUp:]): Ditto.
(-[KWQTextAreaTextView setEnabled:]): Added. Pass value through to editable
attribute on text view.
(-[KWQTextAreaTextView isEnabled]): Added.
(-[KWQTextAreaTextView drawRect:]): Set the text color to a disabled color
when disabled.
* kwq/KWQTextEdit.h:
* kwq/KWQTextEdit.mm:
(QTextEdit::isDisabled): Added.
(QTextEdit::setDisabled): Added.
2003-10-10 Maciej Stachowiak <mjs@apple.com>
- fixed 3449405 - REGRESSION: reproducible crash changing focus w/ button on page, e.g. on www.aa.com
More fallout from the exception blocking.
* kwq/KWQButton.mm:
(QButton::focusPolicy): Don't return from exception block (caught
by Darin).
2003-10-09 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fixed 3449280 -- REGRESSION: crash copying a selection that ends in a <br>
* khtml/rendering/render_br.h: Add checkSelectionPointIgnoringContinuations.
* khtml/rendering/render_br.cpp: (RenderBR::checkSelectionPointIgnoringContinuations):
Override to never return an offset of 1. We can't use a character offset because the
DOM doesn't know that we're implemented as a text object. So an offset of 1 turns into
"after this element".
2003-10-09 Maciej Stachowiak <mjs@apple.com>
- fixed crash I just added.
* kwq/KWQWidget.mm:
(QWidget::setCursor): Move BLOCK_NS_EXCEPTIONS macros so
you don't `break' out of the blocking code.
2003-10-09 Maciej Stachowiak <mjs@apple.com>
Reviewed by Ken.
More Cocoa exception blocking work.
* kwq/KWQFrame.mm:
(QFrame::setFrameStyle):
* kwq/KWQLineEdit.mm:
(QLineEdit::QLineEdit):
(QLineEdit::~QLineEdit):
(QLineEdit::setEchoMode):
(QLineEdit::setFont):
(QLineEdit::setText):
(QLineEdit::text):
(QLineEdit::isReadOnly):
(QLineEdit::setReadOnly):
(QLineEdit::maxLength):
(QLineEdit::selectAll):
(QLineEdit::edited):
(QLineEdit::setEdited):
(QLineEdit::sizeForCharacterWidth):
(QLineEdit::baselinePosition):
(QLineEdit::setAlignment):
* kwq/KWQListBox.mm:
(QListBox::QListBox):
(QListBox::~QListBox):
(QListBox::count):
(QListBox::clear):
(QListBox::setSelectionMode):
(QListBox::insertItem):
(QListBox::insertGroupLabel):
(QListBox::endBatchInsert):
(QListBox::setSelected):
(QListBox::isSelected):
(QListBox::setEnabled):
(QListBox::sizeForNumberOfLines):
(QListBox::focusPolicy):
* kwq/KWQPushButton.mm:
(QPushButton::QPushButton):
(QPushButton::sizeHint):
(QPushButton::baselinePosition):
(QPushButton::dimensions):
* kwq/KWQRadioButton.mm:
(QRadioButton::QRadioButton):
(QRadioButton::setChecked):
(QRadioButton::isChecked):
(QRadioButton::dimensions):
* kwq/KWQScrollBar.mm:
(-[KWQScrollBar initWithQScrollBar:]):
(:m_valueChanged):
(QScrollBar::~QScrollBar):
(QScrollBar::setValue):
(QScrollBar::setKnobProportion):
(QScrollBar::scrollbarHit):
* kwq/KWQScrollView.mm:
(QScrollView::visibleWidth):
(QScrollView::visibleHeight):
(QScrollView::contentsWidth):
(QScrollView::contentsHeight):
(QScrollView::contentsX):
(QScrollView::contentsY):
(QScrollView::setContentsPos):
(QScrollView::setVScrollBarMode):
(QScrollView::setHScrollBarMode):
(QScrollView::setScrollBarsMode):
(QScrollView::vScrollBarMode):
(QScrollView::hScrollBarMode):
(QScrollView::hasVerticalScrollBar):
(QScrollView::hasHorizontalScrollBar):
(QScrollView::suppressScrollBars):
(QScrollView::addChild):
(QScrollView::removeChild):
(QScrollView::resizeContents):
(QScrollView::updateContents):
(QScrollView::contentsToViewport):
(QScrollView::viewportToContents):
(QScrollView::setStaticBackground):
(QScrollView::ensureVisible):
(QScrollView::getDocumentView):
* kwq/KWQTextEdit.mm:
(QTextEdit::QTextEdit):
(QTextEdit::setText):
(QTextEdit::text):
(QTextEdit::textWithHardLineBreaks):
(QTextEdit::getCursorPosition):
(QTextEdit::setCursorPosition):
(QTextEdit::wordWrap):
(QTextEdit::setWordWrap):
(QTextEdit::isReadOnly):
(QTextEdit::setReadOnly):
(QTextEdit::selectAll):
(QTextEdit::setFont):
(QTextEdit::setAlignment):
(QTextEdit::sizeWithColumnsAndRows):
* kwq/KWQWidget.mm:
(QWidget::QWidget):
(QWidget::~QWidget):
(QWidget::setActiveWindow):
(QWidget::setEnabled):
(QWidget::isEnabled):
(QWidget::frameGeometry):
(QWidget::hasFocus):
(QWidget::setFocus):
(QWidget::focusPolicy):
(QWidget::isVisible):
(QWidget::setCursor):
(QWidget::cursor):
(QWidget::setFrameGeometry):
(QWidget::mapFromGlobal):
(QWidget::setView):
(QWidget::getOuterView):
(QWidget::lockDrawingFocus):
(QWidget::unlockDrawingFocus):
(QWidget::disableFlushDrawing):
(QWidget::enableFlushDrawing):
(QWidget::setDrawingAlpha):
(QWidget::paint):
(QWidget::sendConsumedMouseUp):
2003-10-09 David Hyatt <hyatt@apple.com>
Stop printing extra spaces before list items. Fixes ordered lists with list-style-position: inside.
Reviewed by mjs
* khtml/rendering/render_list.cpp:
2003-10-09 David Hyatt <hyatt@apple.com>
Make definition of kMin and kMax match the KHTML trunk. Someone still needs to eliminate uses of QMIN
and QMAX from the code.
* kwq/KWQDef.h:
(kMin):
(kMax):
2003-10-09 Chris Blumenberg <cblu@apple.com>
Fixed: <rdar://problem/3333897>: should support navigator.plugins.refresh as a way to add a plugin without restarting Safari
Reviewed by rjw.
* khtml/ecma/kjs_navigator.cpp:
(PluginBase::refresh): new
(PluginsFunc::tryCall): call refresh
* kwq/KWQKConfigBase.h:
* kwq/KWQKConfigBase.mm:
(RefreshPlugins): new
* kwq/WebCoreViewFactory.h:
=== Safari-109 ===
2003-10-08 David Hyatt <hyatt@apple.com>
Fix for 3436723, the shrink-to-fit algorithm for positioned elements did not match
the algorithm specified in section 10.3.7 of the CSS2.1 specification. The min-width
of the element was not being taken into account like it should have been.
Reviewed by mjs
* khtml/rendering/render_box.cpp:
(RenderBox::calcAbsoluteHorizontal):
2003-10-08 David Hyatt <hyatt@apple.com>
Implement min/max width and min/max height support for replaced elements.
Reviewed by ken
* khtml/rendering/render_box.cpp:
(RenderBox::calcReplacedWidth):
(RenderBox::calcReplacedWidthUsing):
(RenderBox::calcReplacedHeight):
(RenderBox::calcReplacedHeightUsing):
(RenderBox::availableHeight):
(RenderBox::availableHeightUsing):
* khtml/rendering/render_box.h:
2003-10-08 Maciej Stachowiak <mjs@apple.com>
Fix development build.
* kwq/KWQExceptions.h: Correct assertion args.
2003-10-08 Maciej Stachowiak <mjs@apple.com>
Reviewed by Ken.
Start on blocking Cocoa exceptions when calling ObjC from C++ to
avoid unreproducible crashes when this happens.
* kwq/KWQExceptions.h: Added. Helper macros for exception blocking.
* WebCore.pbproj/project.pbxproj: Add new header
In all these files, block exceptions when calling ObjC from C++,
or explain why not.
* kwq/KWQAccObjectCache.mm:
* kwq/KWQApplication.mm:
* kwq/KWQButton.mm:
(QButton::QButton):
(QButton::~QButton):
(QButton::setText):
(QButton::text):
(QButton::clicked):
(QButton::simulateClick):
(QButton::setFont):
(QButton::focusPolicy):
* kwq/KWQCheckBox.mm:
(QCheckBox::QCheckBox):
(QCheckBox::setChecked):
(QCheckBox::isChecked):
(QCheckBox::dimensions):
* kwq/KWQColor.mm:
* kwq/KWQComboBox.mm:
(QComboBox::QComboBox):
(QComboBox::~QComboBox):
(QComboBox::insertItem):
(QComboBox::sizeHint):
(QComboBox::setCurrentItem):
(QComboBox::updateCurrentItem):
(QComboBox::setFont):
(QComboBox::dimensions):
* kwq/KWQCursor.mm:
* kwq/KWQFile.mm:
* kwq/KWQFileButton.mm:
(KWQFileButton::KWQFileButton):
(KWQFileButton::~KWQFileButton):
(KWQFileButton::setFilename):
(KWQFileButton::sizeForCharacterWidth):
(KWQFileButton::frameGeometry):
(KWQFileButton::setFrameGeometry):
(KWQFileButton::baselinePosition):
(KWQFileButton::filenameChanged):
* kwq/KWQKCookieJar.mm:
(KWQKCookieJar::cookie):
(KWQKCookieJar::setCookie):
(KWQKCookieJar::cookieEnabled):
* kwq/KWQKHTMLPartBrowserExtension.mm:
(KHTMLPartBrowserExtension::createNewWindow):
(KHTMLPartBrowserExtension::setIconURL):
(KHTMLPartBrowserExtension::setTypedIconURL):
* kwq/KWQKHistoryProvider.mm:
(KParts::HistoryProvider::contains):
* kwq/KWQKPartsBrowserInterface.mm:
(KParts::BrowserInterface::callMethod):
* kwq/KWQKStandardDirs.mm:
* kwq/KWQKURL.mm:
* kwq/KWQKWinModule.mm:
(KWinModule::workArea):
* kwq/KWQObject.mm:
* kwq/KWQString.mm:
(QString::getNSString):
* kwq/KWQTimer.mm:
* kwq/KWQWindowWidget.mm:
2003-10-07 David Hyatt <hyatt@apple.com>
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:]):
2003-10-07 Ken Kocienda <kocienda@apple.com>
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.
2003-10-07 David Hyatt <hyatt@apple.com>
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:
2003-10-07 Darin Adler <darin@apple.com>
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.
2003-10-07 Darin Adler <darin@apple.com>
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>.
2003-10-06 David Hyatt <hyatt@apple.com>
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):
2003-10-06 Darin Adler <darin@apple.com>
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.
2003-10-05 Maciej Stachowiak <mjs@apple.com>
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.
2003-10-06 Darin Adler <darin@apple.com>
* 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.
2003-10-03 Darin Adler <darin@apple.com>
- 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:
2003-10-03 Chris Blumenberg <cblu@apple.com>
Removed eastCursor.tiff because it was added by mistake.
* Resources/eastCursor.tiff: Removed.
* WebCore.pbproj/project.pbxproj:
2003-10-03 Maciej Stachowiak <mjs@apple.com>
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.
2003-10-03 Chris Blumenberg <cblu@apple.com>
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:
2003-10-03 Ken Kocienda <kocienda@apple.com>
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.
2003-10-03 David Hyatt <hyatt@apple.com>
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):
2003-10-02 David Hyatt <hyatt@apple.com>
Remove the speed hit from using the UC break locators by not using them when
checking if the current character is &nbsp; and by also using a global text
break locator object.
Reviewed by rjw
* khtml/rendering/break_lines.cpp:
=== Safari-108 ===
2003-10-02 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- fixed 3398622 - Crash when JavaScript changes display style
This was a problem with one of the many global variables in
bidi.cpp, last, having a stale value from the last layout that
pointed to a dead node. I fixed this by refactoring the code to
put most of the global variables in a struct allocated on the
stack, and pass around a reference to the struct. Seems much
cleaner (if somewhat wordier) this way. There are still more
global variables to kill here.
* khtml/rendering/bidi.cpp:
(khtml::BidiIterator::BidiIterator):
(khtml::BidiStatus::BidiStatus):
(khtml::BidiInfo::BidiInfo):
(khtml::Bidinext):
(khtml::first):
(khtml::BidiIterator::increment):
(khtml::checkMidpoints):
(khtml::appendRunsForObject):
(khtml::appendRun):
(khtml::embed):
(khtml::RenderBlock::computeHorizontalPositionsForLine):
(khtml::RenderBlock::bidiReorderLine):
(khtml::buildCompactRuns):
(khtml::RenderBlock::layoutInlineChildren):
(khtml::RenderBlock::findNextLineBreak):
* khtml/rendering/bidi.h:
* khtml/rendering/render_block.h:
2003-10-02 David Hyatt <hyatt@apple.com>
Work on exposing elements to the Acc API. This patch gets us to the point where text
under the mouse is voiced.
Reviewed by darin
* kwq/KWQAccObject.h:
* kwq/KWQAccObject.mm:
(-[KWQAccObject initWithRenderer:]):
(-[KWQAccObject parentObject]):
(-[KWQAccObject parentObjectUnignored]):
(-[KWQAccObject addChildrenToArray:]):
(-[KWQAccObject role]):
(-[KWQAccObject roleDescription]):
(-[KWQAccObject value]):
(-[KWQAccObject title]):
(-[KWQAccObject position]):
(-[KWQAccObject size]):
(-[KWQAccObject accessibilityIsIgnored]):
(-[KWQAccObject accessibilityAttributeNames]):
(-[KWQAccObject accessibilityActionNames]):
(-[KWQAccObject accessibilityIsAttributeSettable:]):
(-[KWQAccObject accessibilityAttributeValue:]):
(-[KWQAccObject accessibilityHitTest:]):
* kwq/KWQAccObjectCache.mm:
(KWQAccObjectCache::accObject):
(KWQAccObjectCache::setAccObject):
(KWQAccObjectCache::removeAccObject):
* kwq/WebCoreBridge.h:
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge accessibilityTree]):
2003-10-02 Darin Adler <darin@apple.com>
Reviewed by Ken.
* kwq/KWQRenderTreeDebug.cpp: (quoteAndEscapeNonPrintables): Since our text rendering renders
non-breaking spaces the same as spaces, dump them as spaces. Do the same with newlines since
I am about to change our text rendering to do the same with newlines.
* layout-tests: Updated test results.
2003-10-01 David Hyatt <hyatt@apple.com>
Avoid doing extra work when tearing down the document by checking to see if
we're in the destruction of the document.
Reviewed by darin
* khtml/rendering/render_block.cpp:
* khtml/rendering/render_container.cpp:
(RenderContainer::removeChildNode):
2003-10-01 Richard Williamson <rjw@apple.com>
Fixed 3438441. Pass extra info up to WebKit about load type, specifically is a load is triggered by JS running in an onLoad handler.
Reviewed by Ken.
* khtml/ecma/kjs_binding.h:
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::openURL):
(KWQKHTMLPart::openURLRequest):
(KWQKHTMLPart::submitForm):
(KWQKHTMLPart::urlSelected):
* kwq/KWQKHTMLPartBrowserExtension.mm:
(KHTMLPartBrowserExtension::createNewWindow):
* kwq/WebCoreBridge.h:
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge saveDocumentToPageCache]):
Nothing changed. Tweaked spacing.
2003-10-01 Chris Blumenberg <cblu@apple.com>
<rdar://problem/2942589>: CSS cursors are not implemented
Reviewed by Dave.
* Resources/eastCursor.tiff: Added.
* Resources/eastResizeCursor.tiff: Added.
* Resources/helpCursor.tiff: Added.
* Resources/moveCursor.tiff: Added.
* Resources/northEastResizeCursor.tiff: Added.
* Resources/northResizeCursor.tiff: Added.
* Resources/northWestResizeCursor.tiff: Added.
* Resources/southEastResizeCursor.tiff: Added.
* Resources/southResizeCursor.tiff: Added.
* Resources/southWestResizeCursor.tiff: Added.
* Resources/waitCursor.tiff: Added.
* Resources/westResizeCursor.tiff: Added.
* WebCore.pbproj/project.pbxproj:
* khtml/css/cssparser.cpp: special-case the hand cursor to mean pointer
(CSSParser::parseValue):
* khtml/css/cssvalues.c: generated changes
(hash_val):
(findValue):
* khtml/css/cssvalues.h: generated changes
* khtml/css/cssvalues.in: removed the progress cursor from the list because it was messing up the mapping
* khtml/khtmlview.cpp: call new cursor methods
* kwq/KWQKCursor.h:
* kwq/KWQKCursor.mm:
(+[NSCursor _WebCore_cursorWithName:hotSpot:]): new, loads and caches cursors
(KCursor::crossCursor): get the AppKit cross hair cursor
(KCursor::handCursor): call _WebCore_cursorWithName:hotSpot:
(KCursor::sizeAllCursor): ditto
(KCursor::waitCursor): ditto
(KCursor::whatsThisCursor): ditto
(KCursor::eastResizeCursor): new, call _WebCore_cursorWithName:hotSpot:
(KCursor::northResizeCursor): ditto
(KCursor::northEastResizeCursor): ditto
(KCursor::northWestResizeCursor): ditto
(KCursor::southResizeCursor): ditto
(KCursor::southEastResizeCursor): ditto
(KCursor::southWestResizeCursor): ditto
(KCursor::westResizeCursor): ditto
2003-10-01 David Hyatt <hyatt@apple.com>
Clean up our detach model so that you can always get to a document, even for
anonymous content. Also stubbing out and adding the accessibility objects.
Reviewed by darin, mjs, john
* ChangeLog:
* WebCore.pbproj/project.pbxproj:
* khtml/rendering/render_block.cpp:
* khtml/rendering/render_box.cpp:
(RenderBox::detach):
* khtml/rendering/render_box.h:
* khtml/rendering/render_canvas.cpp:
(RenderCanvas::RenderCanvas):
* khtml/rendering/render_container.cpp:
(RenderContainer::detach):
(RenderContainer::addChild):
(RenderContainer::updatePseudoChild):
(RenderContainer::insertChildNode):
(RenderContainer::removeLeftoverAnonymousBoxes):
* khtml/rendering/render_container.h:
* khtml/rendering/render_flow.cpp:
(RenderFlow::createAnonymousFlow):
(RenderFlow::deleteLineBoxes):
(RenderFlow::detach):
* khtml/rendering/render_flow.h:
* khtml/rendering/render_form.cpp:
(RenderTextArea::detach):
* khtml/rendering/render_form.h:
* khtml/rendering/render_image.cpp:
(RenderImage::RenderImage):
(RenderImage::detach):
* khtml/rendering/render_image.h:
* khtml/rendering/render_inline.cpp:
(RenderInline::addChildToFlow):
(RenderInline::splitFlow):
(RenderInline::renderName):
* khtml/rendering/render_list.cpp:
(RenderListItem::setStyle):
(RenderListItem::detach):
(RenderListItem::updateMarkerLocation):
(RenderListMarker::RenderListMarker):
* khtml/rendering/render_list.h:
* khtml/rendering/render_object.cpp:
(RenderObject::RenderObject):
(RenderObject::information):
(RenderObject::dump):
(RenderObject::createAnonymousBlock):
(RenderObject::remove):
(RenderObject::detach):
* khtml/rendering/render_object.h:
* khtml/rendering/render_replaced.cpp:
(RenderWidget::detach):
* khtml/rendering/render_replaced.h:
* khtml/rendering/render_table.cpp:
(RenderTable::addChild):
(RenderTableSection::detach):
(RenderTableSection::addChild):
(RenderTableRow::detach):
(RenderTableRow::addChild):
(RenderTableCell::detach):
* khtml/rendering/render_table.h:
* khtml/rendering/render_text.cpp:
(RenderText::detach):
(RenderText::deleteRuns):
* khtml/rendering/render_text.h:
* khtml/xml/dom_docimpl.cpp:
(DocumentImpl::DocumentImpl):
(DocumentImpl::~DocumentImpl):
(DocumentImpl::detach):
(DocumentImpl::getOrCreateAccObjectCache):
* khtml/xml/dom_docimpl.h:
* khtml/xml/dom_nodeimpl.cpp:
(NodeImpl::detach):
* kwq/KWQAccObject.h: Added.
* kwq/KWQAccObject.mm: Added.
(-[KWQAccObject x]):
(-[KWQAccObject y]):
(-[KWQAccObject width]):
(-[KWQAccObject height]):
(-[KWQAccObject detached]):
(-[KWQAccObject detach]):
(-[KWQAccObject data]):
(-[KWQAccObject setData:]):
(-[KWQAccObject firstChild]):
(-[KWQAccObject lastChild]):
(-[KWQAccObject previousSibling]):
(-[KWQAccObject nextSibling]):
(-[KWQAccObject parentObject]):
* kwq/KWQAccObjectCache.h: Added.
* kwq/KWQAccObjectCache.mm: Added.
(KWQAccObjectCache::KWQAccObjectCache):
(KWQAccObjectCache::~KWQAccObjectCache):
(KWQAccObjectCache::accObject):
(KWQAccObjectCache::setAccObject):
(KWQAccObjectCache::removeAccObject):
(KWQAccObjectCache::detach):
* layout-tests/css1/pseudo/firstletter-expected.txt:
* layout-tests/css1/pseudo/multiple_pseudo_elements-expected.txt:
* layout-tests/fast/css-generated-content/002-expected.txt:
* layout-tests/fast/css-generated-content/004-expected.txt:
* layout-tests/fast/css-generated-content/005-expected.txt:
* layout-tests/fast/css-generated-content/006-expected.txt:
* layout-tests/fast/selectors/039-expected.txt:
* layout-tests/fast/selectors/039b-expected.txt:
* layout-tests/fast/selectors/041-expected.txt:
* layout-tests/fast/selectors/042-expected.txt:
* layout-tests/fast/selectors/166a-expected.txt:
* layout-tests/fast/selectors/168-expected.txt:
* layout-tests/fast/selectors/168a-expected.txt:
* layout-tests/fast/selectors/169-expected.txt:
* layout-tests/fast/selectors/169a-expected.txt:
* layout-tests/fast/text/firstline/002-expected.txt:
* layout-tests/fast/text/firstline/003-expected.txt:
2003-10-01 David Hyatt <hyatt@apple.com>
Fix for 3163840, the images are mispositioned on the DHTML menus at the top of
www.aa.com (and in many other places). We needed to support returning the right
value from hasProperty and tryGet for 'cssFloat'.
This patch also adds support for getting/setting our custom CSS properties (-khtml-*)
and just factors the code a bit better for all the special values.
Reviewed by darin
* khtml/ecma/kjs_css.cpp:
(cssPropertyName):
(DOMCSSStyleDeclaration::hasProperty):
(DOMCSSStyleDeclaration::tryGet):
(DOMCSSStyleDeclaration::tryPut):
2003-10-01 Darin Adler <darin@apple.com>
Reviewed by Dave.
- fixed 3437309 -- REGRESSION (100-107): Javascript menu doesn't work at www.aa.com
* khtml/xml/dom_elementimpl.cpp: (ElementImpl::removeAttribute): Restored the old behavior
for removeAttribute and removeAttributeNS; these don't give NOT_FOUND_ERR. But keep the
NOT_FOUND_ERR for removeAttributeNode and removedNamedItem.
2003-10-01 Ken Kocienda <kocienda@apple.com>
Reviewed by me
* kwq/KWQWidget.mm:
(QWidget::focusPolicy): Improved comment.
2003-10-01 Ken Kocienda <kocienda@apple.com>
Reviewed by Maciej
Fix for these bugs:
<rdar://problem/3439736>: WebCore form button widgets do not accept focus
<rdar://problem/3440770>: WebCore form button widgets do not take part in tabbing order
* kwq/KWQButton.h: Add focusPolicy function declaration.
* kwq/KWQButton.mm:
(-[KWQButton nextKeyView]): Add tabbing support for buttons.
(-[KWQButton previousKeyView]): Ditto
(-[KWQButton nextValidKeyView]): Ditto
(-[KWQButton previousValidKeyView]): Ditto
(QButton::focusPolicy): Add focusPolicy implementation. This calls through
to the recently-added accessor for full keyboard access to help in the
determination for focus policy. For now, full keyboard access must be
turned on for buttons to receive focus.
* kwq/KWQTextEdit.h: Remove focusPolicy specialization from this class. The
implementation in QWidget now serves this class well.
* kwq/KWQTextEdit.mm: Ditto
* kwq/KWQWidget.h: Added isEnabled function. Small, unrelated cleanup to
move the no-implementation setFocusPolicy() and setFocusProxy() functions
fully into the header file.
* kwq/KWQWidget.mm:
(QWidget::isEnabled): Added. Calls through to the Cocoa view to retrieve
this information.
(QWidget::focusPolicy): Much improved focus policy function is now more
general in stipulating the conditions for focus policy, and will work for
more widgets.
2003-10-01 David Hyatt <hyatt@apple.com>
Fix for 3440804, broken scrollbars in downloads window. Make Auto be the default
value in the enum, so that all scrollviews will be automatically initialized to be
auto.
Reviewed by cblu
* kwq/KWQScrollView.h:
* kwq/WebCoreFrameView.h:
2003-09-30 Ken Kocienda <kocienda@apple.com>
Reviewed by me
* WebCore.pbproj/project.pbxproj: Made WebCoreKeyboardAccess.h a private header.
2003-09-30 Ken Kocienda <kocienda@apple.com>
Reviewed by Maciej
Fix for this bug:
<rdar://problem/3439688>: WebKit needs to retrieve full keyboard access preference
* WebCore.pbproj/project.pbxproj:
* kwq/KWQKHTMLPart.h: Declare keyboardUIMode accessor.
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::keyboardUIMode): Implement keyboardUIMode accessor (calls through the bridge).
* kwq/WebCoreBridge.h: Declare the bridge accessor.
* kwq/WebCoreKeyboardAccess.h: Added. Header defines keyboard UI mode constants.
2003-09-30 Maciej Stachowiak <mjs@apple.com>
Reviewed by Ken.
- fixed 3375281 - Keyboard event handlers not fired if focus not in form field
- fixed 3242927 - KeyPressed Event in Javascript don't work
- fixed 3375353 - keyboard event.target not updated when blurring from form items
- fixed 3183754 - returning false from key press handlers does not prevent typing or form submission
* khtml/xml/dom_nodeimpl.cpp:
(NodeImpl::dispatchKeyEvent): Force false when defaultHandled instead of
based on a weird rule appropriate for KDE but not for us.
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::keyEvent): If there's no focus node, give the event
to the body element instead of giving up. Also, reverse
expectedsense of return value dispatchKeyEvent, since it returns
true if it *didn't* swallow the event. And finally, let the key press
event as well as the key down event for the initial NSKeyDown block
default handling.
* kwq/KWQListBox.mm:
(-[KWQTableView keyDown:]): Respect return value from interceptKeyEvent:
(-[KWQTableView keyUp:]): ditto
* kwq/KWQTextArea.mm:
(-[KWQTextAreaTextView keyDown:]): ditto
(-[KWQTextAreaTextView keyUp:]): ditto
* kwq/KWQTextField.mm:
(-[KWQTextField textView:shouldHandleEvent:]): ditto
2003-09-30 David Hyatt <hyatt@apple.com>
Improvements to layout transitions and scrollbar appearance/disappearance.
Also implementing a fix for 3264346, overflow applied to body should apply to
the document's scrollers.
Reviewed by darin
* khtml/html/html_baseimpl.cpp:
(HTMLFrameElementImpl::parseAttribute):
* khtml/khtmlview.cpp:
(KHTMLView::KHTMLView):
(KHTMLView::~KHTMLView):
(KHTMLView::resetScrollBars):
(KHTMLView::clear):
(KHTMLView::initScrollBars):
(KHTMLView::applyBodyScrollQuirk):
(KHTMLView::inLayout):
* khtml/khtmlview.h:
* khtml/rendering/render_block.cpp:
* khtml/rendering/render_block.h:
* khtml/rendering/render_canvas.cpp:
(RenderCanvas::layout):
* khtml/rendering/render_form.cpp:
(TextAreaWidget::TextAreaWidget):
* khtml/rendering/render_frames.cpp:
(RenderFrame::slotViewCleared):
(RenderPartObject::slotViewCleared):
* khtml/rendering/render_list.cpp:
(RenderListMarker::calcMinMaxWidth):
* khtml/rendering/render_object.cpp:
(RenderObject::repaint):
(RenderObject::repaintRectangle):
* khtml/xml/dom_docimpl.cpp:
(DocumentImpl::setInPageCache):
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::createPart):
* kwq/KWQRenderTreeDebug.cpp:
(write):
(externalRepresentation):
* kwq/KWQScrollView.h:
* kwq/KWQScrollView.mm:
(QScrollView::setVScrollBarMode):
(QScrollView::setHScrollBarMode):
(QScrollView::setScrollBarsMode):
(QScrollView::vScrollBarMode):
(QScrollView::hScrollBarMode):
(QScrollView::hasVerticalScrollBar):
(QScrollView::hasHorizontalScrollBar):
(QScrollView::suppressScrollBars):
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge installInFrame:]):
* kwq/WebCoreFrameView.h:
2003-09-30 David Hyatt <hyatt@apple.com>
Fix for 3437260, nil deref of the render style because it hasn't been set yet.
Fallout from my incremental repainting landing.
Reviewed by darin
* khtml/rendering/render_replaced.cpp:
(RenderWidget::setQWidget):
2003-09-29 David Hyatt <hyatt@apple.com>
Fix for 3438479, tables expand on every layout when a cell has percentage height
children.
Reviewed by darin
* khtml/rendering/render_table.cpp:
(RenderTableSection::calcRowHeight):
(RenderTableRow::layout):
2003-09-29 Chris Blumenberg <cblu@apple.com>
Fixed: <rdar://problem/3332460>: nil-deref in khtml::RenderWidget::eventFilter with onchange handler
Reviewed by darin.
* kwq/KWQTextField.mm:
(-[KWQTextField controlTextDidEndEditing:]): call setHasFocus:NO last so we have the widget that lets us get to the bridge and lets us call controlTextDidEndEditing
2003-09-29 David Hyatt <hyatt@apple.com>
Fix for 3425053, text past the bottom of a positioned table doesn't repaint.
3426847 is the same bug. Both are fixed by ensuring that calcHeight doesn't actually
do anything other than margin computation and position determination for positioned
elements. In reality, for weird edge cases like implying the height via explicit top and
bottom properties, we'll still be wrong.
Reviewed by darin
* ChangeLog:
* khtml/rendering/render_table.cpp:
(RenderTable::layout):
2003-09-29 David Hyatt <hyatt@apple.com>
Make sure that timeouts updateRendering after they execute the scheduled timer
action.
Also fixing 3429455, maxwidth of pres miscomputed when two blank lines occur at
the end of a pre text run.
Reviewed by darin, mjs (setTimeout fix), darin (pre fix)
* khtml/ecma/kjs_window.cpp:
(ScheduledAction::execute):
* khtml/rendering/render_text.cpp:
(RenderText::trimmedMinMaxWidth):
(RenderText::calcMinMaxWidth):
2003-09-29 Darin Adler <darin@apple.com>
Reviewed by John.
- fixed 3437292 -- Safari uses wrong characters for &and; and &or; entities
* khtml/html/kentities.gperf: Corrected values for &and; and &or; entities.
Checked all the rest against a list on the W3C site, and those are the only two that were wrong.
* khtml/html/kentities.c: Regnenerated.
2003-09-26 Ken Kocienda <kocienda@apple.com>
Reviewed by John
Fix for this bug:
<rdar://problem/3435532>: REGRESSION: tabbing to textareas causes infinite recursion
Add recursion guards to the becomeFirstResponder method, otherwise calling
eventFilter with a FocusIn event will cause the infinite recursion
described in the bug.
* kwq/KWQTextArea.mm:
(-[KWQTextAreaTextView becomeFirstResponder]):
2003-09-25 Maciej Stachowiak <mjs@apple.com>
Reviewed by John.
* khtml/ecma/kjs_window.cpp:
(Window::installTimeout): Variant that takes a function and args.
(WindowFunc::tryCall): If the argument is a function, call the
function variant of installTimeout instead of pointlessly passing
the string. Also, correctly implement the code to pass extra args
along.
* khtml/ecma/kjs_window.h:
2003-09-25 Maciej Stachowiak <mjs@apple.com>
Roll out build system change since it did not actually work. :-(
* WebCore.pbproj/project.pbxproj:
2003-09-25 David Hyatt <hyatt@apple.com>
Landing the new repainting code. This code eliminates many redundant layouts, makes
layout scheduling work properly when called from WebKit, cleans up relpositioned inlines
that act as containing blocks for absolute positioned children, and eliminates the
repaint timer.
Reviewed by kocienda
* khtml/html/html_documentimpl.cpp:
(HTMLDocumentImpl::close):
* khtml/khtmlview.cpp:
(KHTMLView::KHTMLView):
* khtml/khtmlview.h:
* khtml/rendering/render_block.cpp:
* khtml/rendering/render_block.h:
* khtml/rendering/render_box.cpp:
(RenderBox::setStyle):
(RenderBox::setPixmap):
(RenderBox::getAbsoluteRepaintRect):
(RenderBox::computeAbsoluteRepaintRect):
(RenderBox::repaintIfMoved):
(RenderBox::calcAbsoluteHorizontal):
(RenderBox::calcAbsoluteVertical):
* khtml/rendering/render_box.h:
* khtml/rendering/render_canvas.cpp:
(RenderCanvas::layout):
(RenderCanvas::repaintViewRectangle):
(RenderCanvas::getAbsoluteRepaintRect):
(RenderCanvas::computeAbsoluteRepaintRect):
* khtml/rendering/render_canvas.h:
* khtml/rendering/render_container.cpp:
(RenderContainer::addChild):
(RenderContainer::removeChildNode):
(RenderContainer::removeChild):
(RenderContainer::appendChildNode):
(RenderContainer::insertChildNode):
* khtml/rendering/render_flexbox.cpp:
* khtml/rendering/render_flow.cpp:
(RenderFlow::getAbsoluteRepaintRect):
* khtml/rendering/render_flow.h:
* khtml/rendering/render_image.cpp:
(RenderImage::setPixmap):
(RenderImage::layout):
* khtml/rendering/render_inline.cpp:
(RenderInline::addChildToFlow):
* khtml/rendering/render_layer.cpp:
(RenderLayer::convertToLayerCoords):
* khtml/rendering/render_list.cpp:
(RenderListMarker::setPixmap):
* khtml/rendering/render_object.cpp:
(RenderObject::RenderObject):
(RenderObject::setNeedsLayout):
(RenderObject::setChildNeedsLayout):
(RenderObject::markContainingBlocksForLayout):
(RenderObject::containingBlock):
(RenderObject::repaint):
(RenderObject::repaintRectangle):
(RenderObject::repaintAfterLayoutIfNeeded):
(RenderObject::repaintIfMoved):
(RenderObject::repaintPositionedAndFloatingDescendants):
(RenderObject::getAbsoluteRepaintRect):
(RenderObject::getAbsoluteRepaintRectIncludingDescendants):
(RenderObject::computeAbsoluteRepaintRect):
(RenderObject::setStyle):
(RenderObject::container):
(RenderObject::detach):
(RenderObject::scheduleRelayout):
* khtml/rendering/render_object.h:
* khtml/rendering/render_style.cpp:
(RenderStyle::diff):
* khtml/rendering/render_table.cpp:
(RenderTable::layout):
(RenderTableRow::getAbsoluteRepaintRect):
(RenderTableCell::computeAbsoluteRepaintRect):
* khtml/rendering/render_table.h:
* khtml/xml/dom_nodeimpl.cpp:
(NodeBaseImpl::insertBefore):
(NodeBaseImpl::replaceChild):
(NodeBaseImpl::appendChild):
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::clearTimers):
* kwq/KWQRenderTreeDebug.cpp:
(write):
(externalRepresentation):
* kwq/KWQRenderTreeDebug.h:
2003-09-25 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
* WebCore.pbproj/project.pbxproj: Don't hack install name. Instead
of embedding into Safari, embed into WebKit as sub-umbrella.
=== Safari-107 ===
2003-09-25 Darin Adler <darin@apple.com>
- rolled out change to fix 3390850 because it caused a performance regression
* khtml/misc/decoder.cpp: (Decoder::decode): Rolled out change.
2003-09-25 Ken Kocienda <kocienda@apple.com>
Reviewed by Dave
Name change: TextRun is now InlineTextBox. Some related names
have been changed as well. There should be no change in
behavior as a result of this patch.
* khtml/khtml_part.cpp:
(KHTMLPart::selectedText):
(firstRunAt):
(lastRunAt):
(startAndEndLineNodesIncludingNode):
* khtml/rendering/bidi.cpp:
* khtml/rendering/render_flow.cpp:
(RenderFlow::paintLineBoxDecorations):
* khtml/rendering/render_line.cpp:
(InlineFlowBox::placeBoxesHorizontally):
(InlineFlowBox::placeBoxesVertically):
* khtml/rendering/render_line.h:
* khtml/rendering/render_text.cpp:
(InlineTextBox::detach):
(throw):
(InlineTextBox::operator delete):
(InlineTextBox::paintSelection):
(InlineTextBox::paintDecoration):
(InlineTextBox::checkSelectionPoint):
(InlineTextBoxArray::InlineTextBoxArray):
(InlineTextBoxArray::compareItems):
(InlineTextBoxArray::findFirstMatching):
(RenderText::deleteRuns):
(RenderText::findNextInlineTextBox):
(RenderText::nodeAtPoint):
(RenderText::checkSelectionPointIgnoringContinuations):
(RenderText::cursorPos):
(RenderText::posOfChar):
(RenderText::paintObject):
(RenderText::createInlineBox):
(RenderText::position):
(RenderText::width):
* khtml/rendering/render_text.h:
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::attributedString):
* kwq/KWQRenderTreeDebug.cpp:
(writeTextRun):
(write):
2003-09-25 Darin Adler <darin@apple.com>
Added a new layout test.
* layout-tests/fast/forms/form-element-geometry-expected.txt: Added.
* layout-tests/fast/forms/form-element-geometry.html: Added.
2003-09-24 Darin Adler <darin@apple.com>
* layout-tests/fast/table/003-expected.txt: Updated for textarea width change.
2003-09-24 David Hyatt <hyatt@apple.com>
Fix for 3429646, <img src="blah"<img src="foo"> should show up as two images.
Reviewed by darin
* khtml/html/htmlparser.cpp:
(KHTMLParser::handleResidualStyleCloseTagAcrossBlocks):
* khtml/html/htmltokenizer.cpp:
(HTMLTokenizer::parseTag):
2003-09-24 Darin Adler <darin@apple.com>
Reviewed by Dave.
- fixed a recent regression, and ...
- fixed 3386544 -- ARCH: <object>s don't support transclusion like <iframe>s do
* khtml/khtml_part.cpp: (KHTMLPart::childFrame): Added back a cast I should
not have removed to fix the function.
2003-09-24 David Hyatt <hyatt@apple.com>
Fix for 3430612, crash on about:blank in updateHoverActiveState. Just missing
a null-check. Also remove a hover optimization that was bogus.
Reviewed by darin
* khtml/rendering/render_layer.cpp:
(RenderLayer::updateHoverActiveState):
2003-09-24 Richard Williamson <rjw@apple.com>
Fixed 3420736. Clear renderer caches when get an ATS font changed notification. This fix may be moot depending on progress toward fixing 2695906.
* kwq/WebCoreBridge.h:
* kwq/WebCoreBridge.mm:
(+[WebCoreBridge updateAllViews]):
2003-09-24 Darin Adler <darin@apple.com>
- a new test for JavaScript date parsing
* layout-tests/fast/js/date-parse-test-expected.txt: Added.
* layout-tests/fast/js/date-parse-test.html: Added.
2003-09-24 Darin Adler <darin@apple.com>
Reviewed by Ken.
- fixed ownerElement for documents in HTML objects (helpful for some work Dave is doing)
* khtml/khtml_part.h: Change name of frame function to childFrame for clarity.
* khtml/khtml_part.cpp:
(KHTMLPart::slotChildStarted): Call the frame function by its new name, childFrame.
(KHTMLPart::slotChildCompleted): Ditto.
(KHTMLPart::slotChildURLRequest): Ditto.
(KHTMLPart::childFrame): Change name from frame to childFrame for clarity, and make it work
for parts inside HTML objects, not just normal frames and iframes. The change in behavior is
the actual fix. Note that for the three callers above, it's an error to call this when the
result would be 0, so there's no harm in doing the extra search of HTML objects in those cases.
* khtml/xml/dom_docimpl.cpp: (DocumentImpl::ownerElement): Call the frame function by its new
name, childFrame. This is the caller that will benefit most from the change in behavior.
* kwq/KWQKHTMLPart.h: Remove childFrameForPart function, which is superseded by the
childFrame function now.
* kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::nextKeyViewInFrameHierarchy): Use childFrame instead
of childFrameForPart.
2003-09-23 Darin Adler <darin@apple.com>
Reviewed by Ken.
- fixed 3390850 -- Shift_JIS in meta tag ignored because <img> tag in JavaScript comes first (vintagecomp.com)
* khtml/misc/decoder.cpp: (Decoder::decode): Don't let tags inside a script make us think we're in the body.
Later we can enhance this even more.
2003-09-22 Darin Adler <darin@apple.com>
Reviewed by Ken.
- fixed 3292723 -- onBlur() getting called twice on <input type=text>
* khtml/rendering/render_replaced.cpp: (RenderWidget::eventFilter):
Call setFocusNode(0) instead of explicitly sending a blur event, otherwise
setFocusNode will send a second blur event later.
2003-09-22 Darin Adler <darin@apple.com>
- fixed 3391837 -- we list ISO-8859-8-E as visual ordering for Hebrew; it's "explicit ordering", not supported
* kwq/mac-encodings.txt: Removed ISO-8859-8-E.
* kwq/KWQCharsetData.c: Regenerated.
2003-09-22 Darin Adler <darin@apple.com>
* kwq/KWQTextEdit.mm: (QTextEdit::sizeWithColumnsAndRows): Made it compile.
2003-09-22 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fixed 3306041 -- Airborne tracking number field too narrow, tracking doesn't work (textare col property)
* khtml/rendering/render_form.cpp: (RenderTextArea::calcMinMaxWidth): Call the QTextEdit
to ask it what size, rather than trying to compute it. This is the same thing we do with
other widgets, I just hadn't done textarea yet.
* kwq/KWQTextEdit.h: Added sizeWithColumnsAndRows function.
* kwq/KWQTextEdit.mm: (QTextEdit::sizeWithColumnsAndRows): Added. Calls through to the
KWQTextArea object.
* kwq/KWQTextArea.h: Added sizeWithColumns:rows: method.
* kwq/KWQTextArea.mm:
(-[KWQTextArea _createTextView]): Make consistent with other callers of the size mapping methods
by using [self class] instead of NSScrollView, and getting hasHorizontalScroller and
hasVerticalScroller from the view.
(-[KWQTextArea setFrame:]): Make consistent with other callers of the size mapping methods
by using [self class] instead of NSScrollView.
(-[KWQTextArea sizeWithColumns:rows:]): Added. Starts by computing the width and height of the
columns specified, using a canonical width of a "0" character. Then converts that to a container
size by adding line fragment padding. Then converts that into the text view size by adding the
text container inset. Then converts that into the scroll view size by calling frameSizeForContentSize:.
2003-09-22 Darin Adler <darin@apple.com>
* WebCore.pbproj/project.pbxproj: Rename Mixed build style to OptimizedWithSymbols.
2003-09-22 Darin Adler <darin@apple.com>
Reviewed by Ken.
- research determined we were using nothing defined in config.h, so I got rid of it
* Makefile.am: Removed rules to generate config.h.
* config.h: Removed.
* WebCore.pbproj/project.pbxproj: Removed define of HAVE_CONFIG_H.
* WebCorePrefix.h: Removed include of <config.h>.
* ForwardingHeaders/config.h: Emptied this file out. Can't remove this because there are
some includes of <config.h> without HAVE_CONFIG_H wrappers.
2003-09-21 Darin Adler <darin@apple.com>
Reviewed by Dave.
- fixed 3106411 -- show title attribute for page elements in tooltip on mouseover (important for PeopleSoft)
* kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): Set the value of a new element dictionary
key, WebCoreElementTitleKey. This gives the title for an element, walking up the DOM tree as necessary
to find it. It's used for tool tips at the WebKit level.
* kwq/WebCoreBridge.h: Added WebCoreElementTitleKey and WebCorePageCacheStateKey.
* WebCore.exp: Added all the constants from WebCoreBridge.h; these should be exported even though they
are not being used at the moment because the "WebCore and WebKit use the same constant keys" hack we
are doing at the WebKit level means we can just use the WebKit keys on the WebKit side.
* WebCore-combined.exp: Regenerated.
2003-09-20 Darin Adler <darin@apple.com>
Reviewed by Dave.
- fixed 3328481 -- selection in select element list box does not scroll into view when set programatically
* kwq/KWQListBox.mm: (QListBox::setSelected): Scroll newly-selected item into view.
2003-09-20 Darin Adler <darin@apple.com>
Reviewed by Dave.
- fixed 3429384 -- REGRESSION (89-90): nil-deref in KHTMLPart::write() (cheshiremotorcyclesalvage.com)
* khtml/khtml_part.cpp: (KHTMLPart::write): Add a nil check.
2003-09-20 Darin Adler <darin@apple.com>
Reviewed by Dave.
- more fixes for the W3C DOM tests
* khtml/dom/dom_doc.cpp: (Document::createAttributeNS): Check that the attribute name
is valid and throw INVALID_CHARACTER_ERR if not.
* khtml/dom/dom_element.cpp:
(Element::removeAttributeNode): Get the attribute name properly. The old code would always
get a 0, so this function would always fail.
(Element::setAttributeNS): Check that the attribute name is valid and throw
INVALID_CHARACTER_ERR if not.
(Element::setAttributeNodeNS): Remove redundant exception checks that are also done by
setNamedItem in the implementation. I had to change the implementation of one, so I decided
it was better not to have any duplication.
* khtml/xml/dom_docimpl.h: Added isValidName function.
* khtml/xml/dom_docimpl.cpp:
(DocumentImpl::createHTMLElement): Check that the attribute name is valid and throw
INVALID_CHARACTER_ERR if not.
(DocumentImpl::isValidName): Added. Used to check for valid names.
* khtml/xml/dom_elementimpl.cpp:
(NamedAttrMapImpl::setNamedItem): Don't do the document check until after checking for
the "replace self" case. Otherwise we raise a spurious "in use" exception.
(NamedAttrMapImpl::addAttribute): Point the new attribute at the element.
2003-09-19 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
Roll out old fix for 3410980 and do a new better fix.
* khtml/html/html_documentimpl.cpp:
(HTMLDocumentImpl::close):
* khtml/khtml_part.h:
* kwq/KWQKHTMLPart.mm:
* kwq/WebCoreBridge.h:
2003-09-19 Darin Adler <darin@apple.com>
Reviewed by Dave.
- update layout tests for Dave's change
* layout-tests/apple-only/base/www.excite.com/index-expected.txt:
* layout-tests/fast/block/positioning/051-expected.txt:
* layout-tests/fast/overflow/003-expected.txt:
- fixed 3426272 -- sites that use text-shadow cause leaks (QPainter::setShadow)
* kwq/KWQPainter.mm: (QPainter::setShadow): Release the color space and color.
- fixed some errors that caused failures in the W3C DOM suite
* khtml/ecma/kjs_binding.cpp:
(DOMObject::get): Put "code" in the error object.
(DOMObject::put): Put "code" in the error object.
(DOMFunction::get): Put "code" in the error object.
* khtml/ecma/kjs_dom.cpp: (DOMCharacterDataProtoFunc::tryCall):
Add checks for negative count values. Not clear whether this change is
really great, but it helps us pass W3C DOM tests and clearly won't affect
normal pages in any bad way.
* khtml/xml/dom_elementimpl.cpp:
(AttrImpl::AttrImpl): Set m_specified to true. Since we never set up the
attributes from the DTD anyway, this is fine for now. If we ever go crazy
and implement that, then the bit field is sitting here waiting for us.
(NamedAttrMapImpl::removeNamedItem): The comment from KHTML says they
don't raise the not found exception because "the DOM 2 spec doesn't say
you should". But the DOM Level 1 specification clearly does, and the W3C
DOM Level 1 Core test requires it, so I'm putting it in.
* khtml/xml/dom_nodeimpl.cpp: (NodeImpl::checkAddChild): Typo; this was
returning the wrong error code in the "wrong document" case.
* khtml/xml/dom_stringimpl.cpp:
(DOMStringImpl::remove): Fix overflow case.
(DOMStringImpl::substring): Fix overflow case.
2003-09-19 David Hyatt <hyatt@apple.com>
Fix for 3401409, fix negative z-index. This code actually substantially
reworks layers to be more efficient in both painting and event handling.
It also fixes bugs with clipping as well as with negative z-indices.
Reviewed by kocienda
* khtml/css/cssstyleselector.cpp:
* khtml/rendering/render_block.cpp:
* khtml/rendering/render_block.h:
* khtml/rendering/render_box.cpp:
(RenderBox::setStyle):
(RenderBox::repaintRectangle):
* khtml/rendering/render_box.h:
* khtml/rendering/render_frames.cpp:
(RenderFrameSet::nodeAtPoint):
* khtml/rendering/render_frames.h:
* khtml/rendering/render_image.cpp:
(RenderImage::nodeAtPoint):
* khtml/rendering/render_image.h:
* khtml/rendering/render_inline.cpp:
(RenderInline::nodeAtPoint):
* khtml/rendering/render_inline.h:
* khtml/rendering/render_layer.cpp:
(RenderLayer::RenderLayer):
(RenderLayer::~RenderLayer):
(RenderLayer::updateLayerPosition):
(RenderLayer::stackingContext):
(RenderLayer::enclosingPositionedAncestor):
(RenderLayer::transparentAncestor):
(RenderLayer::addChild):
(RenderLayer::removeChild):
(RenderLayer::convertToLayerCoords):
(RenderLayer::checkScrollbarsAfterLayout):
(RenderLayer::paintScrollbars):
(RenderLayer::paint):
(setClip):
(restoreClip):
(RenderLayer::paintLayer):
(RenderLayer::nodeAtPoint):
(RenderLayer::nodeAtPointForLayer):
(RenderLayer::calculateClipRects):
(RenderLayer::calculateRects):
(RenderLayer::intersectsDamageRect):
(RenderLayer::containsPoint):
(hoverAncestor):
(commonAncestor):
(RenderLayer::updateHoverActiveState):
(sortByZOrder):
(RenderLayer::dirtyZOrderLists):
(RenderLayer::updateZOrderLists):
(RenderLayer::collectLayers):
* khtml/rendering/render_layer.h:
* khtml/rendering/render_object.cpp:
(RenderObject::setStyle):
(RenderObject::document):
(RenderObject::renderArena):
(RenderObject::nodeAtPoint):
* khtml/rendering/render_object.h:
* khtml/rendering/render_text.cpp:
(RenderText::nodeAtPoint):
* khtml/rendering/render_text.h:
* khtml/xml/dom_docimpl.cpp:
(DocumentImpl::DocumentImpl):
(DocumentImpl::~DocumentImpl):
(DocumentImpl::recalcStyleSelector):
(DocumentImpl::setHoverNode):
* khtml/xml/dom_docimpl.h:
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::paint):
(KWQKHTMLPart::paintSelectionOnly):
(KWQKHTMLPart::adjustPageHeight):
* kwq/KWQRect.h:
* kwq/KWQRenderTreeDebug.cpp:
(write):
(writeLayers):
(externalRepresentation):
2003-09-19 Darin Adler <darin@apple.com>
Reviewed by Dave.
* layout-tests: Updated for my mini-controls change.
2003-09-19 Darin Adler <darin@apple.com>
Reviewed by Dave.
- do the prep work for the mini controls feature; Dave will finish this
* khtml/rendering/render_form.cpp: (RenderFormElement::updateFromElement):
Tell the widget about the font size. Our widgets use the font size to
decide whether to use Aqua normal, small, or mini.
* kwq/KWQButton.h: Add setFont.
* kwq/KWQButton.mm:
(QButton::setFont): Set control size based on font.
(KWQNSControlSizeForFont): Determine control size given a font. Dave is going
to tweak this later.
* kwq/KWQCheckBox.h: Add dimensions function for metrics for each control size.
* kwq/KWQCheckBox.mm:
(QCheckBox::sizeHint): Use dimensions.
(QCheckBox::frameGeometry): Use dimensions.
(QCheckBox::setFrameGeometry): Use dimensions.
(QCheckBox::baselinePosition): Use dimensions.
(QCheckBox::dimensions): Added. Has newly tweaked values for all dimensions for
all three control sizes.
* kwq/KWQComboBox.h: Add setFont and dimensions.
* kwq/KWQComboBox.mm:
(QComboBox::sizeHint): Use dimensions.
(QComboBox::frameGeometry): Use dimensions.
(QComboBox::setFrameGeometry): Use dimensions.
(QComboBox::baselinePosition): Use dimensions.
(QComboBox::setFont): Use dimensions.
(QComboBox::dimensions): Added. Has newly tweaked values for all dimensions for
all three control sizes.
* kwq/KWQFileButton.mm: (KWQFileButton::baselinePosition): Change to adapt to
flipped version of file button NSControl.
* kwq/KWQPushButton.h: Add dimensions function for metrics for each control size.
* kwq/KWQPushButton.mm:
(QPushButton::sizeHint): Use dimensions.
(QPushButton::frameGeometry): Use dimensions.
(QPushButton::setFrameGeometry): Use dimensions.
(QPushButton::baselinePosition): Use dimensions.
(QPushButton::dimensions): Added. Has newly tweaked values for all dimensions for
all three control sizes.
* kwq/KWQRadioButton.h: Add dimensions function for metrics for each control size.
* kwq/KWQRadioButton.mm:
(QRadioButton::sizeHint): Use dimensions.
(QRadioButton::frameGeometry): Use dimensions.
(QRadioButton::setFrameGeometry): Use dimensions.
(QRadioButton::baselinePosition): Use dimensions.
(QRadioButton::dimensions): Added. Has newly tweaked values for all dimensions for
all three control sizes.
2003-09-19 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- fixed 3410980 - FileMaker: going forward with an empty forward list makes a frame come out blank sometimes
* khtml/html/html_documentimpl.cpp:
(HTMLDocumentImpl::close): Remove redundant check removed.
* khtml/khtml_part.h:
* kwq/KWQKHTMLPart.h:
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::scheduleHistoryNavigation): Only call the base class
method to actually schedule when it's possible to go back or forward
that number of steps.
* kwq/WebCoreBridge.h:
2003-09-17 John Sullivan <sullivan@apple.com>
- WebCore part of fix for 3157018 -- Would like option to
not print backgrounds
Reviewed by Darin
* kwq/KWQKHTMLSettings.h:
add _shouldPrintBackgrounds field and accessors
* kwq/WebCoreSettings.h:
add shouldPrintBackgrounds field and accessors
* kwq/WebCoreSettings.mm:
(-[WebCoreSettings setShouldPrintBackgrounds:]):
new method, passes value to KHTMLSettings
(-[WebCoreSettings shouldPrintBackgrounds]):
new method
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge styleSheetForPrinting]):
new method, returns a style sheet that has backgrounds
turned off if preference is set that way.
(-[WebCoreBridge reapplyStylesForDeviceType:]):
if printing, set the printStyleSheet to the one we
created based on the preferences. (KHTML has always
had support for a special printStyleSheet, but it was
only being used in !APPLE_CHANGES code.)
* khtml/rendering/render_style.h:
add shouldCorrectTextColor boolean field and accessors
* khtml/xml/dom_docimpl.cpp:
(DocumentImpl::recalcStyle):
tell style to correct text colors if backgrounds aren't being printed
* khtml/rendering/render_text.cpp:
(TextRun::paintSelection):
added comment
(simpleDifferenceBetweenColors):
new function, computes a quick measure of difference
between colors
(correctedTextColor):
if text and background colors are too similar, returns
lightened or darkened text color
(RenderText::paintObject):
if style says to correct text colors, call correctedTextColor
2003-09-17 Darin Adler <darin@apple.com>
Reviewed by Ken.
- fixed 3423404 -- REGRESSION: Japanese page appears blank due to unexpected kTECPartialCharErr
* kwq/KWQTextCodec.mm: (KWQTextDecoder::convertOneChunkUsingTEC): In the case where we're already
going from the small buffer back to the large one, treat kTECPartialCharErr the same as noErr.
Otherwise we'll get confused and drop the contents of the big buffer.
(KWQTextDecoder::convert): Improve the debugging code a bit (still turned off).
=== WebCore-105 ===
2003-09-15 Ken as Darin <darin@apple.com>
Reviewed by Darin and Don.
- fixed 3419957 -- REGRESSION: lines drawn across multiple columns at washingtonpost.com
* khtml/rendering/render_box.cpp: (RenderBox::calcWidth): Always use the width of the line
rather than the width of the containing block for "flow around floats" blocks (<hr>).
This undoes half of the change made to fix bug 3384609.
2003-09-15 Darin Adler <darin@apple.com>
Reviewed by Ken and Don.
- fixed 3417604 -- REGRESSION: dragging scroll thumb causes textarea contents to vanish
* kwq/KWQTextArea.mm: (-[KWQTextArea initWithFrame:]): Deallocated cached graphics state for
the text view as well as for the clip view.
2003-09-13 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fixed 3420547 -- REGRESSION: repro crash in khtml::RenderBlock::findNextLineBreak (wisdomtips.com)
* khtml/rendering/render_block.cpp: (RenderBlock::addChildToFlow): Exclude BR elements when looking for
an element to process first-letter style.
2003-09-13 Darin Adler <darin@apple.com>
* layout-tests/fast/frames/empty-frame-src-expected.txt: Updated test results that changed
due to the change in our handling of frame borders.
=== WebCore-104 ===
2003-09-12 Richard Williamson <rjw@apple.com>
Fixed 3420097. Pass flag up to WebKit indicating that redirects are being cancelled during a pending load.
Reviewed by Darin.
* khtml/khtml_part.cpp:
(KHTMLPart::cancelRedirection):
* khtml/khtml_part.h:
* khtml/khtmlpart_p.h:
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::provisionalLoadStarted):
(KWQKHTMLPart::redirectionTimerStartedOrStopped):
* kwq/WebCoreBridge.h:
=== WebCore-103 ===
2003-09-12 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
* khtml/css/html4.css: Use the same hardcoded default size for
OBJECT and EMBED tags as for IFRAME.
2003-09-12 Darin Adler <darin@apple.com>
Reviewed by Ken.
- fixed 3403223 -- <input type=file> with initial value causes exception, bad results afterwards, when submitted
* kwq/KWQFile.mm: (QFile::QFile): Don't pass an empty string to fileSystemRepresentation,
because that will cause an exception.
=== WebCore-101 ===
2003-09-11 Richard Williamson <rjw@apple.com>
Fixed 3406671. Added a private method for Mail to get selection
rect.
Fixed 3417688. Don't allow https page into page cache.
Reviewed by Darin.
* kwq/KWQFrame.h:
* kwq/KWQFrame.mm:
(QFrame::setFrameStyle):
(QFrame::frameWidth):
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::canCachePage):
* kwq/WebCoreBridge.h:
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge selectionRect]):
(-[WebCoreBridge visibleSelectionRect]):
(-[WebCoreBridge selectionImage]):
(-[WebCoreBridge adjustViewSize]):
=== Safari-100 ===
2003-09-09 Darin Adler <darin@apple.com>
Reviewed by Chris.
- fixed 3373654 -- REGRESSION: Yahoo chat applet reloads over and over due to "baseURL" param name conflict
After some research by the Java team, we discovered that there was no need to
pass in baseURL at all This patch gets rid of that by only passingindividual specified
arguments, rather than passing all the arguments, as applet parameters.
* khtml/rendering/render_applet.cpp: (RenderApplet::processArguments): Remove the
call to KJavaApplet::processArguments, because we only want the individual arguments.
* kwq/KWQKJavaAppletWidget.h: Implement setAppletClass, setAppletName, setArchives, and
setCodeBase. Remove processArguments.
* kwq/KWQKJavaAppletWidget.mm: (KJavaAppletWidget::setParameter): Lowercase all the
parameters as we put them in the dictionary, since this is the semantics required by Java.
=== Safari-99 ===
2003-09-07 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fixed 3411827 -- REGRESSION: text drawing after text-shadow does not respect smoothing style (asahi.com)
* kwq/KWQPainter.mm: (QPainter::clearShadow): Call CGContextSetShadowWithColor with a color of NULL,
which actually clears the shadow, rather than CGContextSetShadow, which sets a black shadow (even
if it is zero pixels in size).
=== Safari-98 ===
2003-09-05 Ken Kocienda <kocienda@apple.com>
Reviewed by Darin
Fix for this bug:
<rdar://problem/3226083>: REGRESSION (Panther): white box
overlaying select lists at nvidia.com drivers page
* kwq/KWQListBox.mm:
(QListBox::QListBox): Re-add releaseGState fix that Darin
added, but then removed. It turns out that we do need
this workaround in place to get proper drawing.
Fix for this bug:
<rdar://problem/3310943>: REGRESSION (Panther): textareas
in forms sometimes draw blank (bugreporter)
* kwq/KWQTextArea.mm:
(-[KWQTextArea initWithFrame:]): Same fix as above.
2003-09-05 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
- fixed - REGRESSION (85-92): Javascript on page isn't triggered by typed characters (onKeyUp)
(This actually also requires an AppKit fix to be a full fix.)
* kwq/KWQListBox.mm:
(-[KWQTableView keyDown:]): Added. Send event through DOM.
(-[KWQTableView keyUp:]): Likewise.
(-[KWQTableView becomeFirstResponder]): Added. Report focus change
to DOM.
* kwq/KWQTextArea.mm:
(-[KWQTextAreaTextView keyUp:]): Added. Send event through DOM.
* kwq/KWQTextField.mm:
(-[KWQTextField textView:shouldHandleEvent:]): Pass NSKeyUp events too
(not going to work until we get an AppKit fix).
2003-09-04 John Sullivan <sullivan@apple.com>
- fixed 3399880 -- Repro crash when filling out a form to
download Macromedia software. I managed to check in this
ChangeLog comment a few days ago without actually checking
in the changed file, weird.
Reviewed by Chris
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge elementForView:]):
check for nil widget before dereferencing
2003-09-04 David Hyatt <hyatt@apple.com>
Fix for 3408630, leak of child frame parts caused by a missing deref when frames
get detached from their parent frame list.
Reviewed by mjs
* kwq/KWQKHTMLPart.mm:
(KHTMLPart::frameDetached):
2003-09-04 Darin Adler <darin@apple.com>
* layout-tests/apple-only/base/www.msn.com/index-expected.txt: Update for residual style fix.
* layout-tests/fast/invalid/003-expected.txt: Update for residual style fix.
2003-09-04 Darin Adler <darin@apple.com>
* kwq/KWQRenderTreeDebug.cpp: (write): Fix clip rectangle computation.
* layout-tests: Update test results.
=== Safari-97 ===
2003-09-03 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin.
* khtml/khtml_part.cpp:
(KHTMLPart::clear): Un-ifdef cleanup of frames, and add similar
cleanup for objects. Replace delete with deref.
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::createPart): Add an extra ref to KHTMLParts since
both the bridge and the parent part want to deref.
2003-09-03 David Hyatt <hyatt@apple.com>
Fix for 3404398, leak in residual style code. The code that built up the
residualStyleStack was messed up and discarded tags.
Reviewed by mjs
* khtml/html/htmlparser.cpp:
(KHTMLParser::popBlock):
2003-09-02 Ken Kocienda <kocienda@apple.com>
Reviewed by Darin
Fix for this bug:
<rdar://problem/3399169>: 4 leaks of DOMString objects (Mail)
Remove circular reference between AttributeImpl and AttrImpl objects.
This was causing the leak.
* khtml/xml/dom_elementimpl.cpp:
(AttributeImpl::allocateImpl):
2003-09-02 David Hyatt <hyatt@apple.com>
Fix for 3359408, DirWS should not be used when collapsing/stripping spaces,
since only ASCII spaces are supposed to be collapsed/stripped.
Reviewed by mjs
* khtml/rendering/bidi.cpp:
2003-09-02 Darin Adler <darin@apple.com>
Reviewed by John.
- fixed 3403388 -- decoder mishandles pages which fill the decoding buffer (mainly ISO-2022-JP)
* kwq/KWQTextCodec.mm: (KWQTextDecoder::convertUsingTEC): Keep decoding, passing in no additional bytes,
until we get noErr, don't ever stop after a kTECOutputBufferFullStatus error.
2003-09-02 David Hyatt <hyatt@apple.com>
Fix for 3404452, paint errors on mezzoblue.com's links list. There was a simple
math error in the invalidation rect computation.
Reviewed by mjs
* khtml/rendering/render_flow.cpp:
(RenderFlow::repaint):
2003-09-01 John Sullivan <sullivan@apple.com>
- WebCore part of fix for 3402489 -- REGRESSION (7B48-7B55): Some
printed web pages are too small (width is half a page)
This was a regression caused by the fix for 3378810.
Reviewed by Maciej
* kwq/WebCoreBridge.h:
add adjustingViewSize flag to forceLayout and forceLayoutForPageWidth:
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge forceLayoutAdjustingViewSize:]):
respect new flag while we are set up for printing.
(-[WebCoreBridge forceLayoutForPageWidth:adjustingViewSize:]):
ditto
(-[WebCoreBridge adjustFrames:]):
pass NO for new flag here
2003-09-01 John Sullivan <sullivan@apple.com>
* kwq/KWQPainter.mm:
(QPainter::drawLine):
Removed the ERROR that warns of the CG memory trashing bug, now
that we are enough builds away from it that it is (almost?) never
reported anymore.
=== Safari-96 ===
2003-08-29 Maciej Stachowiak <mjs@apple.com>
Reviewed by Ken.
- fixed 3397775 21 leaks from CSS parser running PLT
* khtml/css/css_ruleimpl.cpp:
(CSSMediaRuleImpl::~CSSMediaRuleImpl): Clear the parent for all contained
rules.
(CSSMediaRuleImpl::append): Call insertRule.
(CSSMediaRuleImpl::insertRule): set parent of the rule to this media rule.
(CSSRuleListImpl::append): Call insertRule to cover all the relevant
additional handling, instead of adding straight to the list.
* khtml/css/css_ruleimpl.h:
2003-08-29 John Sullivan <sullivan@apple.com>
- fixed 3399880 -- Repro crash when filling out a form to
download Macromedia software
Reviewed by Chris
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge elementForView:]):
check for nil widget before dereferencing
2003-08-28 David Hyatt <hyatt@apple.com>
Fix for 3381377, fix the calcBlockMinMaxWidth function to not use the
renderobject's computed margins except when it has to. This makes
table cells with align=right not mess up and fixes margin problems
in general with floated elements and table cells.
Since XUL boxes also use a similar function and since it had a similar
error, vertical XUL boxes have been patched as well.
Reviewed by gramps
* khtml/rendering/render_block.cpp:
* khtml/rendering/render_flexbox.cpp:
2003-08-28 David Hyatt <hyatt@apple.com>
Fix for 3398463, a regression caused by an unintended line movement.
<br/> was no longer being treated just like <br> in HTML.
Reviewed by gramps
* khtml/html/htmltokenizer.cpp:
(HTMLTokenizer::parseTag):
=== Safari-95 ===
2003-08-27 Richard Williamson <rjw@apple.com>
Fixed 3359408. DON'T treat unicode whitespace as whitespace when collapsing spaces.
Reviewed by David Hyatt.
* khtml/rendering/bidi.cpp:
* khtml/rendering/render_text.cpp:
(RenderText::trimmedMinMaxWidth):
(RenderText::calcMinMaxWidth):
(RenderText::containsOnlyWhitespace):
* khtml/xml/dom_stringimpl.cpp:
2003-08-27 David Hyatt <hyatt@apple.com>
Fix for 3396962, hang on quote.com. Fieldsets with display:inline should be treated
like inline-blocks. This matches WinIE's behavior.
Reviewed by mjs
* khtml/rendering/render_form.cpp:
(RenderFieldset::setStyle):
* khtml/rendering/render_form.h:
2003-08-26 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- follow-on to fix for 3310943 -- REGRESSION (Panther): textareas in forms sometimes draw blank (bugreporter)
* kwq/KWQListBox.mm: (QListBox::QListBox): Remove call to releaseGState. This was here to
work around a problem we thought was an AppKit bug, but it turns out it was caused by
NSView hackery in WebKit. We now do the WebKit part in a way that does not create the problem.
2003-08-26 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fixed 3031562 -- most forms don't work in certain configurations because of a bug in KWQVariant
* kwq/KWQVariant.mm: (QVariant::QVariant): Set the b element of the union, not the d element,
in the constructor for bool.
2003-08-26 David Hyatt <hyatt@apple.com>
Fix for 3395950, better support for self-collapsing blocks. Make them obey
clear properly and also change the definition of self-collapsing to match
the CSS2.1 specification.
Reviewed by gramps
* khtml/rendering/render_block.cpp:
* khtml/rendering/render_block.h:
2003-08-26 David Hyatt <hyatt@apple.com>
Fix for 3335175, www.calstone.com renders as blank. The fix is to deliberately
introduce an error into our HTML parsing code that causes us to honor self-closing
XML-style <script/> tags. This matches Mozilla and Opera behavior (both of them
have this bug), but it does not match WinIE.
Reviewed by mjs
* khtml/html/htmltokenizer.cpp:
2003-08-26 David Hyatt <hyatt@apple.com>
Fix for 3286229, popup menu misplaced. <form> needs to be allowed as a child of
<h1>-<h6> tags. All other browsers allow this.
Reviewed by darin
* khtml/html/dtd.cpp:
2003-08-26 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- re-fixed 3366542 -- filename with non-ASCII name left out of Content-Disposition for <input type=file>
* khtml/html/html_formimpl.cpp: (HTMLFormElementImpl::formData): Added missing # sign.
2003-08-26 David Hyatt <hyatt@apple.com>
Fix for 3394107, make sure the display mutation code doesn't mutate objects with
display: none set.
Reviewed by darin
* khtml/css/cssstyleselector.cpp:
2003-08-22 David Hyatt <hyatt@apple.com>
Fix for 3388363, copying a word in a list item copied too much. The code that checked
for the bullet would add in too much text sometimes.
Reviewed by john
* kwq/KWQKHTMLPart.mm:
(isTextFirstInListItem):
(KWQKHTMLPart::attributedString):
2003-08-21 Darin Adler <darin@apple.com>
* Makefile.am: Work around DLCFN issue to prevent constant churn of config.h.
* config.h: Regenerated without DLCFN.
2003-08-21 Darin Adler <darin@apple.com>
* khtml/khtmlview.h: Formatting tweak.
2003-08-21 Chris Blumenberg <cblu@apple.com>
Fixed: <rdar://problem/3386673>: a particular fidelity.com "Log in" link does nothing because of cross-domain JavaScript rules
Reviewed by mjs.
* config.h:
* khtml/ecma/kjs_window.cpp:
(Window::get): allow other frames to get the location object
(Window::isSafeScript): added JS logging
(Location::get): don't allow other frames to access location attributes
(LocationFunc::tryCall): don't allow other frames to call functions on the location object
2003-08-21 Richard Williamson <rjw@apple.com>
Fixed 3378810. Avoid resizing frame from drawRect: when printing. This will corrupt the graphics context.
Reviewed by Hyatt.
* khtml/khtmlview.cpp:
(KHTMLView::adjustViewSize):
* khtml/khtmlview.h:
* khtml/rendering/render_canvas.cpp:
(RenderCanvas::layout):
* kwq/KWQScrollView.mm:
(QScrollView::resizeContents):
* kwq/WebCoreBridge.h:
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge adjustViewSize]):
=== Safari-94 ===
2003-08-21 David Hyatt <hyatt@apple.com>
Fix for 3387302, floats weren't being allowed to be relatively positioned. The
fix is trivial. Stop making floating/relpositiion setting an if/else and just make
it two ifs.
Reviewed by darin
* khtml/rendering/render_box.cpp:
(RenderBox::setStyle):
2003-08-21 David Hyatt <hyatt@apple.com>
Fix for 3384635, breakable unicode characters that were preceded by multiple spaces
accidentally added in those spaces to their widths.
Reviewed by rjw and gramps
* khtml/rendering/bidi.cpp:
2003-08-20 David Hyatt <hyatt@apple.com>
Fix for 3384609. Objects that want to dodge floats should fill the line width instead
of the containing block width only if their widths are auto. If widths are specified
explicitly, then ccontaining block width should be honored.
Reviewed by john
* khtml/rendering/render_box.cpp:
(RenderBox::calcWidth):
* khtml/rendering/render_table.cpp:
(RenderTable::calcWidth):
2003-08-20 Richard Williamson <rjw@apple.com>
UCFindTextBreak will report false if we have a sequence of 0xa0 0x20 (nbsp, sp), so we explicity check for that case. Filed 3386852 to track this problem, meanwhile added a work-around. This problem was revealed after adding the fix for 3242508.
Reviewed by Dave.
* khtml/rendering/break_lines.cpp:
2003-08-20 Darin Adler <darin@apple.com>
Reviewed by John.
- fixed 3248069 -- Safari does not support ISO Latin 10 (ISO-8859-16, romanian) coding.
* kwq/mac-encodings.txt: Added ISO-8859-16, which maps to ISO Latin-10.
* kwq/KWQCharsetData.c: Regenerated.
* kwq/KWQCharsets.mm: Add definition of kCFStringEncodingISOLatin10, since this encoding
is currently only in TextCommon.h, not in CFStringEncodingExt.h.
2003-08-20 Maciej Stachowiak <mjs@apple.com>
Reviewed by Richard.
- fixed 3384963 - REGRESSION: assertion in copyPathRemovingDots, crash parsing URL in snippet editor
* kwq/KWQKURL.mm:
(copyPathRemovingDots): It's OK if the path is entirely empty.
2003-08-20 David Hyatt <hyatt@apple.com>
Fix for 3385211, <td>s should ignore the float property in quirks mode. This
patch cleans up the adjustments of <td>s and <table>s and moves the code into
the style selector (instead of cluttering up the rendering code).
Fix for 3385476, generated content not built correctly. All generated content
should be placed inside a containing object that actually gets the pseudo-style.
Reviewed by rjw
* ChangeLog:
* khtml/css/cssstyleselector.cpp:
* khtml/css/cssstyleselector.h:
* khtml/rendering/render_container.cpp:
(RenderContainer::updatePseudoChild):
* khtml/rendering/render_object.cpp:
(RenderObject::createObject):
2003-08-20 Maciej Stachowiak <mjs@apple.com>
Reviewed by Richard.
- fixed 3292036 - albertsons.com world leak of 2 WebDataSource and 2 WebHTMLRepresentation objects
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::canCachePage): Test for parentPart() even if there
is no document.
2003-08-20 Richard Williamson <rjw@apple.com>
Fixed 3242508. Japanese (and other non latin1 scripts) line breaking incorrect when mixed with latin1.
Reviewed by Dave.
* khtml/rendering/break_lines.cpp:
Checkin fix for earlier bug that was already approved!
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::attributedString):
2003-08-19 David Hyatt <hyatt@apple.com>
Fixes for 3380766 and 3381867. One is a table bug with amazon.com where colspans
were losing percentage width values. The other is a bug where floats aren't dirtying
objects into which they intrude when doing layout.
Reviewed by darin
* khtml/rendering/render_block.cpp:
* khtml/rendering/table_layout.cpp:
(AutoTableLayout::calcEffectiveWidth):
2003-08-19 Chris Blumenberg <cblu@apple.com>
Fixed: <rdar://problem/3379336>: flash on front page of http://www.westportmotorsports.com is broken
Reviewed by darin.
* khtml/rendering/render_frames.cpp:
(RenderPartObject::updateWidget): Ignore the PARAM tags and only use attributes inside the OBJECT tag when the EMBED tag is omitted.
2003-08-19 Darin Adler <darin@apple.com>
Reviewed by Dave.
- fixed 3343681 -- clicking on a disabled submit button submits the form!
This turned out to be a problem with code in dispatchGenericEvent that sent
DOMActivate events even when the form element was disabled.
* khtml/xml/dom_nodeimpl.h: Add virtual disabled() member function.
* khtml/xml/dom_nodeimpl.cpp:
(NodeImpl::dispatchGenericEvent): Don't send DOM activate events for disabled elements.
(NodeImpl::handleLocalEvents): Don't send mouse events for disabled elements. But we do
want those events to pass through the bubble and capture phases, just avoid triggering
any listeners on this node itself.
(NodeImpl::disabled): Added default implementation that returns false.
* khtml/html/html_formimpl.h: Removed the disabled() function's inline implementation
since it's now virtual and it's not helpful to inline virtual functions.
* khtml/html/html_formimpl.cpp:
(HTMLGenericFormElementImpl::disabled): Moved this method into the .cpp file since it's
now virtual and it's not helpful to inline virtual functions.
2003-08-18 Darin Adler <darin@apple.com>
Reviewed by John.
- fixed 3380411 -- Unicode supplementary characters cut in half in text control with maxlength set
* kwq/KWQTextField.mm:
(-[KWQTextField setMaximumLength:]): Enforce maximum length based on number of composed character
sequences rather than on number of UTF-16 values. This helps with both surrogate pairs (the supplementary
characters mentioned in the bug report) and composed character sequences.
(-[KWQTextField setStringValue:]): Ditto.
(-[KWQTextFieldFormatter isPartialStringValid:newEditingString:errorDescription:]): Ditto.
(-[NSString _KWQ_numComposedCharacterSequences]): Added. Computes the length of a string in terms of
number of composed character sequences.
(-[NSString _KWQ_truncateToNumComposedCharacterSequences:]): Added. Truncates a string in terms of
number of composed character sequences.
2003-08-18 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fixed 3299893 -- oncontextmenu support
* kwq/WebCoreBridge.h: Added sendContextMenuEvent: method.
* kwq/WebCoreBridge.mm: (-[WebCoreBridge sendContextMenuEvent:]): Added.
Calls sendContextMenuEvent on the part.
* kwq/KWQKHTMLPart.h: Added sendContextMenuEvent member function.
* kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::sendContextMenuEvent): Added. Sets up
a suitable mouse event and calls dispatchMouseEvent for CONTEXTMENU_EVENT.
* khtml/ecma/kjs_dom.cpp: Added oncontextmenu to DOMNode's list of properties.
(DOMNode::getValueProperty): Added case for OnContextMenu.
(DOMNode::putValue): Added case for OnContextMenu.
* khtml/ecma/kjs_dom.h: Added constant for OnContextMenu.
* khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseAttribute):
Added case for ATTR_ONCONTEXTMENU.
* khtml/misc/htmlattrs.in: Added oncontextmenu.
* khtml/xml/dom2_eventsimpl.cpp:
(EventImpl::typeToId): Added case for CONTEXTMENU_EVENT.
(EventImpl::idToType): Added case for CONTEXTMENU_EVENT.
* khtml/xml/dom2_eventsimpl.h: Added CONTEXTMENU_EVENT.
* khtml/ecma/kjs_dom.lut.h: Regenerated.
* khtml/misc/htmlattrs.c: Regenerated.
* khtml/misc/htmlattrs.h: Regenerated.
2003-08-18 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fixed 3381295 -- regular expression matches for text with UTF-16 surrogates will give incorrect results
* kwq/KWQRegExp.mm: (QRegExp::match): Removed local copy of convertCharacterOffsetsToUTF8ByteOffsets
and its reverse. Instead use convertUTF16OffsetsToUTF8Offsets and its reverse, now available from
<JavaScriptCore/ustring.h>.
- added test for the URI encoding and decoding functions in JavaScriptCore
* layout-tests/fast/js/global/encode-URI-test-expected.txt: Added.
* layout-tests/fast/js/global/encode-URI-test.html: Added.
2003-08-15 Chris Blumenberg <cblu@apple.com>
Fixed: <rdar://problem/3380418>: Ignore specified string encoding when constructing file, mailto and help URLs
Reviewed by mjs, darin.
* kwq/KWQKURL.mm:
(KURL::KURL): store the URL string as UTF-8 when the URL is file, mailto and help.
2003-08-17 Darin Adler <darin@apple.com>
Reviewed by Maciej.
- fixed 3366542 -- filename with non-ASCII name left out of Content-Disposition for <input type=file>
* khtml/html/html_formimpl.cpp: (HTMLFormElementImpl::formData):
Do the &-encoding thing on the filename. This is what Gecko does.
2003-08-14 Maciej Stachowiak <mjs@apple.com>
Fixed by Darin, reviewed by me (and originally figured out by John).
- fixed 3375592 - New Yahoo Maps doesn't work right
* kwq/KWQTextCodec.mm:
(KWQTextDecoder::convertUTF16): Don't pass through null characters.
(KWQTextDecoder::appendOmittingNullsAndBOMs): Ditto.
(KWQTextDecoder::convertUsingTEC): Ditto.
=== Safari-93 ===
2003-08-14 Vicki Murley <vicki@apple.com>
Reviewed by John.
* WebCore.pbproj/project.pbxproj: deleted WebCore.order from the project.
2003-08-14 Vicki Murley <vicki@apple.com>
Reviewed by John.
* WebCore.order: Removed. We now point to the WebCore order file in /AppleInternal/OrderFiles.
* WebCore.pbproj/project.pbxproj: change sectorder flag to point to /AppleInternal/OrderFiles/WebCore.order
2003-08-14 Ken Kocienda <kocienda@apple.com>
Reviewed by Darin
Fix for this bug:
<rdar://problem/3095893>: Image Capture: "Build web page" doesn't work with Japanese folder name.
* kwq/KWQKURL.mm:
(KURL::getNSURL): Try UTF-8 first and fallback to ISO Latin-1 when creating an NSURL.
This will handle the two-byte character in file name case mentioned in the bug.
2003-08-14 Darin Adler <darin@apple.com>
Reviewed by Ken.
- fixed 3375270 -- writing to frame parent from a button press crashes in viewportMousePressEvent
The fix turned out to be to ref the view around handling events in the view, since processing
the event could cause the view and part to go away. Since the view refs the part, ref'ing just
the view seems to work perfectly.
* kwq/KWQKHTMLPart.mm: Fixed namespace access to use "using" instead of explicit namespaces.
(KWQKHTMLPart::setView): Not-entirely-related cleanup. Use the "ref before deref" idiom here.
(KWQKHTMLPart::sendResizeEvent): Ref the KHTMLView while sending the resize event.
(KWQKHTMLPart::mouseDown): Ref the KHTMLView while sending the viewport mouse down event.
(KWQKHTMLPart::mouseDragged): Ref the KHTMLView while sending the viewport mouse dragged event.
(KWQKHTMLPart::mouseUp): Ref the KHTMLView while sending the viewport mouse up or double click event.
(KWQKHTMLPart::mouseMoved): Ref the KHTMLView while sending the viewport mouse moved event.
2003-08-13 David Hyatt <hyatt@apple.com>
Fix for 3372896, spaces left at ends of lines. Patch the selection code
to be smarter about detecting ends of lines and adding in spaces.
Reviewed by gramps
* khtml/khtml_part.cpp:
(KHTMLPart::selectedText):
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::attributedString):
2003-08-12 Maciej Stachowiak <mjs@apple.com>
Reviewed by Ken Kocienda.
- fixed 3365242 - non-repro abort in HTMLTokenizer at ajc.com
* khtml/khtml_part.cpp:
(KHTMLPart::write): ref the part around actually processing the
data, since a script could cause the part to go away.
2003-08-12 David Hyatt <hyatt@apple.com>
Fix for 3262190, <li> bullets in mail were overly massive. The bezier path the
painter stroked was not setting the line width from QPen's width, so it ended up
just using the current line width instead (which happened to be much larger in
Mail).
Reviewed by darin
* kwq/KWQPainter.mm:
(QPainter::drawEllipse):
(QPainter::drawArc):
(QPainter::_drawPoints):
2003-08-12 John Sullivan <sullivan@apple.com>
- fixed 3370614 -- REGRESSION (81-85): partial inline input from Japanese
input method can disappear
Reviewed by Hyatt
* khtml/rendering/render_form.cpp:
(RenderLineEdit::updateFromElement):
call w->text() before element()->value(), because w->text() has a side
effect of updating element()->value() in the inline input case
(RenderTextArea::updateFromElement):