diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | ce4a32fe52ef09d8f5ff1dd22c001110902b60a2 (patch) | |
tree | 5ac38a06f3dde268dc7927dc155896926aaf7012 /khtml/ChangeLog | |
download | tdelibs-ce4a32fe52ef09d8f5ff1dd22c001110902b60a2.tar.gz tdelibs-ce4a32fe52ef09d8f5ff1dd22c001110902b60a2.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'khtml/ChangeLog')
-rw-r--r-- | khtml/ChangeLog | 3874 |
1 files changed, 3874 insertions, 0 deletions
diff --git a/khtml/ChangeLog b/khtml/ChangeLog new file mode 100644 index 000000000..8c7c88bb9 --- /dev/null +++ b/khtml/ChangeLog @@ -0,0 +1,3874 @@ +2007-10-09 Allan Sandfeld Jensen <kde@carewolf.com> + + Optimize the case of double descendant selectors "a b c", + to avoid O(n^2) run-time where n is the depth of the DOM tree. + + * css/cssstyleselector.h: Define new early termination value for checkSelector + * css/cssstyleselector.cpp: Bail-out when the selector-chain can't possibly match + +2007-04-22 Harri Porten <porten@kde.org> + + * ecma/xmlhttprequest.cpp: allow Accept header overrides + +2007-04-21 Harri Porten <porten@kde.org> + + * ecma/xmlhttprequest.cpp: implemented + XMLHttpRequest.overrideMimeType() function + +2007-02-21 Harri Porten <porten@kde.org> + + * html/html_formimpl.cpp: mimmick .value behavior of other + browsers if no value attribute was set for an input element of + type radio and checkbox. + +2007-02-18 Harri Porten <porten@kde.org> + + * html/html_formimpl.cpp: fixed bug #120582 ("cloneNode does not + clone `checked' attribute in form inputs") + + * html/html_formimpl.cpp: fixed reset of file upload form elements + +2007-02-11 Harri Porten <porten@kde.org> + + * ecma/kjs_window.cpp (executeOpenWindow): fixed location href + and pathname for about:blank windows + + * khtml_part.cpp (findFrameParent): made frame name lookup locale + independant. Was mostly problematic with non-ascii names. + + * html/html_formimpl.cpp (gatherWalletData): prevent crash occuring + on double form submits (bug report #105899) + +2006-11-14 Allan Sandfeld Jensen <kde@carewolf.com> + + Implement overflow-x and overflow-y + + * css/*.*: New properties + * rendering/render_style.{h,cpp}: New properties + * rendering/render_object.h: New functions scrollsOverflowX() and scrollsOverflowY + * rendering/render_layer.h: Remove depricated function moveScrollbarsAside() + * rendering/render_layer.cpp: More fine grained creation of scrollbars + * khtmlview.cpp: More fine grained creation of scrollbars + * rendering/render_block.cpp: Use new functions + * rendering/render_box.cpp: Use new functions + * rendering/bidi.cpp: Use new functions + +2006-11-13 Allan Sandfeld Jensen <kde@carewolf.com> + + Merge text-overflow:ellipis from WebCore + + * css/*.*: New property and values + * rendering/render_style.{h,cpp}: New property and values + * rendering/render_line.{h,cpp}: New line-box for ellipsis + * rendering/bidi.cpp: Two functions to remove and create ellipsis boxes + * rendering/render_text.{h,cpp}: Add the ability to truncate text at a certain point. + +2006-06-28 Germain Garand <germain@ebooksfrance.org> + + make updating of addRule/removeRule/insertRule work + cf. http://www.quirksmode.org/dom/w3c_css.html#change + + * css/css_stylesheetimpl.cpp + (insertRule/deleteRule): shallow update of styleselector. + * xml/dom_docimpl.{h,cpp} + (updateStyleSelector): new boolean argument for shallow recalculation, when all sheets are known. + (DocumentImpl::recalcStyleSelector): split. + (DocumentImpl::rebuildStyleSelector): new from split. Recreate styleselector with known sheets. + +2006-06-27 Germain Garand <germain@ebooksfrance.org> + + . Correct drawing of borders on iframes and objects (#118277/#56109) + . Frameborder attribute for iframes (http://www.w3.org/TR/html401/present/frames.html#adef-frameborder) + . Fix widget counter-mask not being updated in time, thus sometimes missing a repaint (e.g: http://lequipe.fr) + + * html/html_baseimpl.{h,cpp} (HTMLIFrameElementImpl::parseAttribute): parse frameborder attribute. Defaults to true as per specification. + (HTMLIFrameElementImpl::updateFrame/attach): apply/remove frameborder style at attachment time. + * khtmlview.cpp (drawContents): fix counter-mask problem. Widget geometry is not accurate before painting, so we must + use the RenderObject's. + * rendering/render_frames.h (paddingTop/paddingBottom/paddingLeft/paddingRight): reimplement. Frames have no padding. + (RenderPartObject::canHaveBorder): reimplement. True. + * rendering/render_object.cpp (RenderObject::updateWidgetMasks): clip mask to correct width/height, though it doesn't matter much on X11. + * rendering/render_replaced.h (RenderWidget::borderTop/borderBottom/borderLeft/borderRight): percolated down from RenderForm. + Frames/Iframes also need that reimplementation. + +2006-06-22 Germain Garand <germain@ebooksfrance.org> + + Implement floating auto-width table quirk + + * rendering/render_block.cpp (positionNewFloats): in quirkmode, floated auto-width + tables try to fit within remaining linewidth, so look for minWidth, and relayout if + position found ends up being narrower than current table width. + +2006-06-20 Germain Garand <germain@ebooksfrance.org> + + Don't let a float serie grow an object's maxwidth beyond the available width + + * rendering/render_block.cpp (calcInlineMinMaxWidth/calcBlockMinMaxWidth): lazzily check available width + so floats don't overflow it if they can break line. + * rendering/render_box.{h,cpp} (availableWidth{,Using}): new. Like availableHeight{,Using} + * rendering/render_canvas.cpp (RenderCanvas::layout): set m_viewportWidth before recalculating minmax, as + availableWidth needs it. + +2006-06-15 Allan Sandfeld Jensen <kde@carewolf.com> + + Merge CSS3 properties background-size, background-origin and background-clip from WebCore + + * rendering/render_style.{h,cpp}: New properties + * rendering/render_box.cpp: Handle the values in paintBackgroundExtended. + * dom/css_value.h: Add CSS_PAIR primitive value + * css/css_valueimpl.{h,cpp}: Add PairImpl primitive value + * css/cssstyleselector.cpp: New properties + * css/cssvalues.in: New values + * css/cssproperties.in: New properties + * css/cssparser.{h,cpp}: Clean-up short-hand parsing WC style + +2006-06-14 Allan Sandfeld Jensen <kde@carewolf.com> + + Implement replaced CSS(3) content, and fix various details in generated pseudo elements for CSS 2.1 + + * rendering/render_style.{h,cpp}: Add REPLACED and MARKER pseudo styles + * rendering/render_container.{h,cpp}: + (updatePseudoChild) Allow display: block as per CSS 2.1 standard + (updateReplacedContent) Handle changes in Replaced content. + (childrenAllowed) forbid children when generated content is used, this prevents + their render-objects from being attached. + * rendering/render_block.cpp: Postpone updatePseudoChilden to attachment because block + children might need the elements parents. + * rendering/render_inline.cpp: ditto + * rendering/render_generated.{h,cpp}: Add new class RenderGlyph to render list-style glyphs (square, disc, etc.) + * xml/dom_nodeimpl.cpp: + (NodeImpl::diff) detect changes in content and return Detach + * css/css_base.{h,cpp}: Add marker and replaced pseudo-styles + * css/cssstyleselector.cpp: + (checkOneSelector) Allow content on more elements + (precomputeAttributeDependencies) Track attributes inside :not elements as well + +2006-06-08 George Staikos <staikos@kde.org> + + Fix <a><label><img not in a form not being clickable + + * html/html_formimpl.cpp: let the event bubble + +2006-05-31 Allan Sandfeld Jensen <kde@carewolf.com> + + Merge WC bug-fixes and clean-up for positioned box-model + + * rendering/Render_box.{h,cpp}: + (RenderBox::calcAbsoluteHorizontal): + (RenderBox::calcAbsoluteHorizontalValues): + (RenderBox::calcAbsoluteVertical): + (RenderBox::calcAbsoluteVerticalValues): + (RenderBox::calcAbsoluteHorizontalReplaced): Handle replaced case separately. + (RenderBox::calcAbsoluteVerticalReplaced): ditto. + +2006-04-20 Allan Sandfeld Jensen <kde@carewolf.com> + + Implement full support for CSS updates on dynamic DOM and user-interaction + + * misc/multimap.h: NEW: A "fast on insert" map with multiple values per key + * xml/dom_restyler.{h,cpp}: NEW: The dynamic DOM restyler keeps track of changes and issues restyles + * xml/dom_docimpl.h: + Remove obsolete usesDescendencyRules. + Add a dynamicDomRestyler to the document. + * xml/dom_nodeimpl.{h,cpp}: Add dynamic DOM restyler hooks. + * xml/dom_elementimpl.{h,cpp}: + Remove obsolete usesDescendencyRules logic. + Remove obsolete laterestyle logic. + Implement DOM restyler hooks. + * css/cssstyleselector.{h,cpp}: + Clean-up checkSelector, removing obsolete and redundant arguments + Fix :link and :visited selector. + Setup all dynamic dependencies in checkOneSelector. + * css/cssparser.{h,cpp}: Remove defaultNamespace + * css/css_stylesheetimpl.{h,cpp}: Add defaultNamespace + * css/parser.{y,cpp}: + Remove calls to usesDescendencyRules. + Use defaultNamespace from stylesheet rather than parser. + * rendering/render_style.h: Remove obsolete affectedByHoverRules and affectedByActiveRules + * rendering/render_layer.cpp: Use dynamic DOM restyler to restyle :hover and :active nodes. + * html/html_formimpl.cpp: Call dynamic restyler for changes to disabled state + +2006-04-09 Allan Sandfeld Jensen <kde@carewolf.com> + + Distinguish between having no determined namespace, and determined to have no namespace + + * xml/dom_nodeimpl.h: Split noNamespace into defaultNamespace and emptyNamespace + * css/cssstyleselector.cpp: Change HTML-hack to only trigger on undetermined namespace. + +2006-04-04 Allan Sandfeld Jensen <kde@carewolf.com> + + Make so-called nondeterministic CSS matching work + + * css/cssstyleselector.{h,cpp} (checkSubSelector/checkOneSelector): + Extract combinator matching from checkSelector and make it a recursive function. Clean-up checkOneSelector. + +2006-03-25 Germain Garand <germain@ebooksfrance.org> + + Scope: fix handling of nested/external scripts in the tokenizer (#91701) + + * misc/stringit.h (TokenizerQueue): a LIFO stack of TokenizerStrings + * html/htmltokenizer.{h,cpp} (scriptHandler/write/notifyFinished): use a TokenizerQueue to store + postponed fragments while executing/loading scripts. + (fixUpChar): unrelated - fill in missing unicode replacements. + +2006-03-20 Dirk Mueller <mueller@kde.org> + + * misc/loader.cpp: fix pixmap leak in tiled_pixmap() + +2006-03-20 Allan Sandfeld Jensen <kde@carewolf.com> + + Improve the CSS :lang() selector to match clarified specification + + * khtml_part.cpp: parse HTTP content-language + * xml/dom_docimpl.cpp: parse HTTP-EQUIV content-language + * css/cssstyleselector.cpp: match :lang() against parents and ultimately the document + +2006-03-07 Germain Garand <germain@ebooksfrance.org> + + Scope: relayout/repaint/widget masks fixes. Refine stacking context exploration. Optimise. + + * khtmlview.cpp (drawContents): use widget geometry rather than the RenderWidget's rect (fixes widget borders not being updated) + Check if widget is in the dirty rect before doing any work. + + * rendering/render_block.cpp (layoutBlockChildren): I meant !child->isPositioned() here, not isPositioned(). No need to + dirty positioned children as this is handled by the containing block chain through layoutPositionedObjects + (layoutPositionedObjects): always relayout fixed objects. + + * rendering/render_canvas.cpp (layout): check canvas dimensions and call layoutBlock directly with relayoutChildren boolean. + + * rendering/render_layer.{h,cpp} (paintedRegion): constrain our shape to the visibleRect. Use convertToLayerCoords to get a correct + visibleFlowRegion (updateWidgetMasks): don't forget to update the mask if it reverts to none at all. + + * rendering/render_object.{h,cpp} (containingBlock): for relpos inlines, return the nearest block (skipping to next containingBlock gives + stalled layout flags problems - #121653). (updateWidgetMasks): mask the content box, not the border box. + (enclosingStackingContext) new. Returns the layer defining current stacking context. + + * rendering/render_replaced.{h,cpp} (isKHTMLWidget): new flag for KHTML-proxied widgets. + (detach/resizeWidget/setQWidget/layout/updateFromElement/slotWidgetDestructed/setStyle/paint): use the flag insead of strcmp's + Only allow !khtml widgets to register in the view (only those need masking). + +2006-03-05 Charles Samuels <charles@kde.org> + * link not accessable with negative text-indent (#96275) + * Wrong :hover effect with negative text-indent (#90510) + * text not selectable if it has a negative text-indent + +2006-03-05 Charles Samuels <charles@kde.org> + * javascript timeouts that cross a midnight boundary shall not occur early + +2006-03-03 Germain Garand <germain@ebooksfrance.org> + + get iframes, objects and some other overlaid widgets to obey their stacking context (#31121) + + * khtmlview.cpp: mask widgets more precisely (i.e. allow layers to paint over overlaid widgets, + when they ought to). + + * rendering/render_canvas.{cpp,h}: update widget masks after pos child layout/positioning; + set a boolean m_needsWidgetMasks to optimise for common case (where we have no such widgets). + + * rendering/render_layer.{cpp,h} (updateWidgetMasks/paintedRegion): build a rough mask for the positive Z order + childs. We'll apply that mask later to widgets that are under our aegis. + + * rendering/render_object.{cpp,h} (visibleFlowRegion): helper for calculation of broad region we want to mask in flows. + (updateWidgetMasks): walk our children looking for widgets suitable to masking. Apply our enclosingLayer's mask, + transformis transformandi. + + * rendering/render_replaced.cpp: overlaid widgets must advertise their existence to the enclosing layer. + +2006-03-01 Germain Garand <germain@ebooksfrance.org> + + Improve selectorText + + * css/css_base.cpp (extractPseudoType): don't reset 'value' after parsing the pseudo-style, we need it for selectorText. + (selectorText): - correctly handle CSS3 pseudo selectors, + - merge some improvements from WebCore (Mitz Pettel sub-selector patch + fix ::Set handling) + * css/css_ruleimpl.cpp (selectorText): handle of multiple, comma-separated selectors + +2006-02-28 Germain Garand <germain@ebooksfrance.org> + + Common-case style selection optimisation inspired from WebCore. + + * css/css_base.cpp/.h: add 'Class' to possible matching modes + * css/cssstyleselector.cpp: treat 'Class' extra, not anymore as an ordinary List. + * css/parser.cpp/y: use 'Class' matching mode + * html/html_elementimpl.cpp: when parsing ATTR_CLASS, set a boolean to remember if it is or not a class list. + * xml/dom_elementimpl.{cpp,h}: add m_hasClassList boolean + setter/getter + +2006-02-28 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_block.cpp (layoutBlockChildren): be more efficient with regard to positioned objects relayout. + Merge WC margin-collapse regression fix (WC/#3508). + (layoutPositionedObjects) Objects with staticX() need a relayout too. + * rendering/render_canvas.cpp (layout): no need to relayout positioned objects here. This would mark entire branches of the tree + as needing a layout, thus stalling update requests in those branches (#116626) + +2006-01-14 Allan Sandfeld Jensen <kde@carewolf.com> + + * rendering/render_image.cpp (calcReplacedWidth,calcReplacedHeight): + Respect both min/max sizes and aspect-ratio when resizing. + +2006-01-03 Allan Sandfeld Jensen <kde@carewolf.com> + + * css/cssparser.cpp: Allow content: normal | none + * css/cssstyleselector.cpp: Handle content: normal | none + +2005-12-09 Germain Garand <germain@ebooksfrance.org> + + implement quirky HTML alignment ; introduce special float values + -khtml-left/-khtml-right to this effect. + + * css/cssparser.cpp: ditto. Fix memory leak from Function struct deletion also. + * css/cssstyleselector.cpp: ditto. + * css/html4.css: set as default style for table[align="left/right"] + * html/html_tableimpl.cpp (parseAttribute): remove setting of float property + * rendering/render_block{h,cpp}: quirky HTML alignment never clears, and never cause fafs to clear. + Only examine the last floating object on line, so as to match MSIE behaviour. + * rendering/render_style.h: extra float enumeration values + * css/css_renderstyledeclarationimpl.cpp (getPropertyCSSValue): adjust + +2005-12-06 Dirk Mueller <mueller@kde.org> + + * html/htmltokenizer.cpp: don't treat <!---> specially. + fixes bug 93799. + +2005-12-02 Charles Samuels <charles@kde.org> + rendering/bidi.cpp: don't sometimes take text far past the end + of the block's margin on justified text. bug #106081 + +2005-11-08 Germain Garand <germain@ebooksfrance.org> + + sizing of percent objects within table cells + + * rendering/render_box.cpp (calcPercentageHeight): transfer most of the logic for table cells in render_table as + it was partly redundant here. Don't apply the table cell sizing hacks in strict mode - no other engine does that. + Don't forget anonymous blocks - those must not stop recursion obviously. + Move substraction of the border/padding after calculation (spotted in WC) + + * rendering/render_table.{cpp,h}: + had member booleans to hold whether flexing of cells in a row is + needed, and in the affirmative, whether we need to mark our anonymous childs for relayout (hence go one level deeper). + Part of line 1394 comes from WebCore. + Also: don't allow negative offset in vertical alignment when content overflows ; matches MSIE better. + +2005-10-28 Germain Garand <germain@ebooksfrance.org> + + * rendering/table_layout.cpp (calcEffectiveWidth): do proportional distribution of overflowing minwidth + when all cols are percent (#104156) + +2005-10-21 Germain Garand <germain@ebooksfrance.org> + + * rendering/bidi.cpp (findNextLineBreak): implement needed quirk for line breaking of + replaced elements within table cells. + * rendering/render_block.cpp (calcInlineMinMaxWidth): ditto. + Bugs #93745, #72457 + +2005-10-20 Dawit Alemayehu <adawit@kde.org> + * ecma/xmlhttprequest.cpp: + -Add support for default HTTP referer header. Fixes bug# 113962. + - Sanitize all setRequestHeader calls: + - We now use a BANNED_HTTP_HEADERS list to filter out + potentially problematic headers. + - We always call open on "get" and "post" requests set + through this function. + - We sanitize any attempts to set the "referer" field. + +2005-10-15 Dawit Alemayehu <adawit@kde.org> + * ecma/xmlhttprequest.cpp: Handle HTTP response headers case insensitively. + Fix for bug 110768. + +2005-10-14 Lubos Lunak <l.lunak@kde.org> + + * khtmlview.cpp: show accesskeys for all frames + +2005-10-13 Allan Sandfeld Jensen <kde@carewolf.com> + + WebCore merge: correct name on IFrames + + * html/html_baseimpl.cpp: copied FrameElementImpl behavior for initializing name + +2005-10-13 Allan Sandfeld Jensen <kde@carewolf.com> + + WebCore merge: blur and focus on buttons + + * html/html_formimpl.{cpp.h}: Add form and blur + * dom/html_form.{cpp,h}: ditto + * ecma/kjs_html.{cpp,h}: ditto + +2005-10-08 Germain Garand <germain@ebooksfrance.org> + + Port soft-hyphen support from WebCore + + * rendering/bidi.cpp (findNextLineBreak): main skipping/breaking logic + + * rendering/render_text.{cpp,h} (calcMinMaxWidth): account for soft hyphen + +2005-10-08 Dawit Alemayehu <adawit@kde.org> + * ecma/xmlhttprequest.cpp: Do not append NULL character to end of posted + data. Fix for bug 113393. + +2005-10-08 Germain Garand <germain@ebooksfrance.org> + + Follow Mozilla/Opera in considering the Window object as an implementation of the AbstractView/ViewCSS + DOM2 interfaces. Return the Window object when available ; an AbstractView if not. + + * ecma/kjs_dom.cpp (DefaultView): return the view's Window object if available. + + * ecma/kjs_window.{cpp,h} (GetComputedStyle): implement, as in AbstractView. + +2005-10-07 Germain Garand <germain@ebooksfrance.org> + + * rendering/bidi.cpp (findNextLineBreak): integrate all positioned inlines in the lineboxes to get a correct static position + in initial whitespace. Use some midpoints voodoo to take care of whitespace. + + cf. unsorted/113527.html + +2005-10-03 Germain Garand <germain@ebooksfrance.org> + + let the initial containing block be the Canvas, as mandated by latest + draft of CSS 2.1 10.1.1 + + * rendering/render_object.cpp (containingBlock, container): don't special case the Root, it's no more + an initial containing block. + + * rendering/render_block.{cpp,h} (*AbsolutePosition): separate calculation + of positioned objects' contribution to the object's rightmost/lower/leftmost position. + + * rendering/render_box.cpp (setStyle, containingBlockWidth): checking for isCanvas where applicable. + + * rendering/render_canvas.cpp (docWidth, docHeight): + take into account absolutely positioned objects from the canvas itself. + +2005-09-18 Allan Sandfeld Jensen <kde@carewolf.com> + + Implementation of real page-breaking algorithm respecting the CSS 2.1 specification. + + * khtmlview.cpp: + Do layout for page-breaks before printing. + Use screen resolution as default instead of 72DPI. + * css/html4.css: Add the print media default styles + * rendering/render_style.*: Add RenderPageStyle as the style for the page-context. Not yet used. + * rendering/render_canvas.*: + Separate paged and static properties of printing. + Use rootHeight as pageHeight. + Add RenderPage as the page-context(@page). Not yet used. + * rendering/render_flow.*: + (deleteLastLineBox) new function to remove the last line (in order to redo it). + * rendering/render_line.*: + (removeFromLine) ditto + * rendering/bidi.cpp: New algorithm in layoutInlineChildren for doing page-breaks at layout-time, + and respecting orphans/widows CSS settings. + * rendering/render_block.cpp: + (makePageBreakAvoidBlocks) Function for collecting runs of page-break-after/before: avoid blocks, so + they can be moved across page-breaks collectively. + (layoutBlockChildren) New algorithm for doing page-breaks at layout time, + and respecting page-break-after/before/inside + * rendering/render_table.cpp: Force page-breaks to happen inside cells and not between rows. + (RenderTableSection::addSpaceAt) moves later table-rows down when one cell expands to handle a + page-break. + * rendering/render_list.cpp: Remove truncation logic from paint + * rendering/render_text.cpp: ditto + +2005-08-18 Luís Pedro Coelho <luis@luispedro.org> + * rendering/render_image.cpp: Scale images correctly (adjust both height and width) + when max-width is used. + +2005-08-10 Dawit Alemayehu <adawit@kde.org> + * ecma/xmlhttprequest.cpp: Convert a 304 (Not Modified) HTTP response in + XMLHttpRequest to a 200 (OK) response to make KHTML conform to IE's and + Mozilla's behavior. BUG: 110272 + + * ecma/xmlhttprequest.cpp: Factored out the HTTP status line parsing code + into a single function. + +2005-08-02 Allan Sandfeld Jensen <kde@carewolf.com> + + Imported background parsing and painting from WebCore. + + * css/cssparser.{h,cpp}: New short-hand parser for background + * css/cssstyleselector.{h,cpp}: + * rendering/render_style.{h,cpp}: Support multiple backgrounds using BackgroundLayer + * rendering/render_box.{h,cpp}: Use paingBackgrounds to paint multiple backgrounds + * rendering/render_line.{h,cpp}: ditto + * rendering/render_object.{h,cpp}: ditto + * rendering/render_form.cpp: + * khtml/rendering/render_table.cpp: + +2005-08-02 Allan Sandfeld Jensen <kde@carewolf.com> + + * rendering/render_block.{h,cpp}: Split layoutBlockChildren into several auxilary functions. + +2005-07-26 Andreas Kling <kling@impul.se> + + * html/htmlparser.cpp: Block <input type="image"> elements if SRC attribute is ad-filtered. + * khtml_part.cpp: Include <input type="image"> elements in AdBlocK filter runs. + +2005-07-25 Dawit Alemayehu <adawit@kde.org> + * ecma/xmlhttprequest.cpp: Use the charset provided by the remote host through the HTTP headers. + +2005-07-25 Andreas Kling <kling@impul.se> + + Make new ad filters have instant effect (either hide affected elements + replace them with the "blocked" pixmap.) + + * khtml_part.{cpp,h}: Added runAdFilters() function which is called from reparseConfiguration() + * khtml_ext.cpp: Call KHTMLPart::reparseConfiguration() after adding new filters. + * misc/loader.cpp: Create blockedPixmap in Cache::init() instead of the CachedImage constructor. + +2005-07-19 Allan Sandfeld Jensen <kde@carewolf.com> + + * rendering/render_box.{h,cpp}: Make sure we get content-sizes when reading fixed length values. + +2005-07-19 Andreas Kling <kling@impul.se> + + * xml/dom_docimpl.cpp (isURLAllowed): Match ad filters against fully + expanded URL. + +2005-07-18 Andreas Kling <kling@impul.se> + + "Block IFrame..." context menu option + + * khtml_ext.{cpp,h}: Added "blockiframe" to context popup menu + * khtml_popupmenu.rc: Same + * khtml_part.h: added KHTMLPopupGUIClient to friend classes + +2005-07-08 Germain Garand <germain@ebooksfrance.org> + + vertical-align fixes + + * rendering/render_object.cpp (getVerticalPosition): block level + elements must ignore vertical alignment (#92118). For Length values, check the parent + too. Don't use the parent's position if it's top/bottom - it's waiting for + our subtree's to complete! (cf. css/vertical-align.html) + + * rendering/render_list.cpp (calcMinMaxWidth): if the marker is the error image, + avoid calculating bogus values. + +2005-07-07 Allan Sandfeld Jensen <kde@carewolf.com> + + There is nothing KHTML specific about keypress events. They might not be DOM2 or 3, + but MSIE, Mozilla and Safari all handles them as a valid event class. + + * xml/dom2_eventsimpl.{h,cpp}: Allow KEYPRESS as a valid event type + * ./.: Rename KHTML_KEYPRESS_EVENT to KEYPRESS_EVENT + +2005-07-05 Allan Sandfeld Jensen <kde@carewolf.com> + + * html/htmlparser.cpp(insertElement): Do not create DLs for stray DT and DD + (popBlock): Reopen residual tags + * html/dtd.cpp: Allow more elements under DL + +2005-06-29 Allan Sandfeld Jensen <kde@carewolf.com> + + * html/htmltokenizer.cpp: Reset discard when encountering tags or entities + +2005-06-28 Allan Sandfeld Jensen <kde@carewolf.com> + + * html/html_tableimpl.cpp (appendChild): Always add TBody to XHTML rows + * xml/xml_tokenizer.cpp (startElement): Remove hack for adding TBody to any row + +2005-06-27 Stephan Kulow <coolo@kde.org> + + * html/html_formimpl.cpp (parseAttribute): Fix ignoring of align + attribute on form elements !image (patch by OpenDarwing #3360) + +2005-06-25 David Faure <faure@kde.org> + + * html/htmlparser.cpp (insertNode): Fix parsing of <table><tr><caption>, + with code from WebCore, http://www.cs.cornell.edu/~maksim/WC/changesets/3747.html + +2005-06-23 David Faure <faure@kde.org> + + * html/html_tableimpl.cpp (appendChild): Improve fix for bug #105586 to avoid + side effects with tfoot. + + * khtml_run.cpp (foundMimeType): Mark child object (e.g. <embed>) as completed + after saving, running in external viewer, or cancelling, so that e.g. scheduled redirects + can happen. Patch by Andreas Kling <kling@impul.se>. + +2005-06-20 Allan Sandfeld Jensen <kde@carewolf.com> + + * ecma/kjs_events.cpp: Respect the DOM for MouseEvent::Button atleast when simulating Mozilla + +2005-06-20 David Faure <faure@kde.org> + + * ecma/kjs_window.cpp (openWindow): Treat empty string the same + as missing for third argument of window.open(). + +2005-06-20 Allan Sandfeld Jensen <kde@carewolf.com> + + Merge handling of dynamically inserted scripts. + + * html/html_headimpl.{h,cpp}: Load and execute dynamic scripts + * html/htmlparser.cpp: Set a createdByParser to not execute scripts twice. + * xml/xml_tokenizer.cpp: Ditto. + +2005-06-19 George Staikos <staikos@kde.org> + * css/css_renderstyledeclarationimpl.{h,cpp}: Merge crash fix from + webcore (See bug #107460). + * css/css_valueimpl.{h,cpp}: Make m_node SharedPtr<>. + +2005-06-18 Harri Porten <porten@kde.org> + + * ecma/kjs_window.cpp (openWindow): patch by Andreas Kling that + adds support for "scrollbars" option to window.open(). + +2005-06-14 Allan Sandfeld Jensen <kde@carewolf.com> + + * rendering/render_style.{h,cpp}: Remove the quotes as counters hack + * css/cssstyleselectors.cpp: ditto + * rendering/render_container.{h,cpp} (updatePseudoChild): Clean and simplify + * rendering/render_generated.{h,cpp}: Split quotes from counters and + create new base class RenderCounterBase. + * rendering/render_object.cpp: Count quotes correctly + +2005-06-14 Dirk Mueller <mueller@kde.org> + * ecma/domparser.{h,cpp}: Unbreak compilation. + +2005-06-13 George Staikos <staikos@kde.org> + * ecma/xmlhttprequest.{h,cpp}: Disallow duplicated headers, and always + disallow Content-Length setting. + +2005-06-09 Allan Sandfeld Jensen <kde@carewolf.com> + + Implementing Mozilla extension DOMParser + + * ecma/domparser.{h,cpp}: Implementation + * ecma/kjs_window.{h,cpp}: Exposing DOMParser + * misc/shared.h: khtml::SharedPtr<> + +2005-06-08 Allan Sandfeld Jensen <kde@carewolf.com> + + * html/html_tableimpl.{h,cpp}: Implement FRAME attribute + +2005-06-03 Harri Porten <porten@kde.org> + + * ecma/kjs_window.cpp (put): don't crash on attempts to set a + property on a deleted window (bug #106697). + +2005-06-03 George Staikos <staikos@kde.org> + * ecma/kjs_window.cpp: Escape HTML in message boxes like window.alert() + +2005-06-02 Allan Sandfeld Jensen <kde@carewolf.com> + + * rendering/render_block: Merge margin collapsing improvement from WebCore-146 + +2005-06-01 Harri Porten <porten@kde.org> + + * ecma/kjs_window.cpp: fixed prototype property lookup order of + global window object. Fixes endless loop on maps.google.com + (bug #98979). + +2005-05-28 Allan Sandfeld Jensen <kde@carewolf.com> + + Implement ideographic enumeration including the CSS 2.1 cjk-ideographic and several from CSS 3 List (working draft). + Also add three more numeric: (Lao, Thai and Tibetan) + + * css/cssvalues.in: Add new CSS3 values with -khtml- + * rendering/render_style.h: Add new enums + * rendering/enumerate.cpp: Implement the ideographic algorithm. + +2005-05-24 David Faure <faure@kde.org> + + * html/html_tableimpl.cpp (appendChild): Allow javascript to insert + a TR directly into a TABLE, creating a TBODY section if needed (bug #105586). + +2005-05-21 Harri Porten <porten@kde.org> + + * html/html_documentimpl.cpp: emit onload event even if the + document has no body element (bug #105798). + +2005-05-20 Allan Sandfeld Jensen <kde@carewolf.com> + + Implement/fix CSS namespace selector and other XHTML fixes. + + * css/css_base.h: Merge CSSNamespace from WebCore + * css/css_stylesheetimpl.{h,cpp}: Port determineNamespace and addNamespace from WC + * css/parser.y: Parse namespaces better + * xml/dom_docimpl.cpp: Add noNamespace to namespace functions + * xml/dom_nodeimpl.h: Add constants for any, no and xhtml namespaces + * xml/xml_tokenizer.cpp: Parse white space. + +2005-05-18 Harri Porten <porten@kde.org> + + * xml/dom2_eventsimpl.cpp: recognize "dblclick" type in + addEventListener() calls (bug #98994). + +2005-05-16 Harri Porten <porten@kde.org> + + * ecma/*.cpp: removed usage of deprecated KJS::Value::isNull() + + * ecma/kjs_dom.cpp: reverted "null" change from previous day + until the compatibility to other browsers is investigated. + +2005-05-15 Harri Porten <porten@kde.org> + + * ecma/kjs_dom.cpp: return "null" from getAttribute() and + getAttributeNS() if the attribute isn't set. + + * html/html_elementimpl.cpp: always return a non-null string + from innerHTML() and innerText() + +2005-05-14 Ivor Hewitt <ivor@ivor.org> + * khtml_settings.cc: Support full wildcard expressions in AdblocK + +2005-05-12 Luciano Montanaro <mikelima@cirulla.net> + * html/html_formimpl.cpp: Make a return keypress activate form + buttons. Matches Mozilla. + + * html/html_inlineimpl.cpp: make onclick() work for links too. + +2005-05-12 David Faure <faure@kde.org> + + * khtmlview.cpp (dispatchKeyEvent): Don't send DOM keypress if + the DOM keydown that precedes it was blocked by javascript, as in IE. + + * rendering/render_replaced.cpp (handleEvent): send Qt::KeyPress to the + widget for DOM keypress and not DOM keydown to allow sites to block a key + with onkeypress, #99749. + +2005-05-11 Allan Sandfeld Jensen <kde@carewolf.com> + + * html/html_objectimpl.cpp: Extract service-type from "data:" url and create + renderer for all images + +2005-05-09 Allan Sandfeld Jensen <kde@carewolf.com> + + Speed-up white-space collapsing by only allocating once. + + * renderer/render_table.cpp: Remove static function cleanString + * xml/dom_stringimpl.cpp: Add collapseWhiteSpace function + +2005-05-07 Harri Porten <porten@kde.org> + + * html/html_tableimpl.cpp (cellIndex): return meaningful values + using patch suggested by Rob in bug report #7690. + + * ecma/kjs_window.cpp: allow setting location.href on foreign + windows opened by window.open() again (bug #101178). + +2005-05-06 Ivor Hewitt <ivor@ivor.org> + + fix #15848: First implementation of AdBlocK. + + * khtml_ext.{cpp,h}: Add Blockimage to context popup menu + * khtml_popupmenu.rc: ditto + * khtml_settings.{cc,h}: Add adFilter settings and helper functions + * html/htmlparser.cpp: Strip blocked IMG tags + * misc/loader.{cpp,h}: Return replacement blocked images and refuse to load blocked scripts. + * misc/blocked_icon.{cpp,png}: Image for above + * xml/dom_docimpl.cpp: isURLAllowed returns false for blocked URL's + +2005-05-02 David Faure <faure@kde.org> + + * ecma/kjs_html.cpp (HTMLCollectionProtoFunc::tryCall): Support for + non-standard item('<name>'). + +2005-05-02 David Faure <faure@kde.org> + + Propagate correct DOM exception code from checkAddChild to setInnerHTML. + * html/html_elementimpl.cpp (setInnerHTML, setInnerText) + * dom/html_element.cpp (setInnerHTML, setInnerText) + +2005-05-01 Allan Sandfeld Jensen <kde@carewolf.com> + + The mergeable of Daves Acid2 patches. + + * renderer/render_block.cpp: + - Make sure that percentages that go to auto don't mess up the self-collapsing block check. + - Fix floats to not grow if child floats overhang but the height of the outer float is auto. + * renderer/render_box.{h,cpp}: + - Add support for min/max-width/height for positioned elements. + - Make sure percentage min-height goes to 0 and not auto when the percentage does not apply. + * renderer/render_table.cpp: + - Make sure empty tables honor CSS-specified height in strict mode. + - Fix baseline alignment within table cells to use the bottom of empty blocks. + +2005-04-30 Harri Porten <porten@kde.org> + + * ecma/kjs_window.cpp: unbreak calling close() on other + windows. It has it own set of security checks. + +2005-04-24 Harri Porten <porten@kde.org> + + * html/html_formimpl.cpp (value): never return a null string from + the value() function of input elements. + +2005-04-18 David Faure <faure@kde.org> + + Special scope entries for event handlers are based on the DOM node on + which the handler is an attribute, not the event target, which also + allows to set it up at the time the event handler is created, not at + the time it fires (Safari merge). + + Many files touched to simply pass the NodeImpl around. + + Testcase events/eventhandlerscope.{html,js} + +2005-04-15 Lubos Lunak <l.lunak@kde.org> + + * khtmlview.{h,cpp}: Assign unused accesskeys automatically to elements + without accesskeys. + +2005-04-06 Lubos Lunak <l.lunak@kde.org> + + * khtmlview.{h,cpp}: Use KActions for type ahead find. + * khtml_part.{h,cpp}: ditto. + * khtml_part.{h,cpp}: Add Find Previous action. + * khtml_part.cpp (findTextNext): Fix changing direction while searching text. + +2005-04-05 Lubos Lunak <l.lunak@kde.org> + + * misc/loader_jpeg.cpp: Fix loading of progressive JPEGs. + +2005-04-04 Lubos Lunak <l.lunak@kde.org> + + * khtmlview.cpp: Don't use keyboard grab for type-ahead find. + +2005-04-03 Allan Sandfeld Jensen <kde@carewolf.com> + + * ecma/kjs_html.{h,cpp}: Implement frame and iframe .contentWindow + * ecma/kjs_window.{h,cpp}: Implement window.frameElement + +2005-03-30 Allan Sandfeld Jensen <kde@carewolf.com> + + * html/htmlparser.{h,cpp}: Merge WebCore handling of residual styles. + +2005-03-29 Germain Garand <germain@ebooksfrance.org> + + Layer related fixes. + + * ecma/kjs_dom.cpp (putValueProperty): scrollLeft/scrollTop need an + up-to-date rendering. + + * rendering/render_box.cpp (repaintRectangle): apply scroll offset + to the repaint rectangle (overflow != visible objects). + + * rendering/render_layer.{h,cpp} (repaint): rename markForRepaint to + less equivocal repaint. + (updateLayerPositions): small fixes. + (scrollToOffset): update our child layers (#102235) + + * rendering/render_object.cpp (setStyle/repaintDuringLayout): rename ditto. + +2005-03-29 Germain Garand <germain@ebooksfrance.org> + + offsetLeft/Top/width/Height/Parent improvements + + * rendering/render_object.cpp (offsetLeft/offsetTop/offsetParent): + match IE behaviour in strict mode. + + * rendering/render_table.{h,cpp} (RenderTableRow::offsetLeft/offsetTop/offsetHeight/offsetWidth): + reimplemented to return meaningful values (#102127) + +2005-03-22 Allan Sandfeld Jensen <kde@carewolf.com> + + * css/parser.y: Parse pseudo-elements and pseudo-classes separately. + * css/css_base.{h,cpp}: Treat pseudoElements and pseudoClass as differing match-types and + add compatibility transform from pseudoClass to pseudoElement for CSS2 pseudo-elements. + +2005-03-22 Allan Sandfeld Jensen <kde@carewolf.com> + + * html/htmltokenizer.cpp: Implement SGML attribute-value white-space parsing rules. + +2005-03-22 Allan Sandfeld Jensen <kde@carewolf.com> + + * html/htmlblockimpl.cpp: When a NS-layer gets DIV layer children. The NS layer should + let the DIV layer control position. + +2005-03-22 Allan Sandfeld Jensen <kde@carewolf.com> + + * misc/loader.cpp: Do not override existing charset with an empty one. + +2005-03-21 Allan Sandfeld Jensen <kde@carewolf.com> + + * html/htmltokenizer.cpp: + - Only skip first LF if immediately after PRE tag. + - Set prePos to 0 after BR tag + +2005-03-18 Allan Sandfeld Jensen <kde@carewolf.com> + + * xml/dom_docimpl.h: Add dictionary of CounterNodes + * rendering/render_object.{h,cpp}: Save 8 bytes overhead by moving counternodes to document + * rendering/render_list.cpp: Do not calculate counter value for unordered lists + +2005-03-18 Germain Garand <germain@ebooksfrance.org> + + * xml/dom_nodeimpl.cpp (traverseNextNode): fix broken algorithm for stayWithin + case (#101711) + +2005-03-18 Germain Garand <germain@ebooksfrance.org> + + make disabling of CSSheets via DOM actually do something. + + * css/css_stylesheetimpl.{cpp,h} (setDisabled): update style selector. + + * css/cssstyleselector.cpp (CSSStyleSelector): do not append rules + from disabled sheets. + +2005-03-17 Leo Savernik <l.savernik@aon.at> + + * rendering/render_flow.cpp (repaint): Calculate height, do not simply + use the bottom overflow of the root line box. + +2005-03-16 George Staikos <staikos@kde.org> + + * rendering/render_frames.cpp: some sites put width and height on <embed> + inside <object> instead of on <object>, so push that attribute up to + <object> and report it to the plugin + +2005-03-14 Germain Garand <germain@ebooksfrance.org> + + * css/html4.css: horizontal rules are centered by default (HTML-4.01 15.3) + +2005-03-12 Germain Garand <germain@ebooksfrance.org> + + * ecma/kjs_window.{cpp,h}: implement JS 1.2's window.atob/btoa (base-64 codec interface) + +2005-03-10 David Faure <faure@kde.org> + + * ecma/kjs_events.cpp (handleEvent): Move "pushing element/form/doc onto the scope" + from JSEventListener::handleEvent to JSLazyEventListener::handleEvent so that + it only happens with listeners set from html attributes, not from JS - in which + case the function already got a correct scope when created. + Testcase events/eventhandlerscope.{html,js} + +2005-03-04 Allan Sandfeld Jensen <kde@carewolf.com> + + Merge table padding from WebCore + + * html/html_tableimpl.cpp: CELLPADDING should not set normal padding + * rendering/render_table.cpp: Respect padding + * rendering/render_table.h: bordersAndSpacing() -> bordersPaddingAndSpacing() + +2005-03-04 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_block.cpp (layoutBlockChildren): percent width + children behaves like fixed width children with regard to float + clearing. In both cases we need to check if current line as enough width to + hold the (flowing-around-float) child. If not, we need to clear. + +2005-03-04 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_table.cpp (calcWidth): always use lineWidth for + table margins calculation (#89900) + +2005-03-03 Germain Garand <germain@ebooksfrance.org> + + * ecma/kjs_dom.cpp (getValueProperty/putValueProperty): + Mozilla/IE strict compatibility: document.documentElement.scroll{Top,Left} + concern the canvas, not the root block. + Cf. http://www.quirksmode.org/viewport/compatibility.html + +2005-03-01 Allan Sandfeld Jensen <kde@carewolf.com> + + * html/html_formimpl.cpp: Report content position rather than viewport position in "image" forms + +2005-03-01 David Faure <faure@kde.org> + + * html/html_formimpl.cpp (setType): Implemented, to make it possible + to set the type of an input element created with createElement. + Partially inspired by WebCore's setType(), but for getAttribute("type") + to work, setType() must set ATTR_TYPE. So parseAttribute() has to call + another method which doesn't do that, which is now parseType(), to + avoid an infinite recursion. Testcase forms/input_setType.html + +2005-02-28 Harri Porten <porten@kde.org> + + * xml/dom2_eventsimpl.cpp: always return a non-zero keyCode() + value even if it is Qt::Key_unknown as it is the case with the + AltGr key for example. + +2005-02-28 David Faure <faure@kde.org> + + * html/html_formimpl.cpp (setName): Also set ATTR_NAME so that + form.foo finds the input element. Testcase forms/input_setName.html. + +2005-02-27 Leo Savernik <l.savernik@aon.at> + + * rendering/font.cpp (drawText): Only pass text from inline text box to + QPainter::drawText, not the whole RenderText's text. + +2005-02-27 Harri Porten <porten@kde.org> + + * ecma/kjs_events.cpp: bind keyboard modifier properties like ctrlKey + + * xml/dom2_eventsimpl.cpp: returning meaningful keyCode() values + for "special" keys + + * dom/dom2_events.cpp: make which() equivalent to keyCode() + +2005-02-20 Germain Garand <germain@ebooksfrance.org> + + * html/html_formimpl.cpp (FocusHandleWidget::focusNextPrev): TextEdit + needs to use QWidget::focusNextPrevChild. + (defaultEventHandler): only handle key tab if it wasn't accepted by the widget (#58247) + + * rendering/render_replaced.cpp (RenderWidget::handleEvent): return + something meaningful. + +2005-02-18 Germain Garand <germain@ebooksfrance.org> + + scope: table percentage height, replaced element height calculation. + + * rendering/render_body.cpp (layout): pre-calculate our margins in + quirk mode, to be able to compute calcPercentageHeight in a const way. + + * rendering/render_box.{h,cpp} + (calcPercentageHeight): make const. Fix calculation of percentage + height within table cells to match other engines. + Do not subtract PB for table elements. + (calcReplacedHeightUsing): use calcPercentageHeight for Percent. + Looking for available height is an IE quirk and is thusly only done in quirk mode now. + When it is not computable, it behaves like 'auto', so use the intrinsicHeight (cf.10.6.2). + + * rendering/render_table.cpp (layoutRows): fix vertical alignment within + percentage driven cells. Subtract the cell's PB from cellPercentageHeight. + +2005-02-18 Leo Savernik <l.savernik@aon.at> + + * rendering/render_layer.cpp (updateHoverActiveState): Also mark + textnodes as being active. Use NodeImpl's implementation of setActive + for efficiency reasons, the style is updated anyway afterwards. + +2005-02-16 Leo Savernik <l.savernik@aon.at> + + * khtmlview.cpp (dispatchMouseEvent): Walk upwards the parent chain + from the target node and set the focus to the nearest focusable + ancestor (merged from WebCore). + +2005-02-16 Germain Garand <germain@ebooksfrance.org> + + - sanitize part/tokenizer state (for cross-document scripts). + - don't delete a tokenizer still executing a script on explicit close (patch from Allan Sandfeld + and Sarah <sarah@b0rked.dhs.org>) + fixes #68523 + crashes on early pop-up closing. + + * html/htmltokenizer.{h,cpp} (setAutoClose/timerEvent/...): add timer driven auto-close mode for + e.g cross-frame scripts. + + * khtml_part.{h,cpp} (resetFromScript): reset the part to a sane state before reopening + a closed document. + + * xml/dom_docimpl.cpp (write): ditto. + (close): Check for isExecutingScript before deciding to delete the tokenizer. + + * xml/xml_tokenizer.h (setAutoClose/isExecutingScript): ditto. + +2005-02-15 Leo Savernik <l.savernik@aon.at> + + * rendering/render_table.{cpp,h} (RenderCell::nodeAtPoint): + Including top and bottom extra space in hit testing. + +2005-02-15 Allan Sandfeld Jensen <kde@carewolf.com> + + Implement genererated content: counter and quotes + + * css/*: Parse new counter and quote content, and counter acts. Quotes are parsed to a special type of counter. + * rendering/counter_tree.{h,cpp}: Adds a dynamic counter-tree to keep counter values up-to-date + * rendering/render_generated.{h,cpp}: New renderCounter class to renders counters as text + * rendering/render_container.cpp: Content now only inherits style from the pseudo-container rather than use an exact duplicate. + * rendering/render_object.cpp: Add new functions to find and attach counter-tree nodes. + * rendering/render_style.cpp: New counter content and counter acts + * rendering/render_list.cpp: Use the new counters to count lists + +2005-02-14 Leo Savernik <l.savernik@aon.at> + + * rendering/render_flow.cpp (repaint): Only include top and bottom + overflow while not relayouting, otherwise root inline box may not be + available yet. + +2005-02-14 David Faure <faure@kde.org> + + * html/html_formimpl.cpp (value): Fix for textarea onChange not emitted: + emit it when updating m_value in value(), since this happens before the + focusOut event, which doesn't do it since m_dirtyvalue is then false. + +2005-02-13 Leo Savernik <l.savernik@aon.at> + + * rendering/render_block.{cpp,h} (paintObject): Added parameter to only + paint the block's outline on demand. + + * rendering/render_flow.cpp (repaint): Fix repaint rectangle to also + encompass the top and bottom overflow of the root inline box. + + * rendering/render_line.{cpp,h} (InlineBox::root): Ported over from + WebCore. Returns the root inline box of this box. + + * rendering/render_table.{cpp,h} (RenderTableCell::repaintRectangle): + Use full height of table cell, otherwise outline won't be fully + repainted. + (RenderTableCell::paint): Paint outline of table cells explicitly, + and keep the underlying render block from painting it itself. + (RenderTableCell::paintObject): Removed. Nowhere used anymore. + +2005-02-13 Harri Porten <porten@kde.org> + + * xml/dom2_eventsimpl.*: updated virtual key codes to a more recent + version. Added mapping for Up and Down cursor keys. Made keyCode() + always return the uppercase value of characters. + +2005-02-12 David Faure <faure@kde.org> + + * khtml_part.cpp (slotRedirect): No reload should happen when redirecting + to sameurl#anchor via Javascript or META refresh. This happened due to the + setRedirectedRequest(true), which wasn't necessary for the webmin tree.cgi + fix - setRedirectedRequest is called by KonqRun for that one. + The other redirectedRequest check was used for adding cross-domain, I simply + moved that code from urlSelected to slotRedirect. + +2005-02-12 Germain Garand <germain@ebooksfrance.org> + + fix inline formatting model + + * rendering/render_line.cpp (placeBoxesVertically): shrink/enlarge inlineboxes' height according to rendered gliphes, + but only if the calculated leading delta is superior to our font's natural leading + + * rendering/render_text.cpp (paintSelection): use the linebox's height, not the line-height anymore. + + * rendering/render_inline.cpp (collectVerticalBoxCoordinates): previous linebox's bottomPosition + might now be lower than current linebox's topPosition. Adjust outline algorithm. + +2005-02-08 David Faure <faure@kde.org> + + * khtml_part.cpp (executeScript): Handle immediate redirects, scheduled + by JS with e.g. location='foo', as soon as the current script finishes. + +2005-02-07 Leo Savernik <l.savernik@aon.at> + + * rendering/render_image.cpp (paint): Regard inline offset when + painting outline. + + * rendering/render_table.{cpp,h} (RenderTable::paint): Added missing painting of table outlines. + (firstTableRow): added + (nextTableRow): added + (RenderTableSection::paint): When painting the rows, also traverse + the according RenderTableRows, and call their paintRow routine. + Fixed overflow size of damage rectangle. + (RenderTableRow::paintRow): Added. Can't use paint() because + RenderTableRow is not a RenderBox, and hence doesn't store layout + information. + (RenderTableCell::paint): Added painting of the table cell's outline + herein instead in RenderBlock to encompass the extra table cell top + and bottom margins. + +2005-02-07 Germain Garand <germain@ebooksfrance.org> + + * css/html4.css: the -around-floats flow mode can only be applied to elements defining a + new block formatting context (see CSS2.1 - 9.5). + Blockquote and DL don't by any stretch of the mind, so clear this property for those. + Also, don't center fieldset. + + * rendering/render_block.cpp (layoutBlock): make flowAroundFloats encompass their own floats + (#85984). + +2005-02-02 Leo Savernik <l.savernik@aon.at> + + * dom/dom_doc.{cpp,h}: Added Document::addStyleSheet/removeStyleSheet + interface methods for programmatically adding/removing style sheets. + + * xml/dom_docimpl.{cpp,h}: Added DocumentImpl::addStyleSheet/ + removeStyleSheet methods. + Added list storing programmatically added style sheets. + (updateStyleSelector) Merge programmatical list with effective list + of style sheets. + +2005-02-01 Germain Garand <germain@ebooksfrance.org> + + clearly separate full blown anonymous blocks (isAnonymousBlock) from + pseudo-elements (isPseudoAnonymous). #74595, #92910. + + * rendering/render_block.cpp + (setStyle,updateFirstLetter,addChildToFlow,removeChild,close,renderName): + Only real anonymous blocks can be manipulated interchangeably => adjust logic. + PseudoAnonymous blocks have a null element(), but they keep a relationship to + the element they were generated from, that can be gathered from node() + + * rendering/render_container.cpp (updatePseudoChild,insertChildNode,removeLeftoverAnonymousBoxes): + ditto. + + * rendering/render_inline.cpp (addChildToFlow,splitFlow): ditto. + + * rendering/render_list.cpp (setStyle,updateMarkerLocation,RenderListMarker): + ditto. + + * rendering/render_object.cpp + (RenderObject::information): highlight the pseudo-element to originating element relationship in output. + (RenderObject::dump): ditto. + + * rendering/render_object.h (requiresLayer): add missing hasOverflowClip condition + (isAnonymousBlock): ditto. + (isPseudoAnonymous): ditto. + +2005-01-25 Germain Garand <germain@ebooksfrance.org> + + * khtmlview.cpp (viewportWheelEvent): discard wheel events occuring before the first relayout (avoids blanking the view). + Also support Horizontal wheel events (needs qt-copy/patch #61). + +2005-01-25 Germain Garand <germain@ebooksfrance.org> + + fix #95704: float double-painting bug. Most of the work done by Charles Samuels. + + * rendering/render_block.h (FloatingObject::FloatingObject): add crossedLayer flag to prevent noPaint from + being toggled off once we have crossed a layer during the float propagation process + + * rendering/render_block.cpp (addOverHangingFloats): use/update said flag. + +2005-01-19 Allan Sandfeld Jensen <kde@carewolf.com> + + * css/*: Parse opacity and outline-offset + * rendering/*: Implement outline-offset + +2005-01-12 Allan Sandfeld Jensen <kde@carewolf.com> + + * css/cssstyleselector.cpp: Match :contains() against innerText on HTMLElements + +2005-01-11 Leo Savernik <l.savernik@aon.at> + + * rendering/render_text.cpp (caretPos): Calculate absolute position + beginning from the RenderText, not from the containing block. + +2005-01-07 David Faure <faure@kde.org> + + * ecma/kjs_html.cpp: Support for document.body.onload. + +2005-01-06 Allan Sandfeld Jensen <kde@carewolf.com> + + * khtml_part.cpp: Fix selection by selecting the text in the cleaned string rather + than in the DOM. + * xml/dom_textimpl.{h,cpp}: Add renderString() to return the possibly transformed string. + +2004-12-29 Allan Sandfeld Jensen <kde@carewolf.com> + + Implement CSS 2.1 white-space: pre, pre-line and pre-wrap + + * html/htmltokenizer.cpp: Merge white-space related parsing from Webcore + * html/htmlparser.cpp: Ditto + * rendering/render_text.cpp: Introduce text transformation that cleans excess + white-space and linefeeds when style()->whitespace() changes. + * rendering/render_style.h: Introduce pre-wrap and pre-line. + Add helper functions autoWrap(), preserveLF() and preserveWS() + * rendering/bidi.cpp: Replace checks of whiteSpace==PRE/NORMAL with new the + more finegrained autoWrap, preserveLF and preserveWS functions. + * css/*: Add pre-line and pre-wrap as possible CSS values + +2004-12-29 Germain Garand <germain@ebooksfrance.org> + + merge bug fix for suboptimal updating of layer hierarchy + + * rendering/render_container.cpp (appendChildNode/insertChildNode): optimize for common case + + * rendering/render_object.{h,cpp} (addLayers): merge optimization + +2004-12-29 Germain Garand <germain@ebooksfrance.org> + + memory allocation fixes + + * khtml_factory.cpp: cleanup the global Arena freelist after the last khtml part gets unloaded + + * misc/arena.{cpp,h} (InitArenaPool): change arenasize from 4096 to kMax(8192, 2*pagesize). + (ArenaAllocate): when a single pool grows over a 256*initial size threshold, switch to fractional allocation + so that more resources can be returned to the system afterward. + (FreeArenaList): don't link more than FREELIST_MAX Arenas to the freelist + (ArenaFinish): reset freelist_count + +2004-12-24 Stephan Kulow <coolo@kde.org> + + * css/cssparser.cpp: fixing keyword background-positions that have an implicit center for the + other cordinate + +2004-12-19 Allan Sandfeld Jensen <kde@carewolf.com> + + * xml/dom_nodeimpl.{h,cpp}: Merge createRendererIfNeeded() and friends from WebCore + * xml/dom_elementimpl.{h,cpp}: Simplify attach to createRendererIfNeeded + * xml/dom_textimpl.{h,cpp}: Don't create unneeded empty text-runs. + +2004-12-18 Allan Sandfeld Jensen <kde@carewolf.com> + + Fix structural pseudo-classes :empty, :last-*, :only-* and :nth-last-* by introducing a late restyling + run when needed. + + * xml/dom_nodeimpl.{h,cpp}: Add new function close() to notify that the close tag have been parsed and no + more static children will be added. + * xml/dom_elementimpl.{h,cpp}: Add flags restyleChildrenLate, restyleSelfLate and restyleLate. To indicate + self, children or self in relation to parent needs restyling at closing time. + * xml/xml_tokenizer.cpp: Call close when close-tags are parsed + * html/htmlparser.cpp: Call close where closeRenderer was previously called + * css/cssstylerenderer.cpp: Set restyleLate flags where necessary + +2004-12-13 Allan Sandfeld Jensen <kde@carewolf.com> + + Be more IE-compatible in IE-compatible key-event extension + + * ecma/kjs_events.{h,cpp}: Add charCode + * dom/dom2_events.{h,cpp}: Glue + * xml/dom2_eventsimpl.{h,cpp}: Make keyCode return windows key codes and add charCode. + +2004-12-12 Germain Garand <germain@ebooksfrance.org> + + Pragmatic incremental repaints: be accurate on layered objects, conservative on + objects in normal flow. Fix performance issues on repeated relayouts (#53114) + + * khtmlview.{cpp,h}: add needsFullRepaint flag, mostly similar to WebCore's. + (layout): don't repaint the canvas systematically anymore. + + * rendering/bidi.cpp (layoutInlineChildren): schedule a repaint on + old rectangle and future rectangle, if marked dirty. + + * rendering/render_block.cpp (layoutBlock/layoutBlockChildren/layoutPositionedObjects): ditto. + + * rendering/render_table.cpp (layout): ditto. + + * rendering/render_box.cpp (calcAbsoluteHorizontal): no more updateLayerPosition() here. + Layers positioning now happen in a separate pass. + + * rendering/render_canvas.{cpp,h} + (needsFullRepaint): new - used to determine if we need to do incremental repaint at all. Don't waste time if the whole canvas is dirty. + (repaintViewRectangle): new - schedule a repaint in absolute coordinates. + (deferredRepaint): new - append argument to a list of objects needing a post-layout repaint. + (scheduleDeferredRepaints): new - repaint all objects in list described above, at the end of layout. + + * rendering/render_layer.{cpp,h} (markForRepaint): new - schedule a repaint of a layer, calculating its visible rectangle, + and optionnally marking it as needing a post-layout repaint. + (updateLayerPositions): merged++ from WebCore. Position layers. Repaint layers marked by the above. + (calculateClipRects/calculateRects): no more updateLayerPosition call there. + + * rendering/render_object.cpp + (setNeedsLayout): when marking for layout, also mark the formatting context for repaint (m_markedForRepaint boolean) + (setChildNeedsLayout): merge WebCore guard against multiple dirtying. + (setStyle): based on the Style diff, decide whether to dirty only the current formatting context, or also the parent's. + (dirtyFormattingContext): new. + (repaintDuringLayout): new - schedule a pre/post-layout repaint on the object, if it makes sense. + +2004-12-12 Germain Garand <germain@ebooksfrance.org> + + sanitize anchor-jumping code. Merge restoreScrollPosition/gotoAnchor + slots to avoid undeterministic calling order and redundant + connections(#94783, 3.3.2 regression of #57360). + + * khtml_part.cpp (restoreURL/openURL/slotData/restoreState): ditto. + (checkCompleted): don't setContentsPos here + + * khtml_part.h: remove private gotoAnchor slot + + * khtmlpart_p.h: add boolean to record whether we need to restore a + stored scroll offset or honour an anchor + +2004-12-09 Allan Sandfeld Jensen <kde@carewolf.com> + + Add :enabled and :disabled pseudo-classes + + * css/css_base.{h,cpp}: Parse new pseudoclases + * css/cssstyleselector.cpp: Implement new selectors + +2004-12-08 Allan Sandfeld Jensen <kde@carewolf.com> + + Merge encoding detection from WebCore + + * misc/decoder.{h,cpp}: Detect XML-encoding, comments in headers and other merges + * khtml_part.cpp: Frames inherits parents encoding as their default + +2004-12-08 Allan Sandfeld Jensen <kde@carewolf.com> + + Merge :target pseudo-class from WebCore + + * css/cssstyleselector.cpp: Uncomment :target handling + * xml/dom_docimpl.{h,cpp}: Add (set)cssTarget. + * khtml_part.cpp: Call setCssTarget on anchors + +2004-12-07 Allan Sandfeld Jensen <kde@carewolf.com> + + Implement/merge CSS2-3 text-shadow property + + * css/*: Merge values and parsing from WebCore + * render/render_style.{h,cpp}: Merge CSS3Inherited and ShadowData classes + * render/render_text.{h,cpp}: Implement new paintShadow function + +2004-12-06 Allan Sandfeld Jensen <kde@carewolf.com> + + * rendering/bidi.cpp: Layout arabic numbers with a separator correctly. + +2004-12-02 Allan Sandfeld Jensen <kde@carewolf.com> + + Implement remaining CSS2 list-style-types and a few CSS3 + + * rendering/render_list.cpp: New algorithms for hiragana, katakana, + armenian, georgian and decimal-leading-zero. + Also fix greek and latin list-styles for larger values. + * css/cssvalues.cpp: Parse box, -khtml-diamond, -khtml-arabic-indic, + -khtml-persian, -khtml-urdu and -khtml-upper-greek + * rendering/render_style.h: Expand list-style enum + +2004-11-30 Germain Garand <germain@ebooksfrance.org> + + * css/cssstyleselector.{cpp,h}: fontSizes array now uses a QValueVector; + made "font-size: smaller/bigger" follow the standard font scale + when possible. + + * css/html4.css: made <big>/<small> use font-size: bigger/smaller (#82657) + +2004-11-29 Allan Sandfeld Jensen <kde@carewolf.com> + + * css/cssstyleselector.cpp: Handle :lang selector + +2004-11-27 Germain Garand <germain@ebooksfrance.org> + + merge WebCore differences in logic for Auto table layout + + * rendering/table_layout.cpp (calcEffectiveWidth/layout): + distribute remaining width starting with fixed rather than percent (#88104). + +2004-11-26 Germain Garand <germain@ebooksfrance.org> + + merge zero deep-copy TokenizerString class from WebCore + + * html/htmltokenizer.{cpp,h} + * misc/stringit.{cpp,h} + * xml/xml_tokenizer.{cpp,h} + +2004-11-23 Allan Sandfeld Jensen <kde@carewolf.com> + + Implement the structual pseudo-selectors of CSS3. + + * css/tokenizer.flex: Add nth and NOTFUNCTION tokens. + The later because the not-function is unique in its parsing. + * css/tokenizer.cpp: Manually merge output from flex :( + * css/parser.y: Update parsing of pseudo-functions. + Also enables correct parsing of :lang and :contains. + * css/css_base.{h,cpp}: Add new pseudoselectors + * css/cssstyleselector.cpp: Implement new selectors + +2004-11-22 Germain Garand <germain@ebooksfrance.org> + + * rendering/bidi.cpp (layoutInlineChildren): for elements with some kind of + scrolling overflow and a variable height, include the scrollbar height in + calculations to avoid masking content (#89136). + + * rendering/render_block.cpp (layoutBlock/layoutBlockChildren): ditto. + + * rendering/render_box.cpp (contentWidth/contentHeight): subtract scrollbars + height/width when applicable. + +2004-11-22 Allan Sandfeld Jensen <kde@carewolf.com> + + Implement CSS border on form-widgets + + * css/cssvalues.in: Add -khtml-native + * css/cssparser.cpp: Accept -khtml-native as a border-type + * css/cssstyleselector.cpp: BNATIVE and not BNONE is now lowest border-style + * css/html4.css: Make -khtml-native default border-style for form-widgets + * render/render_style.h: Add BNATIVE + * render/render_object.cpp: Treat BNATIVE like BNONE + * render/render_replaced.cpp: Remove native, and paint CSS border when allowed + +2004-11-21 Germain Garand <germain@ebooksfrance.org> + + float and flowAroundFloat fixes. + + * css/html4.css: make fieldset -khtml-around-floats (#92979) + + * rendering/render_block.cpp (layoutBlockChildren): cleanup float/flowAroundFloats + logic. Merges: add better RTL layouting of fAFs. + (lineWidth): guard against negative values + (clearFloats): don't copy floats if element defines a new block + formatting context (#93511) + (markAllDescendantsWithFloatsForLayout): add missing argument to + recursive call + (getClearDelta): merge + (InlineMinMaxIterator::next): exclude positioned elements + (calcInlineMinMaxWidth): merge float clearing adjustments + (calcBlockMinMaxWidth): ditto + + * rendering/render_box.cpp (calcWidth): use containingBlockWidth + + * rendering/render_object.cpp (isHR): new. Evil but useful for quirkmode (cf. usesLineWidth). + (flowAroundFloats): add replaced and overflowClip elements + (usesLineWidth): adapt to above. + + * rendering/render_table.cpp (calcWidth): style()->flowAroundFloats => flowAroundFloats() + +2004-11-19 Stephan Kulow <coolo@kde.org> + + * rendering/render_form.cpp (updateFromElement): restore scrolling position in case of a change + in text and do not trigger the update code more often than necessary + +2004-11-17 Allan Sandfeld Jensen <kde@carewolf.com> + + * render/render_table.{h,cpp}: Improve distribution of excess height + +2004-11-17 Allan Sandfeld Jensen <kde@carewolf.com> + + * render/render_table.cpp: Respect margins when calculating width to be distributed. + +2004-11-16 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_replaced.{cpp,h} (cancelPendingResize): allow + canceling of scheduled widget resizes, to avoid flicker when we + had to perform temporary layouts. + + * rendering/render_table.cpp (calcRowHeight): displace resetting layout of cells with + percent children here and mark those dirty, or we might get zero-height widgets on resize + (cf. map24.com) + (layout): ditto. + (layoutRows): cancel widget resizes from temporary layouts. + +2004-11-16 Stephan Kulow <coolo@kde.org> + + * rendering/break_lines.cpp (khtml): adding patch by Otto Pattara to support + libthai for correct line breaks + +2004-11-15 Allan Sandfeld Jensen <kde@carewolf.com> + + Fix odd spacing in gmail-composer and zeg-shop.de + + * render/render_box.h: Change auxillary box-size functions to protected + * render/render_table.cpp: Calculate percentage heights based on containing box + rather than viewport, by merging code with renderBox. + +2004-11-09 Germain Garand <germain@ebooksfrance.org> + + fix globeandmail.com famlily of crashes (#65715) + + * rendering/render_box.cpp (createAnonymousBlock): moved from RenderFlow + (restructureParentFlow): check soundness of parent's flow structure with regard to + the child's new display. Adapted from WebCore. + (setStyle): check parent if floats or positioned objects become in-flow + and thus affects flow structure. + + * rendering/render_flow.cpp (createAnonymousBlock): moved. + + * rendering/render_inline.cpp (splitInlines): use addChildToFlow + rather than appendChildNode + + * rendering/render_line.cpp: display COMPACT cleanups + + * rendering/render_object.cpp: ditto. + +2004-11-06 Allan Sandfeld Jensen <kde@carewolf.com> + + Implement CSS3 property box-sizing to match MacIE, Opera and Mozilla + + * css/css*.in: Add new property and primitive values + * css/cssparser.cpp: Detect content-box and border-box as primitives + * css/cssstyleselector.cpp: Parse box-sizing + * render/render_style.h: Add box-sizing to non-inherited values + * render/render_box.cpp: Consult box-sizing before adding padding and + border to width and height + +2004-11-05 Germain Garand <germain@ebooksfrance.org> + + * khtml_part.cpp (closeURL/slotData/restoreState): avoid triggering + full repaints of the view before the first layout is done. + +2004-11-05 Germain Garand <germain@ebooksfrance.com> + + * css/cssstyleselector.cpp (computeFontSizes): add compensated font scale + from Todd Fahrner's "Toward a standard font size interval system" + article for 12ppem and below (suggested by Bert Bos <bert@w3.org>) + +2004-11-04 Stephan Kulow <coolo@kde.org> + + * rendering/bidi.cpp (bidiReorderLine): applying patch by Mitz Pettel + to fix neutral types at beginning of context + +2004-11-03 Germain Garand <germain@ebooksfrance.com> + + * khtmlview.cpp (slotScrollBarMoved): make sure we are layouted before + scrolling if we are still loading (#51473) + +2004-11-02 Stephan Kulow <coolo@kde.org> + + * rendering/render_replaced.cpp (setStyle): set hidden widgets to invisible + + * xml/dom_docimpl.cpp (recalcStyleSelector): avoid invalid casts on XML documents + +2004-11-02 Germain Garand <germain@ebooksfrance.com> + + * css/cssstyleselector.cpp (adjustRenderStyle): + ignore relative positioning on table sections. CSS 2.1 does not + define that, but it is a consensus amongst all major browsers. + +2004-11-01 Sandro Giessl <sandro@giessl.com> + + * rendering/render_replaced.cpp (copyWidget): don't fill the + background of QFrames. they paint their own background now + +2004-10-30 Stephan Kulow <coolo@kde.org> + + * html/html_formimpl.cpp (parseAttribute): ignore height element + for input elements that are not image + +2004-10-28 Stephan Kulow <coolo@kde.org> + + * html/html_documentimpl.cpp (determineParseMode): adding a fixed list of + doctypes to enable quirks mode on (derived from Webcore, but majorly revised) + * enable strict CSS parsing also for transitional doctypes + +2004-10-27 Germain Garand <germain@ebooksfrance.com> + + make font-sizes CSS2.1 compliant. + + * css/cssstyleselector.cpp (computeFontSizes): use standard ratios + from CSS 2.1 15.7. + (applyRule): don't apply zoom factor to ems/exs relative values (#91228). + + * css/html4.css: Hx elements - margin ratios are now 1.1/corresponding ratio. + Switch to absolute sizes from CSS 2.1 15.7 + +2004-10-27 Stephan Kulow <coolo@kde.org> + + * css/cssstyleselector.cpp (checkOneSelector): match exact matches case sensitive + only in XHTML - HTML attributes are all case insensitive + +2004-10-26 Stephan Kulow <coolo@kde.org> + + * html/html_elementimpl.cpp (addCSSProperty): don't add all css properties in + lower case but select those those where it matters + +2004-10-26 Allan Sandfeld Jensen <kde@carewolf.com> + + * rendering/bidi.{h,cpp}: Merge bidi-changes from WebCore + +2004-10-26 David Faure <faure@kde.org> + + * khtml_part.cpp (urlSelected): Only call recursiveFrameRequest if target is + different from _self, _top, _blank and _parent. See tests/frames/target/*. + +2004-10-25 David Faure <faure@kde.org> + + * khtml_part.cpp (processObjectRequest): connect to completed(bool) for <embed> + too, to avoid a never-ending-spinning-wheel on the following testcase + <META HTTP-EQUIV="Refresh" content="10;URL=www.kde.org"><EMBED> + +2004-10-25 Stephan Kulow <coolo@kde.org> + + * html/html_elementimpl.cpp (addCSSProperty): add css properties parsed from + attributes as lower case + +2004-10-25 George Staikos <staikos@kde.org> + + * rendering/render_image.cpp: Pass through the CachedObject so we can + use the suggested filename possibly provided by the HTTP headers. + + * khtml_ext.cpp: Make use of the suggested filename for images. + +2004-10-24 David Faure <faure@kde.org> + + * html/html_formimpl.cpp (value): Fixed m_value vs ATTR_VALUE problem + which didn't allow sending mail on gmail.google.com. Testcases: + forms/form_setattribute.html, mozilla/dom/dom-html/{hfor009.html,hinp017.html} + +2004-10-22 Stephan Kulow <coolo@kde.org> + + * ecma/kjs_window.cpp (tryCall): merging handling of event handlers + + * css/cssparser.cpp (parseValue): implementing CSS 2.1 compliant parsing + of background-position (#91572) + +2004-10-21 Allan Sandfeld Jensen <kde@carewolf.com> + + Implement limited DHTML capabilities to the layer implementation + + * html/html_miscimpl.{h,cpp}: Extract collection of all layers + * dom/html_block.{h,cpp}: Add layer DOM + * dom/html_document.{h,cpp}: Add .layers to document DOM + * ecma/kjs_html.{h,cpp}: Add layer DHTML and allow layers to be found by ID + * ecma/kjs_window.cpp: Allow layers to be found by ID + +2004-10-19 Allan Sandfeld Jensen <kde@carewolf.com> + + * rendering/render_box.{h,cpp}: Merge min,max-height fixes + +2004-10-19 Germain Garand <germain@ebooksfrance.org> + + finish merge of static position for positioned objects + + * css/cssstyleselector.cpp (adjustRenderStyle): remember our original display + * rendering/bidi.cpp (appendRun): include positioned objects with static X/Y, + now that we use those. + (findNextLineBreak): adjust static position + + * rendering/render_block.cpp (layoutBlockChildren): ditto. + + * rendering/render_box.cpp (containingBlockWidth): use usesLineWidth + (position): activate static position logic + (calcAbsoluteHorizontal): replace static position calculation + (calcAbsoluteVertical): ditto. + + * rendering/render_object.cpp (removeChild): fix typo + (usesLineWidth): merge usesLineWidth from WebCore + + * rendering/render_style.h (NonInheritedFlags::): originalDisplay member + (setBitDefaults): initialize the above + (originalDisplay/setOriginalDisplay): accessors + (isDisplayReplacedType/isDisplayInlineType/isOriginalDisplayInlineType): + helpers + +2004-10-18 Allan Sandfeld Jensen <kde@carewolf.com> + + * rendering/render_table.cpp: Merge layout fixes from Webcore + +2004-10-17 Stephan Kulow <coolo@kde.org> + + * ecma/kjs_dom.cpp: adding patch by Richard Lärkäng to support IE + extension insertAdjacentHTML (#33968) + +2004-10-16 Allan Sandfeld Jensen <kde@carewolf.com> + + * html/html_formimpl.cpp: Escape otherwise unencodable characters. + Matches the behavior of Gecko. + +2004-10-15 Stephan Kulow <coolo@kde.org> + + * rendering/render_form.cpp (updateFromElement): don't set assume <select> + got items when we calculate a height for items (#87466) + + * css/html4.css: changing default horizontal margins for H1-H6 from + auto to 0 (#91327) + +2004-10-15 Germain Garand <germain@ebooksfrance.org> + + bring z-order to QScrollView + + * html/html_formimpl.cpp (defaultEventHandler): propagate events to + QScrollView + + * khtmlview.{cpp,h}: QScrollview needs fast repaints. Fix + background color of QFrames. + + * rendering/render_form.cpp (createListBox/TextAreaWidget): + make those widgets z-ordered as well. + + * rendering/render_replaced.cpp (paintWidget): optimize painting by + avoiding unnecessary background repaints and by using a shared + paint buffer. + +2004-10-15 Germain Garand <germain@ebooksfrance.org> + + display: compact fixes. + + * rendering/bidi.cpp: remove checks for display: compact, + not needed anymore. + + * rendering/render_block.cpp (layoutBlockChildren): + simpler implementation for compact display: do not insert the + compact child within the next block anymore. + Solves lot of problems with host blocks having non-inline children. + + * rendering/render_object.{cpp,h} (getVerticalPosition): add + ability to compute vertical position with respect to other + RenderObjects than parent. + +2004-10-14 David Faure <faure@kde.org> + + * html/htmltokenizer.cpp (parseTag): Merged patch by John Sullivan (safari) + to refuse skip more <script> tags depending on the value of type and language. + + * html/html_documentimpl.cpp (determineParseMode): + When the document is loaded as text/html, even if xhtml doctype, activate case-insensitive + ("htmlCompat") lookup of tags and attributes (but not in CSS parser). (#86446) + +2004-10-14 Allan Sandfeld Jensen <kde@carewolf.com> + * rendering/*.*: WebCore merge/port of layouted->needsLayout + +2004-10-11 David Faure <faure@kde.org> + + * xml/dom_nodeimpl.cpp (dispatchGenericEvent): Fixed stopPropagation + when called from the target node itself (#90750). + +2004-10-11 Harri Porten <porten@kde.org> + + * ecma/*.cpp: return an empty string (instead of null) when + querying unset string properties + + * ecma/kjs_html.cpp: use full url for Image.src. + +2004-10-08 David Faure <faure@kde.org> + + * ecma/kjs_html.cpp (KJS::HTMLCollection::tryGet): + return Undefined instead of Null for out-of-range indices. + +2004-10-07 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_block.cpp + (updateFirstLetter): move update of first-letter from addChildToFlow to + setStyle/close. Better drilling logic. Use RenderTextFragment to + correctly handle text-transform on first-letter(#76078). + (addChildToFlow): ditto. fix display: block on pseudo-elements (#90917) + (layoutBlockChildren): only clear if floats actually changed our + height. + * rendering/render_object.h (node): accessor to m_node + * rendering/render_text.{cpp,h}: merge RenderTextFragment class + * xml/dom_nodeimpl.h (setRenderer): accessor + +2004-10-07 Allan Sandfeld Jensen <kde@carewolf.com> + * rendering/render_style.h: + WebCore merge of paged media attributes (#68930). + * rendering/render_block.cpp (paintObject): + Break on page-break-before and -after. + * rendering/render_canvas.{h,cpp}: + Merge bestTruncatedAt from WebCore. + * khtmlview.cpp (print): + Use bestTruncatedAt for detect truncated pages. + +2004-10-07 David Faure <faure@kde.org> + + * xml/dom_nodeimpl.cpp (dispatchWindowEvent): Emit load event for frames + from there, to avoid bubbling (safari merge) + +2004-10-05 Rob Buis <buis@kde.org> + * render/render_form.{cpp,h}: + Implemented onchange event generating for checkbox and radio buttons (fixes #51765). + +2004-10-05 David Faure <faure@kde.org> + + * html/html_baseimpl.cpp (parseAttribute): + Set event listener on frame element itself (fixes #72440) + * xml/dom_docimpl.cpp (ownerElement): Safari merge. + * html/html_documentimpl.cpp (close): + Emit onload event for frames (famous gmail bug). + + * ecma/kjs_html.cpp (getValueProperty): + Don't return null when innerText or innerHTML is empty. + +2004-10-04 David Faure <faure@kde.org> + + * khtml_part.cpp (processObjectRequest): + Fixed showing of iframe hidden with display=none (#84332). + +2004-09-16 Leo Savernik <l.savernik@aon.at> + + * rendering/render_inline.{cpp,h} (paintOutline): removed. + (paintOutlinePath): Paints an outline by following a path consisting of + rectangular line segments. + (appendIfNew): Append point if not contained at end. + (reduceSpike): Reduce spikes. + (reduceSegmentSeparators): Redoce segment separators. + (appendPoint): Appends point with reductions. + (collectHorizontalBoxCoordinates): Determines points for top-/bottommost line box. + (lineBoxesDisjoint): Checks whether two line boxes don't share a common x-range. + (collectVerticalBoxCoordinates): Determines points for left/right sides of line boxes. + (linkBeginToEnd): Links the last point to the first one, reducing even more. + (paintOutlines): Uses new painting outline algorithm. + (kSwap): Swaps two variables (candidate for misc?) + (bsOrientation): returns whether border side is horizontal/vertical. + (newBorderSide): Determines new border side. + (paintOutlineSegment): Paints a straight outline segment. + +2004-09-11 David Faure <faure@kde.org> + + * khtml_part.cpp (defaultEncoding, encoding, createDecoder): + Make default charset latin1 over HTTP, keep default to locale on other protocols. + +2004-09-02 Leo Savernik <l.savernik@aon.at> + + * html_formimpl.{cpp,h} (HTMLTextAreaElementImpl::value): + Only take text from RenderTextArea when it has been fully initialized. + Mark it fully initialized when RenderTextArea has been initialized + from the DOM. + (HTMLTextAreaElementImpl::setValue): Mark element as initialized after + setting. + * render_form.cpp (RenderTextArea::setStyle): + Block signals on call to QTextEdit::setAlignment. Otherwise, a bogus + textChanged signal is emitted. + +2004-08-27 Germain Garand <germain@ebooksfrance.org> + + scope: - more accurate completed() signal. + - anchor jumps (#57360) + + * khtml_part.cpp (openURL): when restoring a previous scroll + position on reload, avoid jumping to anchors. + (gotoAnchor): keep jumping at least while we are parsing. + (gotoAnchor): "top" and "" anchors mean top of document. + + (checkCompleted): entrust the view to emit completed on our behalf + after any pending layout/repaint is done. + + * khtmlview.{cpp,h}: ditto + + * xml/dom_nodeimpl.cpp (getUpperLeftCorner/getLowerRightCorner): + use inlineYPos for text objects (#57360 c.#17). + +2004-08-27 Leo Savernik <l.savernik@aon.at> + + * html/html_tableimpl.cpp (HTMLTableCellElementImpl::attach): + Fixed explicit setting of border to 0 width. + +2004-08-24 Leo Savernik <l.savernik@aon.at> + + * ecma/kjs_html.{cpp,h} (HTMLDocument): + Added Javascript-support for HTMLDocument.compatMode. + +2004-08-23 Leo Savernik <l.savernik@aon.at> + + * rendering/render_layer.{cpp,h} (Marquee): Added a stop method for + the ECMAScript invokation. + Fixed starting and stopping and suspending by properly discriminating + against them. + +2004-08-19 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_body.cpp (setStyle): only disallow fixed positioning + on body, not relative/absolute (#77048, #76982). + + * rendering/render_box.cpp (paintBackgroundExtended): make sure backgrounds paint + in the border box and not just in the padding box (WC merge - meyerweb.com/unsorted/bg-position.html). + +2004-08-18 Leo Savernik <l.savernik@aon.at> + + * rendering/render_block.cpp (layoutBlock, layoutBlockChildren, + layoutPositionedObject): Ensure that m_overflowWidth/m_overflowHeight + get updated properly to include relatively positioned + elements, but to exclude the overflow-area of clipped children. + + * rendering/render_box.cpp (repaint): Removed superfluous null ptr check. + Use effectiveWidth/Height instead of overflowWidth/Height. + + * rendering/render_canvas.cpp (docHeight): Fixed superfluous vertical + scrollbars on clipped children. + (docWidth): Fixed superfluous horizontal scrollbars on clipped children. + + * rendering/render_flow.cpp (repaint): + Use effectiveWidth/Height instead of overflowWidth/Height. + + * rendering/render_object.h: Added effectiveWidth/Height. + Made hasClip and hasOverflowClip const. + +2004-08-05 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_block.cpp (layoutBlockChildren): when positionning floats, + use the margin tracking variables, and not the prevFlow -there might be + self-collapsing blocks in between (#85150). + (calcMinMaxWidth): better calculation merged from WebCore. Fixes a few testcases. + + * rendering/render_object.h (collapsedMarginTop/Bottom): don't avoid max(Top|Bottom)Margin, + they are virtuals reimplemented for RenderBlock. + + * rendering/render_object.cpp (createObject): do not set the style before + the renderer is assigned to a node. Fixes Marquee initial layout + (unsorted/RESOLVED-57087-1342.html) failing because of 'element()->renderer() == this' checks. + + * xml/dom_elementimpl.cpp (attach): ditto + +2004-08-04 Germain Garand <germain@ebooksfrance.org> + + * khtmlview.cpp (resizeEvent): take care, in case we are shrinking, + not to pass past the content limits yet. Next layout will calculate + if we positively need scrollbars or not (#84798). + + * rendering/render_canvas.cpp (layout): remove scrollbar flickering turnarounds. + instead, account for a scrollbar hysteresis level when sizing the content (#61730). + +2004-07-30 Jean-Baptiste Mardelle <bj@altern.org> + * khtmlview.{cpp,h} (displayAccessKeys): When accesskeys are activated, + small tooltips appear showing existing accesskeys on the page. + +2004-07-28 Stephan Kulow <coolo@kde.org> + + * html/html_miscimpl.cpp (getNamedItem): more investigation on tags returned + by name attribute in document.all + +2004-07-28 Leo Savernik <l.savernik@aon.at> + + * khtmlview.{cpp,h} (KHTMLToolTip::maybeTip): Query <area> elements + of image maps. + (dispatchMouseEvent): Added parameter innerNonSharedNode. + * khtml_part.{cpp,h}: Added method nonSharedNodeUnderMouse. + * xml/dom_docimpl.cpp (prepareMouseEvent): Initialize + innerNonSharedNode in DOM mouse event. + * xml/dom_nodeimpl.h: Added innerNonSharedNode to + NodeImpl::MouseEvent. + * html/html_imageimpl.h: Added cachedRegion() for being able to + retrieve the region in KHTMLToolTip. + +2004-07-20 Stephan Kulow <coolo@kde.org> + + * css/parser.y: catching imports that come between rules. + They have to be ignored (css1/test11.htm) + +2004-07-14 Jean-Baptiste Mardelle <bj@altern.org> + * khtmlview.{cpp,h}: Accesskeys now activated when pressing & releasing + the crtl key (#83053). + +2004-07-12 Jean-Baptiste Mardelle <bj@altern.org> + * html/html_formimpl.{h,cpp}: Make form labels clickable (#59489) + * khtmlview.cpp (focusNodeWithAccessKey): Make accesskeys work for labels + +2004-07-12 Germain Garand <germain@ebooksfrance.org> + + * ecma/kjs_navigator.{h,cpp} (getValueProperty): + implement navigator.productSub. Fixes most + instances of #68271 + +2004-07-10 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_layer.cpp (calculateClipRects): + absolutely positioned objects must update the overflowClipRect + passed to relatively positioned child layers to match the + posClipRect in effect (#67665/#72994). + +2004-06-30 Tobias Anton <anton@stud.fbi.fh-darmstadt.de> + * khtmlview.{cpp,h}: + integrated keyboard tabbing with mouse scrolling. + Hitting tab skips at most one page, but respects + the tabindex ordering of the document. + If the document has been scrolled by the mouse before, + "tab" now selects the first/last element in the visible + area of the page. + +2004-06-26 Germain Garand <germain@ebooksfrance.org> + + * css/html4.css: + - do not set vertical-align on the table: it breaks inline-table's + default (baseline). cf.webcore/fast/inline-block/001.html + - default all of tbody/tfoot/thead to 'vertical-align: middle' + as per specification. + + * rendering/render_object.cpp: + (getVerticalPosition): fix inverted logic. cf.unsorted/74399.html + (lineHeight/baselinePosition): inline-blocks behaves like replaced elements + only after they are layouted. + + * rendering/render_table.h (position): remove empty reimplementation: + inline-tables need positioning. cf.webcore/fast/inline-block/001.html + + * rendering/render_box.cpp (calcAbsoluteHorizontal): subtract p/b width + when shrinking-to-fit, otherwise it gets accounted for twice. + +2004-06-22 Zack Rusin <zack@kde.org> + + * ecma/kjs_events.cpp (JSLazyEventListener): Adding a destructor + which is now needed since Niko's eventlistener changes make + jseventlistener destructor not remove the listener from + jsEventListeners + +2004-06-22 Germain Garand <germain@ebooksfrance.org> + + Scope: Inline-blocks inlining. Merge Webcore improvements for + Fieldset/Legend + + * css/html4.css: Legend => display: block. + + * html/html_formimpl.{cpp,h} (addChild): remove. + + * rendering/render_block.cpp: + (setStyle): do not overwrite inline status + (makeChildrenNonInline): change assert + (layoutBlock): account for inline-blocks + (layoutBlockChildren): ditto + (clearFloats): ditto. bail out. + + * rendering/render_box.cpp: + (calcWidth): fix logic. cf.css1/test43.htm + (calcHeight): fix logic + + * rendering/render_form.cpp: + (layoutLegend): merges from WebCore-125 + (findLegend): ditto + (paintBoxDecorations): ditto + (setStyle): cf.webcore/fast/forms/007.html + +2004-06-22 Germain Garand <germain@ebooksfrance.org> + + Scope: avoid leaking placeholder InlineBoxes. Cleanups. + + * rendering/bidi.cpp (Bidinext): simplified logic. Do not return each + InlineFlow twice. + (layoutInlineChildren): clear InlineBoxes on relayout. + + * rendering/render_object.{cpp,h}: + (deleteInlineBoxes): new virtual method. + + * rendering/render_box.{cpp,h}: added m_placeHolderBox member. + (createInlineBox/deleteInlineBoxes): reimplemented. + + * rendering/render_flow.{cpp,h}: + (createInlineBox/deleteInlineBoxes): ditto. + + * rendering/render_replaced.cpp (detach): call deleteLineBoxes + + * rendering/render_text.{cpp,h} (deleteInlineBoxes): reimplemented, replacing + deleteTextBoxes + (~RenderText): no need to clear lineboxes twice. + +2004-06-13 Leo Savernik <l.savernik@aon.at> + + * khtml_part.cpp: (clear) Stopping marquees. + * css/cssparser.cpp: (parserValue) Parse overflow: marquee. + Inserted CSS3 Properties section. + Moved -khtml-user-input to CSS3 Properties. + Added parsing of -khtml-marquee{,-direction,-increment,-style,-repetition, + -speed}. + * css/cssproperties.{c,h}: Regenerated. + * css/cssproperties.in: Added -khtml-marquee{,-direction,-increment, + -style,-repetition, -speed} keywords. + * css/cssstyleselector: (applyRule) Handle overflow: marquee. + Handle applying of -khtml-marquee{,-direction,-increment,-style,-repetition, + -speed}. + * css/cssvalues.{c,h}: Regenerated. + * css/cssvalues.in: Added marquee, forwards, backwards, ahead, reverse, + up, down, slow, fast, infinite, slide, alternate, and unfurl keywords. + * css/html4.css: Updated rule to make marquee behave like marquee. + * html/html_blockimpl.{cpp,h}: Added class HTMLMarqueeElementImpl. + * html/html_elementimpl.cpp: (addCSSLength) Fixed adding numeric lengths + without unit. + * html/html_parser.cpp: (getElement) Made ID_MARQUEE generate an + HTMLMarqueeElement. + * htmlattrs.{c,h}: Regenerated. + * htmlattrs.in: Added behavior, direction, loop, scrollamount, scrolldelay, + truespeed attribute keywords. + * rendering/bidi.cpp: (RenderBlock::findNextLineBreak): marquee-related extensions. + * rendering/render_block.{cpp,h}: Updated lowestPosition, rightmostPosition, added + leftmostPosition. + * rendering/render_box.{cpp,h}: Updated lowestPosition, rightmostPosition, added + leftmostPosition. + (setStyle) Inserted call to styleChanged of layer. + (calcWidth) Used containing block's direction when aligning this box. + (calcWidthUsing) Used centralized sizesToMaxWidth() method. + (calcHorizontalMargins) Margin fix for inline blocks. + * rendering/render_flow.{cpp,h}: Updated lowestPosition, rightmostPosition, added + leftmostPosition. + * rendering/render_layer.{cpp,h}: Added Marquee class which takes care of + the shifting operations. + Added styleChanged and suspendMarquees methods. + (updateLayerPositions) Inserted call to updateMarqueePosition. + (scrollToOffset) Took care of marquee. + * rendering/render_object.{cpp,h}: Updated lowestPosition, rightmostPosition, + added leftmostPosition. + Added isHTMLMarquee, sizesToMaxWidth, and isCompact. + * rendering/render_style.{cpp,h}: Added CSS3NonInheritedData structure. + Added StyleMarqueeData. Added OMARQUEE to EOverflow. + Added EMarqueeBehavior, EMarqueeDirection. + Added CSS3 Getter Methods section. + Moved userInput to CSS3 Getter Methods section. + Added marqueeIncrement, marqueeSpeed, marqueeLoopCount, + marqueeBehavior, marqueeDirection. + (RenderStyle::RenderStyle) Instantiated CSS3NonInheritedData there. + Added respective setters to new CSS3 Setters section. + * rendering/render_text.{cpp,h}: Removed rightmostPosition. + * xml/dom_docimpl.cpp: (createHTMLElement) Made it return a + HTMLMarqueeElement for ID_MARQUEE. + +2004-06-10 Zack Rusin <zack@kde.org> + + * xml/dom_textimpl.cpp (escapeHTML): Move from dom_elementimpl.cpp, + and use it to espace text nodes in here + * xml/dom_elementimpl.cpp: propely handle attributes, + * dom/dom_doc.cpp (toHTML): deprecate in favor of toString and + implement in terms of toString, + * dom/html_elementimpl.h (innerHTML): implement in terms of + toString, + * xml/dom_nodeimpl.{h,cpp}: remove the toHTML and recursive_toHTML + methods, + +2004-06-09 Zack Rusin <zack@kde.org> + + * xml/dom_nodeimpl.h, xml/dom_xmlimpl.{h,cpp}, + xml/dom_textimpl.{h,cpp}, xml/dom_elementimpl.{h,cpp}, + xml/dom_docimpl.{h,cpp}, html/html_elementimpl.{h,cpp}, + dom/dom_doc.{h,cpp} : Merging in toString method which serializes + the DOM tree back to a string + +2004-06-09 Zack Rusin <zack@kde.org> + + * xml/xml_tokenizer.{h,cpp}: adding bool isWaitingForScripts() + const method to tokenizer interface which should return true if + the tokenizer is waiting for scripts to finish. Adding the method + to XMLTokenizer, + * html/htmltokenizer.{h,cpp}: adding the isWaitingForScripts + method, + * xml/dom_docimpl.cpp (close): On an explicit document.close() + don't destroy the tokenizer if it's still waiting on external + scripts + +2004-06-09 Zack Rusin <zack@kde.org> + + * ecma/kjs_events.{h,cpp}: made the listener in jseventlistener an + object instead of a value and switch its function accordingly, + adding JSLazyEventListener which delays evaluation of event + handlers, + * ecma/kjs_window.{h,cpp}: adding getJSLazyEventListener which + creates lazy listeners, + * ecma/kjs_dom.cpp (getListener): switched to use lazy listeners, + * ecma/kjs_html.cpp (getValueProperty): adding check of whether + listener implementation is in place (listener is valid), + * ecma/kjs_proxy.cpp (createHTMLEventHandler): switched to use + getJSLazyEventListener, + +2004-06-08 Zack Rusin <zack@kde.org> + + * html/htmltokenizer.cpp (parseEntity): Fix to make 8-character + hexadecimal entities work in khtml from Darin Adler. Testcase at + http://www.alanwood.net/unicode/deseret.html + +2004-06-06 Zack Rusin <zack@kde.org> + + * xml/dom_docimpl.cpp (getId): do html lookup if specified even if not + in a html document since elements can be in xhtml the namespace + + * xml/dom_docimpl.h (hasPendingSheets): adding function returning true, + if stylesheets are currently loading for document. + + * xml/xml_tokenizer.cpp: Merging table hack for XML parsing from + Safari, merging in character changes, but with a fix which we + need, delaying attaching of text nodes till parsing finishes ( + also merged from the Safari team), adding FOUC prevention code. + +2004-06-02 Zack Rusin <zack@kde.org> + + * xml/dom_xmlimpl.cpp: Correctly handle stylesheet loading in + XML documents (try to avoid FOUC) + + * xml/xml_tokenizer.{h,cpp}: Added pushNode(), popNode() and + currenNode() methods. Removed m_currentNode memeber and switched + node construction to a stack based ones. Try to attach to the + parent of the tag which encloses us if it can't handle children. + +2004-05-28 Leo Savernik <l.savernik@aon.at> + + * rendering/render_object.cpp: (drawBorder) Make use of Mozilla's + border-bevel coloring algorithm. + +2004-05-14 Leo Savernik <l.savernik@aon.at> + + * rendering/render_table.cpp: (RenderTableCell::paintBoxDecorations) + Make it unconditionally paint background on empty table-cells + with empty-cells:hide in quirks mode. + +2004-05-13 Leo Savernik <l.savernik@aon.at> + + * rendering/font.cpp: (drawDecoration) + rendering/render_line.cpp: (InlineFlowBox::paintDecoration) + Increased width of text decoration by one. + +2004-05-12 Leo Savernik <l.savernik@aon.at> + + * css/cssstyleselector.cpp: (applyRule) Make borders be at least one + pixel wide between 1pt and 0.025pt. This makes konqueror's behaviour + more compatible to Mozilla's. + +2004-05-09 Leo Savernik <l.savernik@aon.at> + + * rendering/font.cpp: (drawDecoration) Honored line thickness. + Used fillRect instead of drawLine. + + * rendering/render_layer.cpp: (paintLayer) Added invokation of + PaintActionSelection phase when there is a selection. + + * rendering/render_line.cpp: (InlineFlowBox::paintDecorations) + Honored line thickness. Used fillRect instead of drawLine. + Actually use it. + + * rendering/render_text.cpp: (paint) Stopped drawing text in PaintActionSelection. + Stopped drawing selection in any other phase. + Make it draw text-decorations only in quirks mode. + +2004-05-09 Leo Savernik <l.savernik@aon.at> + + * rendering/render_block.cpp: (paint, paintObject, paintFloat) + Introduced maximalOutlineSize, PaintActionOutline phase. + + * rendering/render_box.cpp: (setStyle) Updating maximumOutlineSize. + + * rendering/render_canvas.{cpp,h}: Added maximumOutlineSize + member, setter, and getter. + + * rendering/render_image.cpp: (paint) Added handling new + PaintActionOutline phase. + + * rendering/render_inline.{cpp,h}: Moved paintOutline{s,} from RenderText + to RenderInline. + (paint) Handled PaintActionOutline phase. + + * rendering/render_layer.cpp: (paintLayer) Added invokation of + PaintActionOutline phase. + + * rendering/render_object.{cpp,h}: Added PaintActionOutline phase and + maximumOutlineSize. + + * rendering/render_table.cpp: Added code for handling outlines. + + * rendering/render_text.{cpp,h}: (paint) Removed outline painting + code from there. + Moved paintOutline{s,} to RenderInline. + + * xml/dom_nodeimpl.cpp: (NodeBaseImpl::setFocus) Fixed recursive + application of focus to child elements now that outline correctly + handles block elements. + +2004-05-06 Tobias Anton <anton@stud.fbi.fh-darmstadt.de> + + * html/htmlparser.cpp (class KHTMLParser): use setCurrent() after reset() + to avoid a memleak whenever the parser is used on a DocumentFragment. + +2004-05-04 Leo Savernik <l.savernik@aon.at> + + * css/cssparser.cpp: (parseValue) Updated order of border values to + accomodate border precedence. + Made all colors accept transparent. + + * css/cssstyleselector.cpp: (applyRule) Fixed recognition of transparent + colors so that BorderValue::isTransparent returns true for border colors. + + * css/cssvalues.in: Updated order of border values to accomodate border + precedence. + + * rendering/render_form.cpp: (paintBorderMinusLegend) Honor new border + precedence. + + * rendering/render_object.cpp: (drawBorder) Inserted forgotten break. + (paintBorder) Make border-color: transparent work like in WebCore. + Honor new border precedence. + + * rendering/render_object.h: Introduced PaintActionCollapsedTableBorders. + + * rendering/render_style.h: Updated EBorderStyle to accomodate border + precedence. + (class BorderValue) Merged nonZero and isTransparent to make border + drawing code work. + Merged lots of stuff needed for border-collapse. + Set initial value of empty-cells to hide (to match NN, Moz, IE behaviour). + + * rendering/render_table.cpp: (RenderTable::RenderTable, + RenderTable::setStyle) Merged small adaptations for border-collapse. + (RenderTable::paint) Merged border-collapse paint code from WebCore. + (class RenderTable) Merged new paintBoxDecorations code. + (class RenderTableCell) Merged lots of helper classes from WebCore. + (RenderTableSection::paint) Fixed cutting off of borders spilling into + neighbour cells. + (RenderTableCell::paint) Merged paint code from WebCore. + + * rendering/render_table.h: Added prototypes/member variables. + +2004-04-18 Leo Savernik <l.savernik@aon.at> + + * khtml_part.cpp: (extendSelectionTo): Fixed deselection of whole + word/line at line boundaries in ExtendByWord/ExtendByLine mode. + +2004-04-18 Leo Savernik <l.savernik@aon.at> + + * khtml_part.cpp: Merged firstRunAt, lastRunAt from WebCore. + (khtmlMouse{Press,DoubleClick,Move,Release}Event): Support extending selection + by word and by line as mandated by the KDE style guide. + (khtmlMousePressDoubleClickEvent): Fixed automatic scrolling when mouse + moves off the view while selecting. + (extendSelection): Make it support extending by line by merging + WebCore's startAndEndLineNodesIncludingNode into it. + Fixed issue with double word selection when between two words. + + * khtmlpart_p.h: added m_initialNode, m_initialOffset and + m_extendMode. + + * khtmlview.cpp (extendSelection): Initialize all relevant fields for selection. + + * rendering/render_text.h: Merged inlineTextBoxes function, needed by + firstRunAt, lastRunAt. + (findInlineTextBox): Make it public. + +2004-04-15 Leo Savernik <l.savernik@aon.at> + + * khtml_caret{.cpp,_p.h}: Vast changes. + Added classes CaretBox, CaretBoxLine, CaretBoxIterator, + EditableCaretBoxIterator. Changed every other class. + + * khtmlview.[cpp,h}: (class KHTMLView) Adapt to khtml_caret* changes. + (KHTMLToolTip::maybeTip) Save tooltip position instead of recalculating it. + + * rendering/render_{inline,box}.{cpp,h}: (Render{Box,Inline}::caretPos) + Handle outside caret positions. + + * rendering/render_{image,br}.{cpp,h}: Remove superfluous + Render{Image,BR}::caretPos. + + * rendering/render_line.h: (InlineBox::maxOffset) Return 0 instead of 1. + + * rendering/render_object.{cpp,h}: (RenderObject::caretPos) Introduce + flags to denote outside positions. + Add RenderObject::isRenderReplaced. + + * rendering/render_replaced.h: Add RenderReplaced::isRenderReplaced + returning true. + + * rendering/render_text.{cpp,h}: (RenderText::caretPos) Handle flags. + + * xml/dom_nodeimpl.{cpp,h}: (NodeImpl::getCaret) Handle DOM Range + positions. + Remove unused NodeImpl::{prev,next}LeafNode. + (NodeImpl::maxOffset) Return child node count instead of 1 for element + nodes. + (NodeBaseImpl::childNode): Don't crash on out-of-bounds offsets. + +2004-04-02 Dirk Mueller <mueller@kde.org> + + * misc/loader.cpp (slotFinished): store suggestedfilename for later. + (movieResize): start with the notify. Experimental. + + * rendering/render_layer.cpp (nodeAtPoint): make sure we set + the urlelement to the innermost urlelement. otherwise + overURL and the actual url followed during click get out of sync. + +2004-03-23 Dirk Mueller <mueller@kde.org> + + * khtml_part.cpp (checkLinkSecurity): Be stricter. + + * rendering/render_frames.cpp (updateWidget): readd the recursion protection. + +2004-03-21 Arend van Beelen jr. <arend@auton.nl> + * khtml_part.cpp/.h: if text in a link is highlighted, the link now receives + focus. + + * khtmlview.cpp: made type-ahead find more aggressive by grabbing the keyboard + when active, this way it temporarily overrules single-letter shortcuts as seen + in KMail. Note it immediately releases the keyboard when it looses focus. + +2004-03-20 Arend van Beelen jr. <arend@auton.nl> + * khtml_part.cpp/.h: finished new searching API. + + * khtmlview.cpp/.h: implemented type-ahead find (#51259). + +2004-03-21 Dirk Mueller <mueller@kde.org> + + * html/html_formimpl.cpp (encoding): fix submission of forms + without file upload (#77382). + + * css/css_renderstyledeclarationimpl.cpp (getPropertyCSSValue): fix crash (#77324). + +2004-03-20 Dirk Mueller <mueller@kde.org> + + * xml/dom_docimpl.cpp (processHttpEquiv): improve refresh handling for negative and + slightly malformed delays (#78049) + +2004-03-18 Lubos Lunak <l.lunak@kde.org> + + * khtmlview.cpp, xml/dom_docimpl.cpp: accesskey attribute support + +2004-03-03 Dirk Mueller <mueller@kde.org> + + * html/htmlparser.cpp (getElement): try to avoid nesting <nobr> and <wbr>, + but don't forbit it. + +2004-03-01 Dirk Mueller <mueller@kde.org> + + * rendering/render_text.cpp (calcMinMaxWidth): some more hacks for white-space != + normal. + + * rendering/render_object.cpp (drawBorder): use drawPixel directly. + turns out to be more reliable and equally fast (#62296). + +2004-02-29 Dirk Mueller <mueller@kde.org> + + * html/html_documentimpl.cpp (determineParseMode): treat xhtml transitional + that way (#76449). + + * rendering/bidi.cpp (findNextLineBreak): make sure we move + replaced elements, that don't fit on a line below the floats (#74609). + + * rendering/render_replaced.cpp (calcMinMaxWidth): respect + padding and borders (#65788). + + * rendering/render_form.h (RenderFormElement): make sure we never + end up getting a border or padding for form elements. + + * rendering/render_frames.cpp (partLoadingErrorNotify): don't trigger + slotPartLoadingErrorNotify twice. + + (slotPartLoadingErrorNotify): avoid KMessageBox deletion race. + + * misc/loader_jpeg.cpp: fix incredibly rare lockup in jpeg decoder. + +2004-02-28 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_block.cpp (layoutBlockChildren): + - displace the check for if we need to relayout our childs + because of a float. It was outside of loop (#71445) + - remove check for floatBottom() > m_y has it seems outdated. + +2004-02-25 Dirk Mueller <mueller@kde.org> + + * rendering/render_text.h (class InlineTextBox): rename width(int) + to widthFromStart(int), since it otherwise clashes with upcoming + Safari merges. + + * rendering/render_image.cpp (notifyFinished): forward the + notifyFinished call to the inherited class. + + * rendering/render_inline.h (class RenderInline): + constructor/destructor cleanup. + + * misc/htmlattrs.h: don't export getAttrName symbol. + + * rendering/render_object.h (class RenderObject): move background + repaint handling over here, since TableSections don't inherit RenderBox, + but still have a background. + + * khtml_settings.cc (init)/html4.css: MediumFontSize up to 12. Form elements + get font-size: small instead. + +2004-02-24 Dirk Mueller <mueller@kde.org> + + * ecma/xmlhttprequest.h/cpp: Implement asynchronous interface + enough to pass the tests on http://www.mozilla.org/xmlextras/tests.html + + * xml/dom2_eventsimpl.h (EventImpl): rename KHTML_KEYUP/DOWN_EVENT + to KEYUP/DOWN_EVENT. Add events needed for XMLHttpRequest. + + * rendering/render_object.h (class RenderObject): introduce a PaintInfo + struct that contains the information necessary for all those paint..() methods. + Requires much less parameters to pass and is therefore faster. While being + at it, eliminate the unnecessary virtual method paintObject. + +2004-02-23 Stephan Kulow <coolo@kde.org> + + * rendering/render_inline.cpp: check if the containingBlock is displayed + as block before using it as continuation (#73573) + +2004-02-22 Frerich Raabe <raabe@kde.org> + + * khtml_part.cpp/.h (openURL): In case the call is a reload, do a stat + on the user-defined stylesheet and reload it in case it changed in + the meanwhile (#39962). + * khtmlpart_p.h (class KHTMLPartPrivate): Added + m_userStyleSheetLastModified variable which keeps track of the + mtime of the user-defined sheet. + +2004-02-20 Germain Garand <germain@ebooksfrance.org> + + * rendering/bidi.cpp (operator ++): skip empty RenderText. + Remove unused forcedMinWidth cruft. + + * rendering/render_block.cpp (addChildToFlow): keep the refcount + high for first-letter affected text while we manipulate it. + + * rendering/render_text.cpp: remove unused forcedMinWidth cruft. + +2004-02-20 Frerich Raabe <raabe@kde.org> + + * misc/loader.cpp (DOCLOADER_SECCHECK): Adjusted the macro so that it + takes a bool parameter which indicates whether it should check for + invalid redirections. + (requestImage, requestScript): Use DOCLOADER_SECCHECK(true) now + * misc/loader.cpp/.h (requestStyleSheet): Added parameter which tells + whether the given URL references the user-defined stylesheet. If so, + use DOCLOADER_SECCHECK(false) to disable the check for invalid + redirections (it's not useful for the user-defined URL). + * khtml_part.cpp (PartStyleSheetLoader ctor): pass true to + DocLoader::requestStyleSheet to indicate that the user-stylesheet is + loaded. Fixes seemingly ignored user-defined stylesheet. (#69697) + +2004-02-17 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_block.cpp (addChildToFlow): first-letter: + better fix for pure punctuation/single letter text childs. + Fixes an invalid reference crash (#70546). + +2004-02-16 Germain Garand <germain@ebooksfrance.org> + + * css/cssstyleselector.cpp (styleForElement): pseudo-elements + use their subject's style as parentStyle -e.g: 'inherit' value. + (adjustRenderStyle): mutate pseudo style display to block if + needed (floating or ps. content) as allowed by recent CSS2.1 + draft. + +2004-02-16 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_block.cpp (setStyle): skip pseudo + styles when updating anonymous blocks'style (#73978). + (addChildToFlow):don't crash when installing + first-letter in anonymous blocks or when remaining + content is empty. + + * rendering/render_container.cpp (updatePseudoChild): + always regenerate :before/:after content holding + :first-letter. + + * rendering/render_style.cpp (addPseudoStyle): don't use + RenderStyle's copy constructor for pseudo-elements. + +2004-02-16 Stephan Kulow <coolo@kde.org> + + * rendering/render_container.cpp (updatePseudoChild): merge more + code for content generated elements + +2004-02-15 Zack Rusin <zack@kde.org> + + * xml/dom2_viewsimpl.cpp (getComputedStyle): implementing + 26311 + * css/css_renderstyledeclarationimpl : implementing + CSSStyleDeclarationImpl which maps the properties + to the rendering tree + * css/css_valueimpl.h: changing some methods to virtual + in order to overload them in RenderStyleDeclarationImpl + +2004-02-15 Dirk Mueller <mueller@kde.org> + + * css/css_base.cpp (specificity): fix detection of the * + selector (#73214). + +2004-02-13 Zack Rusin <zack@kde.org> + + * xml/xml_tokenizer (XMLIncrementalSource): implementing + incremental XML parsing + + * xml/dom_nodeimpl.h : removing superfluous semi-colons + +2004-02-11 Germain Garand <germain@ebooksfrance.org> + + Activate merged alternate code path for inline boxes + construction/painting. Whitespace count consistency. + + * rendering/bidi.cpp: merge computeHorizontalPositionsForLine + to get properly constructed InlineFlowBoxes. + (Bidinext): merge skipInline bool to avoid leak. + (RenderBlock::bidiReorderLine): handle whitespace count through + category separator_Space + (RenderBlock::findNextLineBreak): account for empty InlineFlow + + * rendering/font.cpp (drawText, width): whitespace handling + + * rendering/render_box.cpp (position): partial merge + + * rendering/render_line.cpp (placeBoxesVertically): + - line-height on block level means minimum line-height for children. + - Don't enlarge boxes to fit font, only shrink (CSS2:10.8.1) + - Add font's half-leading to top and bottom to avoid nodeAtPoint gaps. + Use fm.height(): WebCore's QFontMetrics includes the baseline in descent + + * rendering/render_object.cpp (offsetLeft/offsetTop): adjust + (hasStaticX/hasStaticY): merged non-virtual methods + + * rendering/render_replaced.cpp (position): do not add margin anymore + + * rendering/render_text.cpp: whitespace handling. No more p/b/m. + +2004-02-10 Dirk Mueller <mueller@kde.org> + + * implement support for pageX/pageY. fix layerX/layerY, which was horrible broken + due to its (wrong) assumption that clientX is the same as pageX (#74718), (#70290). + + * dom/dom2_events.cpp (pageX/Y): add bindings. + + * html/htmlparser.cpp (insertNode): argh. regression fix (http://www.cygwin.com) (#74329). + +2004-02-09 David Faure <faure@kde.org> + + * ecma/kjs_events.h (clear): set listener object to Null(), not to an invalid Object(), + which will crash when the listener is stored in another frame (#61467). Maybe it would be better + to really remove the event listener in this case, but this is hard to do efficiently. + +2004-02-09 Stephan Kulow <coolo@kde.org> + + * css/html4.css: use text-align: left for all input elements + +2004-02-09 David Faure <faure@kde.org> + + * ecma/kjs_html.cpp (getValueProperty): s/getString/String/ for meta attributes, + fixes http://www.accorhotels.com/fr/fidelisation/travelplus/tp_pros_adh_form.shtml + +2004-02-07 Harri Porten <porten@kde.org> + + * rendering/render_layer.cpp (sortByZOrder): compile fix for non-gcc + compilers + +2004-02-04 Zack Rusin <zack@kde.org> + + * dom/dom2_traversal : Making NodeFilter( NodeFilterImpl* ) + constructor public. Making setFilter method take arg by + reference + * dom/dom_doc.cpp (createTreeWalker): implementing the + method + * xml/dom2_traversalimpl : Implementing TreeWalkerImpl + * xml/dom_docimpl (createTreeWalker): Implementing the + method + +2004-02-04 Stephan Kulow <coolo@kde.org> + + * html/html_tableimpl.cpp (insertRow): append to tbody if + there is no tfood for insertRow(numRows) (#74125) + +2004-01-29 Germain Garand <germain@ebooksfrance.org> + + * xml/dom_elementimpl.cpp (name): return attribute names in lowercase + in compatibility mode. Solves contradiction between DOM L2/L3. Erratum + to DOM L2 is pending, thanks to David Faure. + +2004-01-29 David Faure <faure@kde.org> + + * ecma/kjs_window.cpp (get): update frame sizes before returning value for + innerWidth/innerHeight, in case the window was just resized (#73528, regtest ecma/window.js) + +2004-01-29 Dirk Mueller <mueller@kde.org> + + * html/html_inlineimpl.cpp (parseAttribute): restore KDE 3.1 behavior + of <font size=-1> (#73500). + +2004-01-26 David Faure <faure@kde.org> + + * ecma/kjs_window.cpp (get/hasProperty): Reduce window.<name> to + forms, images and applets, like document.<name> (#71363 comment #5) + by sharing NamedTagLengthDeterminer with kjs_html.cpp + +2004-01-26 Dirk Mueller <mueller@kde.org> + + * html/html_inlineimpl.cpp (defaultEventHandler): use content, not + viewport coordinates for server side image maps (#59701). + + * rendering/bidi.cpp (computeVerticalPositionsForLine): update + overflowWidth, otherwise a lot of things go wrong (#59701). + + * misc/loader.cpp (data): correctly emit notifyFinished(), otherwise our + state machine goes out of sync. + + * rendering/render_image.cpp: avoid shoot-out effect when neither oimage nor + image are fully loaded. do a repaint when the new image finished loading, so + that it actually updates. avoid reloading images on news.google.com on hover. + + * khtmlview.cpp (scheduleRepaint): make scheduling not starvating repaints. + Fix repainting logic to optimize for reduced X server load and minimum CPU + usage in traversing the render tree (#72575). + +2004-01-25 Dirk Mueller <mueller@kde.org> + + * rendering/render_object (offsetLeft/offsetTop): fix Heirmenus which expect to get the + <body> offset when the offsetParent is the <body> itself. + + * misc/loader.cpp (class ImageSource): by default, we're rewindable. + + * rendering/render_block.cpp (positionNewFloats): when somebody says + clear: both;, he usually means it (#68068). + + * html/html_objectimpl.cpp (renderAlternative): give the alternative rendering + some time to avoid ugly deletion races. + + * rendering/render_canvas.cpp (layout): don't recurse when printing (#72775). + + * rendering/render_image.cpp (setPixmap): handle cases when + we're not inserted in the tree yet, but the image is already loaded + (this happens when the memory cache actually works) (#73311). + +2004-01-23 Lubos Lunak <l.lunak@kde.org> + + * html_inlineimpl.cpp (defaultEventHandler): make HTMLAnchorElementImpl + react also on DOMActivate event + +2004-01-23 David Faure <faure@kde.org> + + * html/html_tableimpl.cpp (insertRow): Fix for DOMTS-L2-HTML test + HTMLTableElement39.html: insertRow(-1) appends to last section in + document order, not to TFOOT. + + * xml/dom_docimpl.cpp (hasFeature): Updated to current state. + (createEvent): Allow to create events with eventType="Events" + +2004-01-22 David Faure <faure@kde.org> + + * xml/dom_nodeimpl.cpp (GenericRONamedNodeMapImpl): Implementation of + node map for entities and notations, required by some DOMTS Core 1 tests. + +2004-01-22 Waldo Bastian <bastian@kde.org> + + * html/htmlparser.cpp (class HTMLStackElem): ref and unref the nodes to avoid them beeing removed below us (#73112) + +2004-01-22 Lubos Lunak <l.lunak@kde.org> + + * khtmlview.cpp: make Ctrl only temporary suspend Shift+Down scrolling + +2004-01-22 David Faure <faure@kde.org> + + * xml/dom_nodeimpl.cpp (setNodeValue): Don't throw NO_MODIFICATION_ALLOWED_ERR from + there, DOMTS-Core-Level1's hc_nodevalue03 says createEntityReference().setNodeValue() + should simply do nothing. + + * dom/dom_element.cpp (removeAttributeNode): Fixed logic for NOT_FOUND_ERR. + (setAttributeNode): removed tests for WRONG_DOCUMENT_ERR and + INUSE_ATTRIBUTE_ERR, the latter being incorrect and both being already + done by setNamedItem + + * xml/dom_elementimpl.cpp (setNamedItem): if attribute exists already, + return it, to fix DOMTS-Core-level1 test hc_elementreplaceattributewithself + +2004-01-21 Leo Savernik <l.savernik@aon.at> + + * khtml_part.cpp (checkCompleted): do not explicitly set focus to + the document if m_focusNodeNumber is not set (fixes dict.leo.org) + +2004-01-21 Stephan Kulow <coolo@kde.org> + + * html/html_formimpl.h: handle malformed forms different than + wellformed + +2004-01-21 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_block.cpp (layoutBlockChildren): use maxTopMargin + again, for correct margin-top determination (#67527) + +2004-01-20 Dirk Mueller <mueller@kde.org> + + * css/cssstyleselector.cpp (applyRule): Implement handling of + empty-cells. + + * css/cssstyleselector.cpp (applyRule): remove superfluous setZIndex(0) + after setHasAutoZIndex, which breaks auto. + +2004-01-19 Dirk Mueller <mueller@kde.org> + + * rendering/render_object.cpp (getVerticalPosition): improve + logic (#65121). + +2004-01-19 Stephan Kulow <coolo@kde.org> + + * rendering/render_style.h: providing an initial property + function for every css property and using it in macros + from cssselector.cpp to unify the handling of short hand + properties (based on safari patch) + + * css/cssstyleselector.cpp (parseValue): unify handling + of inherited css properties (based on safari patch) + +2004-01-18 Dirk Mueller <mueller@kde.org> + + * khtmlpart_p.h (class KHTMLPartPrivate): experimental: + copy encoding information from parent frame. helps on + http://www.pfl.ru/ when manually setting the correct encoding. + + * rendering/render_container.cpp (addChild): make sure + that a RenderTableCol object is correctly nested inside + a table (#59766). + + * xml/dom_elementimpl.cpp (recalcStyle): fix tree corruption + when recalcStyle() happens to be invoked in the wrong moment. + + * html/html_baseimpl.cpp (setLocation): fix KURL() casting issue. + +2004-01-16 Dirk Mueller <mueller@kde.org> + + * rendering/render_image.cpp: remove some asserts that + noone needs anyway (#72739). + +2004-01-16 Stephan Kulow <coolo@kde.org> + + * html/htmltokenizer.cpp: fixing <pre> parsing (#58584) + +2004-01-15 Dirk Mueller <mueller@kde.org> + + * misc/loader.cpp (ref): ok, there are cases where an image + gets refed twice from the same client. *sigh*. + +2004-01-15 Lars Knoll <knoll@kde.org> + + * rendering/render_table.cpp: set overflowWidth to width + when layouting (#72420) + * xml/dom2_eventsimpl.cpp rendering/render_block.cpp + nodeAtPoint() should always use contents coordinates. + +2004-01-14 Dirk Mueller <mueller@kde.org> + + * misc/loader.cpp: Fix uncachable image leak (#72197). + +2004-01-13 Dirk Mueller <mueller@kde.org> + + * css/css_ruleimpl.cpp (CSSMediaRuleImpl): set parent to 0 + to avoid leak (#70731). + +2004-01-13 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_canvas.cpp (layout): + force scrollbar visibility status while layouting + to avoid endless cycles (#69613) + +2004-01-13 Dirk Mueller <mueller@kde.org> + + * ecma/kjs_events.cpp (JSEventListener): store them in a dictionary, + not a linked list. + + * css/parser.y: fix rect() parsing problem (#72458). + +2004-01-12 Dirk Mueller <mueller@kde.org> + + * rendering/render_block.cpp (left/rightRelOffset): recursion protection + (#70608). + + * rendering/render_image.cpp (updateFromElement): add tracking of + an oldimage, to avoid a "shoot out" effect on hovering expired images. + +2004-01-11 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_text.cpp (paintBoxDecorations): + make background images on inlines obbey the full CSS + spec (#59600) + + * rendering/render_text.h (paintBoxDecorations): changed prototype + + * rendering/render_line.cpp (paintDecorations): disable for now. + +2004-01-11 Dirk Mueller <mueller@kde.org> + + * html/htmlparser.cpp (insertNode): fix <p><dl> handling (#68167). + + * css/css_base.cpp (extractPseudoType): make it case-insensitive (#72159). + +2004-01-11 Germain Garand <germain@ebooksfrance.org> + + border/padding/margin issues on inlines (#68394) + + * rendering/bidi.cpp (computeVerticalPositionsForLine): + add the correct width offset for text objects + + * rendering/render_line.cpp (paintBackgroundAndBorder): + guard against invalid width values + + * rendering/render_text.cpp (paintDecoration): + revert revision 1.224, avoid resurecting #50683 + by matching the conditionals of RenderText::position + (RenderText::nodeAtPoint): revert part of r1.234, + avoid #69345 by commenting incompatible merge. + (RenderText::width): add padding/border/margin + +2004-01-10 Dirk Mueller <mueller@kde.org> + + * css/html4.css: fix default font/fontsize of input,select and textarea + (#67851). + + * misc/loader_jpeg.cpp (decode): try hard not to shoot + down the machine with large images + (try http://www.parisc-linux.org/~willy/kde/graph.jpg) + + * rendering/render_image.cpp (layout): ugh, major stupidity. don't rescale large + images if nobody explicitely asked for it. makes loading of very large images + quite a bit faster. + + * rendering/render_image.cpp/.h: Reduce X-server pressure with large images (#39693). + + * misc/loader_jpeg.cpp: Upon suggestion from Maksim, implement decoding of + nonprogressive jpegs in non-buffered-image mode. This massively reduces memory + footprint and slightly improves performance. + +2004-01-09 Dirk Mueller <mueller@kde.org> + + * rendering/render_replaced.cpp (eventFilter): readd the wheel event handling + which allows scrolling of the page again. Thanks a lot for just removing it. (#45180) + + +2004-01-02 Dirk Mueller <mueller@kde.org> + + * html/htmltokenizer.cpp (notifyFinished): fix null pointer dereference + in rare cases. + + * css/cssstyleselector.cpp (reparseConfiguration): implement. + + * khtml_part.cpp (reparseConfiguration): call CSSStyleSelector::reparseConfiguration + instead of ::clear(). much less crashy. (#68141) + +2003-12-27 Simon Perreault <nomis80@nomis80.org> + + * khtml_part.cpp: Remove unused zoom actions. Assign CTRL + Key_Plus to + zooming in and CTRL + Key_Minus to zooming out. + +2003-12-27 Luis Pedro Coelho <luis@luispedro.org> + + * misc/loader.cpp : Discard items from cache if they have the wrong type (#68181) + +2003-12-20 Koos Vriezen <koos.vriezen@xs4all.nl> + + * html_objectimpl.cpp (attach): Check KImageIO::typeForMime first if RenderImage + supports the image format + +2003-12-11 Stephan Kulow <coolo@kde.org> + + * rendering/render_image.cpp (updateFromElement): set the alt text before doing anything + else, because it might trigger a setting of the error pixmap and then we don't know the + alt text to draw and get wrong sizes + +2003-12-10 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_replaced.cpp (updateFromElement): don't use setEraseColor for __khtml + widgets as it changes the background mode and induces flicker (#69130) + (copyWidget): retrieve background color from the widget's palette. + +2003-12-10 Dirk Mueller <mueller@kde.org> + + * rendering/render_list.cpp: fix toLetter, based on Safari patch. + +2003-12-09 Dirk Mueller <mueller@kde.org> + + * html/html_formimpl.cpp (submit): don't ask over and over again the same question. + +2003-12-08 Zack Rusin <zack@kde.org> + + * khtmlview.*, html/html_formimpl.cpp (submit): Fixing 67179 - + Possibility to avoid saving form data for certain sites. + +2003-12-05 David Faure <faure@kde.org> + + Clean up "default handling" of events. Fixes recent regressions like + "arrow keys in lineedit make the scrollview scroll". + * xml/dom_nodeimpl.*: Removed bool return value from most dispatch*Event methods, + documented the two that still return a bool. The meat of the change is + that dispatchKeyEvent returns defaultHandled || defaultPrevented. + * dom/dom_node.cpp (dispatchEvent): Return !defaultPrevented as mandated by + the DOM, now that NodeImpl doesn't do it anymore. + * rendering/render_replaced.cpp (eventFilter): Adapted to new logic + * khtmlview.cpp (dispatchKeyEventHelper): Adapted to new logic + +2003-12-05 Stephan Kulow <coolo@kde.org> + + * css/cssparser.cpp (parseValue): Do not accept negative values for padding (#59557) + +2003-12-05 Lubos Lunak <l.lunak@kde.org> + + * khtmlview.cpp, xml/dom2_eventsimpl.*, xml/dom_nodeimpl.*, rendering/render_replaced.cpp : + fix mapping between Qt and DOM key events + +2003-12-05 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_object.cpp (nodeAtPoint): don't offset + relatively positioned objects coordinates. They already are (#68716/#60453) + + * rendering/render_text.cpp (nodeAtPoint): no need to include borders and padding + in the matching region anymore (#69345) + +2003-12-05 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_box.cpp (paintRootBoxDecorations): use the full canvas's height + when painting the root's background (#55065) + +2003-12-03 Stephan Kulow <coolo@kde.org> + + * css/html4.css: define default text-alignments for input fields to avoid + problems with inherited attributes + +2003-12-02 Stephan Kulow <coolo@kde.org> + + * html/htmltokenizer.cpp: do not discard any line feed from parsing textareas + +2003-11-29 Dirk Mueller <mueller@kde.org> + + * css/cssstyleselector.cpp: add indigo/crimson colorhandling as it is not in X11's rgb + names list. + + * misc/loader.cpp (CachedCSSStyleSheet/CachedScript::data): add some utf8/utf16 encoding + handling. Workaround Qt bugs (#69115). Initial investigation and patch by Harri. + +2003-11-29 Stephan Kulow <coolo@kde.org> + + * html/html_elementimpl.cpp (addHTMLAlignment): readding floating for input type="image" + + * rendering/render_form.cpp (setStyle): respect text-align style on input elements + (#65610) + + * html/html_formimpl.cpp (HTMLInputElementImpl): don't make input elements + floating, but only care for the text alignment + +2003-11-28 Harri Porten <porten@kde.org> + + * css/css_valueimpl.cpp (setProperty): remove superfluous + removeProperty() call. It will be done later in CSSParser. After + after the value has been recognized as valid. + +2003-11-28 Germain Garand <germain@ebooksfrance.org> + + * html/html_headimpl.cpp (class HTMLLinkElementImpl): grant to alternate sheets + enabled via script the same status as preferred sheets. Restore proper tracking + of pending stylesheets.(#67453/#68504) + + * html/html_headimpl.h (HTMLLinkElementImpl::setDisabled) + + * xml/dom_docimpl.cpp (recalcStyleSelector): don't remove sheets linked from + DOM-disabled link elements from the list of available alternate stylesheets. + Re-enabling them manually is a valid option. + +2003-11-26 Lubos Lunak <l.lunak@kde.org> + + * khtmlview.cpp, xml/dom2_eventsimpl.cpp : generate correctly keydown,keypress and keyup events + +2003-11-26 Dirk Mueller <mueller@kde.org> + + * html/htmlparser.cpp (parseToken): ignore flat on <select>. maybe + we should only do this in compat mode though (#69017). + +2003-11-25 Dirk Mueller <mueller@kde.org> + + * html/html_formimpl.cpp (defaultEventHandler): ignore stale keyup events + on space too. + + * css/html4.css: Set quirky margins on elements that need it (#66490). + +2003-11-25 Stephan Kulow <coolo@kde.org> + + * rendering/render_container.cpp (updatePseudoChild): fix handling of + images in :content (#67373) + + * html/html_baseimpl.cpp (parseAttribute): fix parsing of body attributes (safari merge) + + * rendering/render_box.cpp (calcAbsoluteVertical): basically reverting commit 1.218 + for height calculation. It broke floating images (#67839) + +2003-11-25 David Faure <faure@kde.org> + + * ecma/kjs_window.cpp: Implement hasProperty and get for frames by number in Window, + to fix window[0] and parent[1] etc. (#56983) + +2003-11-25 Germain Garand <germain@ebooksfrance.org> + + * khtml_part.cpp (checkCompleted): prepend "Automatic Detection" entry to + "Use Stylesheet" menu. + (slotUseStylesheet): set m_sheetUsed to null string if autodetect is on. + Fixes #54335. + + * xml/dom_docimpl.cpp (recalcStyleSelector): if the previous sheet is sticky but + still missing when we've already got <body>, choose the document's best + candidate until parsing ends. Avoids ending with no decision (#63348). + +2003-11-24 Dirk Mueller <mueller@kde.org> + + * html/html_formimpl.cpp (defaultEventHandler): ignore stale keyup events. + Only react when we saw a matching keydown before. + +2003-11-24 David Faure <faure@kde.org> + + * html/htmlparser.cpp (popInlineBlocks): Fixed infinite loop due to + popOneBlock returning immediately if blockStack==0. #68034. + + * rendering/bidi.cpp: Fixed infinite loop with <nobr> due to findNextLineBreak + going back (wrong variable used). #66867, #68598, #59230 and their duplicates. + +2003-11-24 Stephan Kulow <coolo@kde.org> + + * css/cssparser.cpp (parseFontFamily): handle invalid font families like + font-family: ms sans serif, utopia + * css/css_valueimpl.cpp (FontFamilyValueImpl): merging safari code to handle + invalid font families. Replacing buggy font maching by substring search by + simply ripping out "MS" and searching for similiar fonts + +2003-11-24 David Faure <faure@kde.org> + + * html/htmlparser.cpp (getElement, processCloseTag): Allow only one + non-empty <title> tag, discard any following <title> tag. This matches + both IE and Mozilla. Testcases khtmltests/regression/tests/ecma/title* + + * html/html_headimpl.cpp (childrenChanged): Set title immediately, like + other browsers do. + +2003-11-23 Germain Garand <germain@ebooksfrance.org> + + * html/html_imageimpl.cpp (attach): don't create a renderer if our parent doesn't + allow childs. e.g: a RenderPartObject (#66793) + +2003-11-23 Stephan Kulow <coolo@kde.org> + + * css/cssstyleselector.cpp (applyRule): fixing my fix for #60556, which + introduced quite some regressions (thanks to Paul Sprakes for working + that out with me) + +2003-11-22 Stephan Kulow <coolo@kde.org> + + * rendering/render_line.cpp (paintDecorations): avoid underlining elements that + have no dimension in itself (#68728) + +2003-11-22 Koos Vriezen <koos.vriezen@xs4all.nl> + + * html_miscimpl.cpp (HTMLCollectionImpl): Make + window.xxx == document.xxx for APPLET/OBJECT/EMBED elements, using + ID or NAME attributes, behave alike + +2003-11-22 Germain Garand <germain@ebooksfrance.org> + + * dom/css_value.cpp (getPropertyPriority): const version was declared + but not implemented + + * rendering/font.cpp (drawText): do not use DirWS to count spaces + when justifying, it won't count 's (#65903) + + * rendering/render_text.cpp (class InlineTextBox): ditto. + +2003-11-19 Dirk Mueller <mueller@kde.org> + + * html/html_baseimpl.cpp (attach): respect display: NONE on <frame>, since + it is used to indicate the FOUC prevention code path now. + + * css/cssparser.cpp (parseColor): remove use of invalidColor. use a boolean + return instead. invalidColor was confusing as it was actually a valid color. + Also add rgba() parsing. + + * css/cssstyleselector.cpp (adjustRenderStyle): add check to avoid that + <FRAME> gets a display != BLOCK assigned (#63640). + +2003-11-18 Harri Porten <porten@kde.org> + + * ecma/kjs_html.cpp: limit collection length to >= 0 (Maciej) + +2003-11-18 David Faure <faure@kde.org> + + * css/css_valueimpl.* (cssText): cssText implementation from Maciej Stachowiak. + +2003-11-17 David Faure <faure@kde.org> + + * khtml_part.cpp (processObjectRequest): + Stop the spinning wheel on <frame src="">. + Testcase: webcore's fast/frames/empty-frame-src.html + +2003-11-17 Stephan Kulow <coolo@kde.org> + + * rendering/render_*.cpp: changing the output of dump to + get a more comprehensive renderer tree output - as inspired + by Safari's kwqDebugTree. This allows for a change in + test_regression to check layouts + +2003-11-15 Zack Rusin <zack@kde.org> + + * rendering/render_box.cpp (calcHeight): correctly compute the + height for relatively positioned object with percentage based + dimensions - pretty much a merge from safari (#53902) + +2003-11-14 Germain Garand <germain@ebooksfrance.org> + + fix "overflow: scroll" layout/painting issues + + * rendering/render_box.cpp (getOverflowClipRect): substract + scrollbars width/height if any. Merged from WebCore. + + * rendering/render_layer.cpp (horizontalScrollbarHeight, + verticalScrollbarWidth): use pixelMetric instead of width()/height(). + +2003-11-13 Zack Rusin <zack@kde.org> + + * rendering/render_box.cpp (calcAbsoluteVertical): fix the + computation of the height for the percentage positioned elements + contained in the root + +2003-11-11 Dirk Mueller <mueller@kde.org> + + * rendering/render_style.h (StyleBoxData>): fix SunProCC + compatibility problem. + + * xml/dom_elementimpl.cpp (attach): don't attach a renderobject + to a parent that does not support childs (childAllowed()). + * html/html_objectimpl.cpp (attach): check for childAllowed(). + * xml/dom_textimpl.cpp (attach): check for childAllowed(). + + * misc/loader.cpp (CachedCSSStyleSheet): add "*/*;q=0.1" to the + accept header (#67803). + +2003-11-10 David Faure <faure@kde.org> + + * khtml_part.cpp: Ask the user "open or save?" before embedding a + non-usual mimetype into a frame (e.g. ZIP files or PS files). + (html and images are the 'usual' exceptions) + Includes a dontshowagain checkbox, so this shouldn't be too annoying. + +2003-11-07 Stephan Kulow <coolo@kde.org> + + * css/cssparser.cpp (parseValue): set the background-* properties + to their initial value before expanding (#64743) + +2003-11-07 Dirk Mueller <mueller@kde.org> + + * css/css_valueimpl.cpp (cssText): wrap uri's into url(). + Stephan Kulow noted that other browsers do that. + + * rendering/render_list.h (class RenderListItem): another + SunCC incompatibility fixed. Only applies to HEAD (*phew*). + +2003-11-05 Germain Garand <germain@ebooksfrance.org> + + Refinement of namespace handling for Attributes, + following David's patch of 2003-10-25. + + * xml/dom_elementimpl.cpp: get rid of the m_localName string member + for Attributes. + (AttrImpl::cloneNode): fix wrong argument order in ctor call + + * xml/dom_docimpl.cpp (getId/getName): fix problems introduced by the + switch to an Id of zero for both global and XHTML Namespace. Zero is + also what a failed QDict lookup returns... + +2003-11-05 Dirk Mueller <mueller@kde.org> + + * html/htmltokenizer.cpp (parseEntity): fix annoying entity parsing problem + that caused stale ';''s popping up everywhere. + +2003-11-04 Leo Savernik <l.savernik@aon.at> + + * khtml_part.{cpp,h} (selection): Added new overloaded function to + return selection boundaries. + +2003-11-04 Dirk Mueller <mueller@kde.org> + + * html/html_baseimpl.cpp (attach): fix assertion failure thanks + to the FOUC patch. + +2003-11-04 David Faure <faure@kde.org> + + * html/html_documentimpl.cpp (close): Ensure setTitle is called + at least once, with an empty string if there's no title tag. + + * xml/dom_docimpl.cpp (setTitle): Skip equality test if passing an + empty title, since m_title is initially empty. + +2003-11-03 Dirk Mueller <mueller@kde.org> + + * misc/loader.cpp (buildAcceptHeader): add */* to Accept-Header + for image requests with low priority to fix www.tweakers.net (#53515). + + * css/parser.y: lowercase the media we get via CSS stylesheets. + Its true that the media is case insensitive in CSS, but it is + case sensitive in HTML, and as we don't want to do the code twice + we cheat a little here. + + Also change media parsing logic for @import to handle + http://www.hixie.ch/tests/evil/css/import/extra/importexoticmedia.html + correctly (idea by Stephan Kulow). + + * html/html_formimpl.cpp (defaultEventHandler): react on space too + (#64200). + + * dom/html_base.cpp (src): return the completeURL. + + * html/html_formimpl.cpp: remove the addCSSProperty calls and put + them in the default stylesheet. the original reasons for them in that + place is no longer valid since we implemented the CSS 2.1 selector rules. + + +2003-11-02 Dirk Mueller <mueller@kde.org> + + * rendering/render_form.cpp (setStyle): check for direction (#57626) + on RenderLineEdit and RenderTextArea. + + * khtmlview.cpp (viewportWheelEvent): toggle Font zooming orientation (#61862). + + * rendering/render_box.cpp (paintBackgroundExtended): implement. needed + for inline elements background drawing somewhen. + + * rendering/render_object.cpp (nodeAtPoint): merge from Safari. Still + does not work, but at least its the same now. + (lineHeight): handle replaced elements here. They don't necessarily + inherit RenderReplaced anymore. + (baselinePosition): handle replaced elements. + + * rendering/render_replaced.cpp: remove baselinePosition/lineHeight. its in + RenderObject now. + + * rendering/render_block.cpp (isSelfCollapsingBlock): collapse away trailing whitespace + at the end of the block. + (setStyle): set "isReplaced" for display: inline-block. + (addChildToFlow): Make sure we don't append things after :after generated content. + (calcInlineMinMaxWidth): respect text-indent (taken from WebCore 106). + +2003-11-02 Stephan Kulow <coolo@kde.org> + + * rendering/render_form.cpp (updateFromElement): invalidate the size hint + of comboboxes as they are cached in QComboBox (#64229) + +2003-11-01 Dirk Mueller <mueller@kde.org> + + * css/cssstyleselector.cpp (applyRule): handle clear: none (#57676) + +2003-10-31 David Faure <faure@kde.org> + + * html/html_inlineimpl.cpp (defaultEventHandler): Another wrong use of detail() + instead of the new isDoubleClick(), which made it impossible to click on the + same link twice without moving the mouse (#58241). + +2003-10-30 Dirk Mueller <mueller@kde.org> + + * xml/dom_docimpl.cpp (open): do a full detach()/attach(), + otherwise we're corrupting the rendertree (#66590). + +2003-10-29 Stephan Kulow <coolo@kde.org> + + * html/htmltokenizer.cpp (processListing): fixing textarea regression + +2003-10-29 David Faure <faure@kde.org> + + * ecma/kjs_dom.cpp: Patch from Darin Adler to implement Node.item. + +2003-10-29 Leo Savernik <l.savernik@aon.at> + + * khtml_part.cpp (khtmlMousePressEvent): Fixed occasional selection + of image on which a drag had been initiated. + +2003-10-29 David Faure <faure@kde.org> + + * ecma/kjs_window.cpp (Window::openWindow): patch from Maciej to allow + floats in window.open properties (e.g. small window at saabusa.com) + +2003-10-28 David Faure <faure@kde.org> + + * khtmlview.cpp (viewportMouseDoubleClickEvent): Set bool in MouseEventImpl + when handling a double click. The DOM API only has "number of clicks at the + same place" notion, but not whether they happened quick or over a long time. + Added support for small mouse movement when double-clicking, like in mousePressEvent. + + * xml/dom2_eventsimpl.*: Added m_isDoubleClick bool for the reason above. + + * xml/dom_nodeimpl.cpp (handleLocalEvents): Use new MouseEventImpl::isDoubleClick() + to differenciate between click and dblclick. Lars used the QMouseEvent type, + but when the event comes from JS - initMouseEvent+dispatchEvent, there's + no QMouseEvent - which broke test_regression. + +2003-10-28 Stephan Kulow <coolo@kde.org> + + * khtml_part.cpp (reparseConfiguration): clear the style selector + +2003-10-28 Leo Savernik <l.savernik@aon.at> + + * rendering/render_replaced.cpp (checkSelectionPoint): + Readded RenderReplaced::checkSelectionPoint to fix disrupted selection + of sole inline images within block elements (<p><img ...></p>). + Also fixes caret placement issues. + +2003-10-28 David Faure <faure@kde.org> + + * ecma/kjs_window.cpp (goURL): Compare the URLs without the ref, fixes + wrong reload when opening a tree-like structure (#54358). + + * ecma/kjs_html.cpp (getValueProperty): (#54929) + Fixes for HTMLAnchorElement properties, return empty strings instead + of null, and let "text" return plain text instead of HTML. + + * html/html_elementimpl.cpp (innerText): Fix for empty elements. + +2003-10-27 David Faure <faure@kde.org> + + * khtmlview.cpp (dispatchKeyEvent): Generate keypress, keydown and keyup + events for the document if no node has the focus. Factorized code in + a new method, dispatchKeyEvent. Cleaned up old unused variables d->lastKeyNode + and d->lastKeyPress. #42918 and #43072, google keys. + + * xml/dom_elementimpl.h (checkQualifiedName): Added bool nameCanBeEmpty, + and fixed again: DOM3 now says a null qualifiedName is allowed in createDocument. + * xml/dom_docimpl.cpp (createDocument): Pass nameCanBeEmpty=true, to + allow the commonly found implementation.createDocument("","",null); (#61650) + + * html/html_elementimpl.cpp (HTMLElementImpl): Fixed wrong m_htmlCompat + value when parsing HTML in HTML-compat mode, get it from the doc's setting. + * xml/dom_docimpl.cpp (createElementNS): Always set m_htmlCompat, now that + the HTMLElementImpl constructor sets it too. + + * xml/dom_nodeimpl.cpp (handleLocalEvents): fixed crash when a mouse event + is dispatched via the DOM API, with initMouseEvent, dispatchEvent. + +2003-10-26 David Faure <faure@kde.org> + + * xml/dom_docimpl.cpp (getId): added bool lookupHTML, set to true in most + places, to fix e.g. css selector broken by my previous change, and set + to false from createElementNS to still skip the lookup for HTML tags. + +2003-10-25 Dirk Mueller <mueller@kde.org> + + * rendering/render_form.h (class RenderFileButton): use KURLRequester + instead of just doing the stuff on our own in a worse way (#62328). + Also provides completion, yay! :) + + right now <input type=file> has severe rendering errors which I blame + on the widget painting code from Lars. + +2003-10-25 David Faure <faure@kde.org> + + Make use of the ID scheme much more for elements, getting rid of + m_localName and m_tagName strings in XMLElementImpl. + + * misc/maketags: switched to lowercase; uppercase is the html-compat case only. + * html/html_elementimpl.cpp(tagName,localName): lookup name from id, with proper + handling of m_htmlCompat vs xhtml difference. + * html/html_elementimpl.h: removed m_xhtml bool, becomes bitfield in NodeImpl instead, + since XML elements can be in "HTML compat" mode too (uppercased). + * xml/dom_docimpl.cpp (DocumentImpl): XML namespace is id 0 again + * xml/dom_docimpl.cpp (createElementNS): check for exceptions when + setting the prefix; set HTML compat mode in the element if necessary. + Only look for the ID if it's an XML element - if not, createHTMLElement did it. + * xml/dom_docimpl.cpp (getId): Do not apply the html-compat case hacks + when looking up elements. This is done by createElement[NS] now. Left + the code for the attribute lookup only. + * xml/dom_elementimpl.cpp (XMLElementImpl::XMLElementImpl): ctor only needs id and prefix. + Removed m_tagName and m_localName member vars in all methods, used id lookups instead. + * xml/dom_elementimpl.cpp (cloneNode): fixed namespace being lost. Factorized + common code with HTMLElementImpl in finishCloneNode. + * xml/dom_nodeimpl.*: added m_htmlCompat bool in bitfield. Only makes + sense for elements currently, but would take more memory in ElementImpl. + + * xml/dom_docimpl.cpp (DOMImplementationImpl::createDocument): + DOM3 now says a null qualifiedName is allowed in createDocument. + +2003-10-24 Dirk Mueller <mueller@kde.org> + + * css/html4.css (marquee): don't set display: none, it might + contain useful text (its used on ebay.com for every second article). + + * html/html_formimpl.cpp/h: revert this commit: + * remove lot's of addCSSProperty calls and moved the + definitions to the default style sheet. This made + it possible to remove quite some code in html_formimpl.cpp + + * rendering/render_form.cpp (updateFromElement): Fix coolo's commit (#61347) + +2003-10-24 Germain Garand <germain@ebooksfrance.org> + * General scope of the change: + - bring back the NodeImpl_NSMask bits in id() for Attributes and XMLElements + => the cssselector need that to support CSS namespaces in an efficient way. + => fixes CSS selection for XML documents + - change Nodeimpl::Id registration mechanism: + We tried to solve the DOM1/DOM2 NS methods compatibility problems + by registering the qualifiedName. However, this is doomed to fail in other + places that relies on Ids because prefixes aren't encoded in the Ids and + are irrelevant for NS nodes identification. + Instead, use registered aliases (see DocumentImpl::getId) to solve + compatibility issues while maintaining a sound Id system. + + * css/cssstyleselector.cpp: change getId calls + + * css/parser.y: ditto + + * dom/dom_doc.cpp: change getId/implementation method calls + (DOM::Document::createElement): check DOM exceptions + (DOM::Document::createElementNS): ditto + (DOM::Document::createAttribute): ditto + (DOM::Document::createAttributeNS): ditto + (DOM::Document::createDocumentFragment): ditto + + * dom/dom_element.cpp: change getId/implementation method calls + + * dom/dom_node.cpp: ditto + + * html/html_documentimpl.cpp: + (HTMLDocumentImpl::createElement): check DOM exceptions + + * html/html_documentimpl.h: ditto + + * html/html_elementimpl.cpp: use m_xhtml bool flag to distinguish HTML/XHTML elements + + * html/html_elementimpl.h: + (DOM::HTMLElementImpl::HTMLElementImpl): init m_xhtml + (DOM::HTMLElementImpl::setXHtmlElement): set/retrieve m_xhtml (non-virtual) + (DOM::HTMLElementImpl::isXHtmlElement): ditto + + * html/htmlparser.cpp: change getValue/setValue syntax + + * html/htmltokenizer.h: change getId calls + + * rendering/render_frames.cpp: ditto + + * xml/dom_docimpl.cpp: IdNameMapping is now a struct holding QDicts. getId dynamically choses + the struct to be used based on it's first argument (ElementId, AttributeId, NamespaceId) + (DOMImplementationImpl::createDocument): factor qualifiedName checking code + (DocumentImpl::createAttribute): New. Mirrors DOM. + (DocumentImpl::createAttributeNS): ditto + (DocumentImpl::createElementNS): check exceptions in qualifiedName + + * xml/dom_docimpl.h: IdNameMapping change + + * xml/dom_elementimpl.h: + * xml/dom_elementimpl.cpp: + (AttrImpl::AttrImpl): no more m_namespaceURI, now dynamically retrieved with getName(NamespaceId...) + (AttrImpl::nodeName): now built from prefix + localName + (ElementImpl::setAttributeNS): check exceptions on qualifiedName + (XMLElementImpl::XMLElementImpl): no more m_namespaceURI, now dynamically retrieved with getName(NamespaceId...) + restore m_id (as in 3_1_BRANCH) for correct CSS selection on XML Elements + + * xml/dom_elementimpl.h: + (DOM::checkQualifiedName): inline DOM helper, factoring qualifiedName exception checkings + (DOM::splitPrefixLocalName): inline DOM helper, avoids scanning qualifiedName multiple times + + * xml/dom_nodeimpl.h: + (DOM::NodeImpl::): enum IdType for (ElementId, AttributeId, NamespaceId) + + * xml/xml_tokenizer.cpp: + (XMLHandler::startElement): use the qualifiedName instead of the localName + in order to know the prefix if any. + +2003-10-24 Stephan Kulow <coolo@kde.org> + + * rendering/render_form.cpp (updateFromElement): support disabled attribute + select option (#61347) + +2003-10-24 Lars Knoll <knoll@kde.org> + * Make the <button> element work correctly + * remove lot's of addCSSProperty calls and moved the + definitions to the default style sheet. This made + it possible to remove quite some code in html_formimpl.cpp + +2003-10-24 Lars Knoll <knoll@kde.org> + * A few more small fixes to Html event handlers. We can unfortunately not + easily get the events for <select> and <textarea> correct, as they use + either modality or QScrollView (but doesn't work in 3.1.x neither). + +2003-10-24 Lars Knoll <knoll@kde.org> + * Hopefully fixed most repainting problems. + +2003-10-24 Lars Knoll <knoll@kde.org> + * Fix most of the form related regressions introduced by my + changes earlier on. onfoo event handlers are now fired in a + way that is mostly compatible to IE for <input type=xxx>. + Other form elements might still need some work. + +2003-10-23 Lars Knoll <knoll@kde.org> + * Fix nodeAtPoint for elements that have no child (makes links on images + work again) + * Fix null pointer dereferencing in RenderLayer::updateHoverActiveState + +2003-10-23 Stephan Kulow <coolo@kde.org> + + * html/htmltokenizer.cpp (processListing): do not discard all white space + in textareas (#62076) + + * css/cssstyleselector.cpp (applyRule): if the first font isn't found, + continue looking (#60556) + +2003-10-22 Dirk Mueller <mueller@kde.org> + + * rendering/render_box.cpp (calcAbsoluteHorizontal): fixed containing block + height calculation for position:fixed. + (paintBackground): fix negative backgroundx/y positioning. fix + background-attachment: fixed (http://placenamehere.com/safari/fixedbgtest.html) + avoid division by zero. fix table background positioning (#49336). + http://c133.org/testcase1.html, http://c133.org/testcase2.html, + http://c133.org/testcase3.html + + * misc/loader.cpp (pixmap_size/valid_rect): return useful values for the error image + to avoid that its shown as null pixmap (#42233). + +2003-10-21 Dirk Mueller <mueller@kde.org> + + * rendering/render_list.cpp (calcListValue): skip anonymous block while searching + for the <ol> block. Thanks to the Maksim regression testengine. + + * rendering/render_object.cpp (setOverhangingContents): refine assert to avoid + crash on bananalotto.com. Adjust to changed containingBlock() behavior. + + * html/html_listimpl.cpp (attach): fix thinko. Revert Safari merge which + broke <ul><p><li>. Thanks to Maksim for noticing. + + * rendering/render_list.cpp (calcListValue): handle <ul><p><li> again. + + * rendering/render_box.cpp (repaint): revert commit which introduced another + 4 bytes overhead. No need to waste memory here. + + * rendering/render_object.cpp (setStyle): schedule repaint on old object + when the new outline is going to be thinner. + + * rendering/render_form.cpp (RenderCustomButton): Remove. + + * rendering/render_replaced.cpp (RenderReplaced::checkSelectionPoint): Remove. + RenderObject/RenderBox'es implementation *must* work. No need to add useless code. + + * rendering/render_replaced.cpp (RenderReplacedBlock): Remove. + + * html/html_formimpl.cpp (HTMLButtonElement::attach): Remove. + + * rendering/render_box.cpp (calcWidth): implement CSS min-width/max-width + support (#12994). + + * rendering/render_block.cpp (renderName): don't crash when style() is 0L. + + * rendering/render_object.h (class RenderObject): remove isRunIn() / isCompact(). + We can use style()->display() here, and it is inconsistent with the other is* + members which usually do not access style() (that can be 0L). + + * rendering/render_object.cpp (createObject): create RenderBlock for INLINE_BLOCK. + + * css/html4.css (BUTTON/LEGEND): set display: inline-block. + + * css/cssstyleselector.cpp (styleForElement): handle COMPACT/RUN_IN/INLINE_BLOCK + (applyRule): handle INLINE_BLOCK. + + * css/makeprop: don't export getPropertyName. declare it. + + * xml/dom_nodeimpl.cpp (replaceChild/appendChild/removeChild): + Reverting patch which invalidated layout on child when it was attached. + +2003-10-20 Lars Knoll <knoll@kde.org> + + * fix most issues with the layering code by + merging and adapting safaris implementation + * fix a bug in RenderBox::calcAbsoluteVertical(), that probably + has destroyed a lot of layouts. + * don't add the scroll offset in RenderBox::paintBoxDecorations() + +2003-10-20 Dirk Mueller <mueller@kde.org> + + * css/html4.css (UL,MENU,DIR,OL): don't set flow-around-floats (#53429). + +2003-10-20 David Faure <faure@kde.org> + + * xml/dom_docimpl.cpp (defaultEventHandler): set current target to 0 for window events. + * ecma/kjs_events.cpp (handleEvent): Window events like window.onload window.onresize etc. + must have 'this' set to the window (not to the document). + +2003-10-20 Dirk Mueller <mueller@kde.org> + + * rendering/render_form.cpp (layout): set IE-CSS-extension style palette + on <textarea> scrollbars (#56532). + + * rendering/render_layer.cpp (showScrollbar): set IE-CSS-extension styled + palette on the overflow=scroll/auto scrollbars. + + * rendering/render_frames.cpp (close): reorder. updateWidget() might + delete this. + + * html/html_formimpl.cpp (value): return the DOM "defaultValue" when we have + no renderer. + (encoding): submit textarea even if display=none (#49829) + + * ecma/kjs_dom.cpp (getValueProperty): add bindings to clientWidth/Height, + scrollWidth/height,offsetTop/left,offsetWidth/Height,offsetParent. + (getValueProperty): don't map body to canvas (#59676). + + * split up borderSpacing into a horizontal and vertical border spacing so that + tables can have assymmetric spacing. + + * html/htmlparser.cpp (insertNode): don't set css list position on stray <li> + elements. its an inherited attribute, and might mess up rendering of nested + <ul>/<ol> constructs. + + * rendering/render_list.cpp: ListItems are no longer floats. + +2003-10-19 Dirk Mueller <mueller@kde.org> + + * html/html_headimpl.cpp (childrenChanged): make sure that we respect the media + attribute of <style> (#47786). + +2003-10-19 Harri Porten <porten@kde.org> + + * html/html_documentimpl.cpp (setCookie): use latin1 encoding to + have a 1:1 translation of the lowest Unicode row. + +2003-10-19 Dirk Mueller <mueller@kde.org> + + * html/htmltokenizer.cpp (parseEntity): when entity is terminated and result + is not-ascii, require ending ';'. khtmltests/html/parser/obscure_entity_tokenizing.html + +2003-10-18 Dirk Mueller <mueller@kde.org> + + * css/cssstyleselector.cpp (checkOneSelector): fix selector list matching + when substrings match in a word. we have to test if we matched a complete word, + otherwise its not a match. + + * html/htmltokenizer.cpp (parseEntity): don't do the magic-unterminated-entities-IE-hack + when inside a tag. fixes <a href="/foo.html§ion=2"> + + * html/htmlparser.cpp (insertNode): fix typo (#66200). + + * rendering/render_table.cpp (seekCell): make static. check for out of bounds. + * rendering/render_table.cpp (RenderTableSection::checkSelectionPoint): fix + brain damage (#66198). + +2003-10-14 David Faure <faure@kde.org> + + * misc/htmltags.in, html/htmlparser.cpp, html/dtd.cpp: added very basic + support for <ilayer>, much like <layer>, as a generic block element. + Fixes sites looking for such elements by ID, like www.sp ort1.de's diashow. + +2003-10-14 Wilco Greven <greven@kde.org> + * ecma/kjs_window.cpp (tryCall): Scroll should do the same as + ScrollTo, not ScrollBy. #63301 + +2003-10-14 David Faure <faure@kde.org> + + * xml/dom_nodeimpl.cpp (handleLocalEvents): Fixed infinite loop in + NodeImpl::handleLocalEvents due to braindead QPtrList behavior. #61623. + +2003-10-10 Harri Porten <porten@kde.org> + + * ecma/kjs_html.cpp: title and alt attributes should never be null + + * ecma/kjs_html.cpp (toString): make use of alt attribute if set + +2003-10-09 Dirk Mueller <mueller@kde.org> + + * ecma/kjs_dom.cpp (putValueProperty): don't scroll layer when there is is nothing + to scroll. (David Hyatt) + + * rendering/render_object.cpp (scrollHeight): return overflowHeight() not contentHeight() + by default. (David Hyatt) + + * rendering/render_object.cpp (scrollWidth): return overflowWidth() not contentWidth() + by default. (David Hyatt) + + * html/htmltokenizer.cpp (parseEntity): Improve tokenizing of unterminated + entities. + +2003-10-09 Leo Savernik <l.savernik@aon.at> + + * rendering/render_object.{cpp,h} (getTextDecorationColors), + rendering/render_text.{cpp,h} (InlineTextBox::paintDecoration, RenderText::paintObject), + rendering/render_style.{cpp,h}, + css/cssstyleselector.cpp (styleForElement): + fixed text-decoration issues by merging RenderObject::getTextDecorationColor + from Safari, changed CSSStyleSelector appropriately + + * rendering/render_text.{cpp,h} (InlineTextBox::paintDecoration), + rendering/font.{cpp,h} (drawText, drawDecoration): + fixed drawing of text decoration within selected text + + * rendering/render_text.cpp (paintObject), + rendering/font.{cpp,h} (drawText): + fixed overspilling of selection with unusual line-height configurations + +2003-10-07 Germain Garand <germain@ebooksfrance.org> + + * khtmlview.cpp (viewportMouseReleaseEvent/viewportMouseMoveEvent): forward + meaningful peripheral mouse events to focused widget to restore correct + mouse handling in proxied widgets. #65216 (selection part) + + * rendering/render_replaced.cpp (handleEvent): + map MOUSEOUT/MOUSEOVER DOM events to Enter/Leave events. Honours stacking + while mouse buttons are pressed. + + * html/html_formimpl.cpp (defaultEventHandler): forward MOUSEOUT/MOUSEOVER + to handleEvent + +2003-10-06 Daniel Molkentin <molkentin@kde.org> + + * ecma/kjs_window.cpp: added window.open targets _self and replace + +2003-10-06 David Faure <faure@kde.org> + + * ecma/kjs_html.cpp: Fixed crash due to onload=null in the onload event + handler (#57195). + +2003-10-06 Dirk Mueller <mueller@kde.org> + + * khtml_part.cpp (jScript): remove broken #ifdef'ery. + (popupMenu): add a QGuardedPtr to detect the case when we're destructed + before the popup menu is closed. avoid accessing any "this" then. + #43389 + + * khtmlview.cpp (viewportMousePressEvent): reorder afaik unrelated code + to make the one call entering a local event loop the last, so that we can + cleanly exit when it the view is already deleted. + + * khtml_ext.cpp (KHTMLPopupGUIClient): pass QObject parent + +2003-10-05 Dirk Mueller <mueller@kde.org> + + * ecma/kjs_css.cpp (tryPut): Fix CSSValue refcounting error causing major + memory leak. + + * dom/css_value.cpp/h (class CSSStyleDeclaration): make accessors const. Add + binary compatibility wrappers. + +2003-10-04 Germain Garand <germain@ebooksfrance.org> + + * rendering/render_replaced.cpp (baselinePosition): use setPos to adjust + layer position if needed. Fix relatively positioned widgets not being painted. + +2003-10-04 Dirk Mueller <mueller@kde.org> + + * html/htmlparser.h (class KHTMLParser): keep "current" NodeImpl referenced + to avoid ugly crashes when DHTML deletes the node while we're still parsing. + #57020, testcase alja.html + + +2003-10-04 Dirk Mueller <mueller@kde.org> + + * khtml_settings.cc (init): change default for JS debugger to off. + + * html/html_elementimpl.cpp (createContextualFragment): Fix memory + leaks. Adjust code style. Adjust return to avoid dangling return leaks. + + * xml/dom2_rangeimpl.cpp (createContextualFragment): adjust return type. + + * html/html_elementimpl.h (class HTMLElementImpl): adjust return type. + + * dom/dom2_range.cpp (createContextualFragment): Adjust to DocumentFragment + return type. + + |