Warning, /frameworks/khtml/src/ChangeLog is written in an unsupported language. File is not indexed.

0001 2007-10-13  Allan Sandfeld Jensen <kde@carewolf.com>
0002 
0003         Update HTML-Parser to parse more HTML5 like, and allow custom HTML tags.
0004 
0005         * html/dtd.{h,cpp}: Make all block elements more equal, treat custom tags like <SPAN>
0006         * html/htmlparser.{h,cpp}: Treat actual close-tags differently than implicit close.
0007         * html/htmltokenizer.cpp: Parse custom HTML tag
0008 
0009 2007-10-09  Allan Sandfeld Jensen <kde@carewolf.com>
0010 
0011         Optimize the case of double descendant selectors "a b c",
0012         to avoid O(n^2) run-time where n is the depth of the DOM tree.
0013 
0014         * css/cssstyleselector.h: Define new early termination value for checkSelector
0015         * css/cssstyleselector.cpp: Bail-out when the selector-chain can't possibly match
0016 
0017 2007-01-21  Allan Sandfeld Jensen <kde@carewolf.com>
0018 
0019         Handle dynamic updates of default non-inherited properties that are inherited explicitly
0020 
0021         * rendering/render_style.h: Add inheritedNoninherited flag
0022         * xml/dom_nodeimpl.{h,cpp}: virtual function affectedByNoInherit
0023         * xml/dom_textimpl.h: affectedByNoInherit is always true for text-nodes
0024         * xml/dom_elementimpl.cpp: NoInherit changes descends into children like Inherit changes,
0025         when affectedByNoInherit is true for the child node.
0026         * css/cssstyleselector.cpp: Set inheritedNoninherit whenever inherit is handled in a NonInherited property.
0027 
0028 2006-11-14  Allan Sandfeld Jensen <kde@carewolf.com>
0029 
0030         Implement overflow-x and overflow-y
0031 
0032         * css/*.*: New properties
0033         * rendering/render_style.{h,cpp}: New properties
0034         * rendering/render_object.h: New functions scrollsOverflowX() and scrollsOverflowY
0035         * rendering/render_layer.h: Remove depricated function moveScrollbarsAside()
0036         * rendering/render_layer.cpp: More fine grained creation of scrollbars
0037         * khtmlview.cpp: More fine grained creation of scrollbars
0038         * rendering/render_block.cpp: Use new functions
0039         * rendering/render_box.cpp: Use new functions
0040         * rendering/bidi.cpp: Use new functions
0041 
0042 2006-11-13  Allan Sandfeld Jensen <kde@carewolf.com>
0043 
0044         Merge text-overflow:ellipis from WebCore
0045 
0046         * css/*.*: New property and values
0047         * rendering/render_style.{h,cpp}: New property and values
0048         * rendering/render_line.{h,cpp}: New line-box for ellipsis
0049         * rendering/bidi.cpp: Two functions to remove and create ellipsis boxes
0050         * rendering/render_text.{h,cpp}: Add the ability to truncate text at a certain point.
0051 
0052 2006-06-28  Germain Garand  <germain@ebooksfrance.org>
0053 
0054         make updating of addRule/removeRule/insertRule work
0055         cf. http://www.quirksmode.org/dom/w3c_css.html#change
0056 
0057         * css/css_stylesheetimpl.cpp
0058             (insertRule/deleteRule): shallow update of styleselector.
0059         * xml/dom_docimpl.{h,cpp}
0060             (updateStyleSelector): new boolean argument for shallow recalculation, when all sheets are known.
0061             (DocumentImpl::recalcStyleSelector): split.
0062             (DocumentImpl::rebuildStyleSelector): new from split. Recreate styleselector with known sheets.
0063 
0064 2006-06-27  Germain Garand  <germain@ebooksfrance.org>
0065 
0066         . Correct drawing of borders on iframes and objects (#118277/#56109)
0067         . Frameborder attribute for iframes (http://www.w3.org/TR/html401/present/frames.html#adef-frameborder)
0068         . Fix widget counter-mask not being updated in time, thus sometimes missing a repaint (e.g: http://lequipe.fr)
0069 
0070         * html/html_baseimpl.{h,cpp} (HTMLIFrameElementImpl::parseAttribute): parse frameborder attribute. Defaults to true as per specification.
0071         (HTMLIFrameElementImpl::updateFrame/attach): apply/remove frameborder style at attachment time.
0072         * khtmlview.cpp (drawContents): fix counter-mask problem. Widget geometry is not accurate before painting, so we must
0073         use the RenderObject's.
0074         * rendering/render_frames.h (paddingTop/paddingBottom/paddingLeft/paddingRight): reimplement. Frames have no padding.
0075         (RenderPartObject::canHaveBorder): reimplement. True.
0076         * rendering/render_object.cpp (RenderObject::updateWidgetMasks): clip mask to correct width/height, though it doesn't matter much on X11.
0077         * rendering/render_replaced.h (RenderWidget::borderTop/borderBottom/borderLeft/borderRight): percolated down from RenderForm.
0078         Frames/Iframes also need that reimplementation.
0079 
0080 2006-06-22  Germain Garand  <germain@ebooksfrance.org>
0081 
0082         Implement floating auto-width table quirk
0083 
0084         * rendering/render_block.cpp (positionNewFloats): in quirkmode, floated auto-width
0085         tables try to fit within remaining linewidth, so look for minWidth, and relayout if
0086         position found ends up being narrower than current table width.
0087 
0088 2006-06-20  Germain Garand  <germain@ebooksfrance.org>
0089 
0090         Don't let a float serie grow an object's maxwidth beyond the available width
0091 
0092         * rendering/render_block.cpp (calcInlineMinMaxWidth/calcBlockMinMaxWidth): lazzily check available width
0093         so floats don't overflow it if they can break line.
0094         * rendering/render_box.{h,cpp} (availableWidth{,Using}): new. Like availableHeight{,Using}
0095         * rendering/render_canvas.cpp (RenderCanvas::layout): set m_viewportWidth before recalculating minmax, as
0096         availableWidth needs it.
0097 
0098 2006-06-15  Allan Sandfeld Jensen <kde@carewolf.com>
0099 
0100         Merge CSS3 properties background-size, background-origin and background-clip from WebCore
0101 
0102         * rendering/render_style.{h,cpp}: New properties
0103         * rendering/render_box.cpp: Handle the values in paintBackgroundExtended.
0104         * dom/css_value.h: Add CSS_PAIR primitive value
0105         * css/css_valueimpl.{h,cpp}: Add PairImpl primitive value
0106         * css/cssstyleselector.cpp: New properties
0107         * css/cssvalues.in: New values
0108         * css/cssproperties.in: New properties
0109         * css/cssparser.{h,cpp}: Clean-up short-hand parsing WC style
0110 
0111 2006-06-14  Allan Sandfeld Jensen <kde@carewolf.com>
0112 
0113         Implement replaced CSS(3) content, and fix various details in generated pseudo elements for CSS 2.1
0114 
0115         * rendering/render_style.{h,cpp}: Add REPLACED and MARKER pseudo styles
0116         * rendering/render_container.{h,cpp}:
0117             (updatePseudoChild) Allow display: block as per CSS 2.1 standard
0118             (updateReplacedContent) Handle changes in Replaced content.
0119             (childrenAllowed) forbid children when generated content is used, this prevents
0120                  their render-objects from being attached.
0121         * rendering/render_block.cpp: Postpone updatePseudoChilden to attachment because block
0122             children might need the elements parents.
0123         * rendering/render_inline.cpp: ditto
0124         * rendering/render_generated.{h,cpp}: Add new class RenderGlyph to render list-style glyphs (square, disc, etc.)
0125         * xml/dom_nodeimpl.cpp:
0126             (NodeImpl::diff) detect changes in content and return Detach
0127         * css/css_base.{h,cpp}: Add marker and replaced pseudo-styles
0128         * css/cssstyleselector.cpp:
0129             (checkOneSelector) Allow content on more elements
0130             (precomputeAttributeDependencies) Track attributes inside :not elements as well
0131 
0132 2006-06-08  George Staikos <staikos@kde.org>
0133 
0134         Fix <a><label><img not in a form not being clickable
0135 
0136         * html/html_formimpl.cpp: let the event bubble
0137 
0138 2006-05-31  Allan Sandfeld Jensen <kde@carewolf.com>
0139 
0140         Merge WC bug-fixes and clean-up for positioned box-model
0141 
0142         * rendering/Render_box.{h,cpp}:
0143             (RenderBox::calcAbsoluteHorizontal):
0144             (RenderBox::calcAbsoluteHorizontalValues):
0145             (RenderBox::calcAbsoluteVertical):
0146             (RenderBox::calcAbsoluteVerticalValues):
0147             (RenderBox::calcAbsoluteHorizontalReplaced): Handle replaced case separately.
0148             (RenderBox::calcAbsoluteVerticalReplaced): ditto.
0149 
0150 2006-04-20  Allan Sandfeld Jensen <kde@carewolf.com>
0151 
0152         Implement full support for CSS updates on dynamic DOM and user-interaction
0153 
0154         * misc/multimap.h: NEW: A "fast on insert" map with multiple values per key
0155         * xml/dom_restyler.{h,cpp}: NEW: The dynamic DOM restyler keeps track of changes and issues restyles
0156         * xml/dom_docimpl.h:
0157                 Remove obsolete usesDescendencyRules.
0158                 Add a dynamicDomRestyler to the document.
0159         * xml/dom_nodeimpl.{h,cpp}: Add dynamic DOM restyler hooks.
0160         * xml/dom_elementimpl.{h,cpp}:
0161                 Remove obsolete usesDescendencyRules logic.
0162                 Remove obsolete laterestyle logic.
0163                 Implement DOM restyler hooks.
0164         * css/cssstyleselector.{h,cpp}:
0165                 Clean-up checkSelector, removing obsolete and redundant arguments
0166                 Fix :link and :visited selector.
0167                 Setup all dynamic dependencies in checkOneSelector.
0168         * css/cssparser.{h,cpp}: Remove defaultNamespace
0169         * css/css_stylesheetimpl.{h,cpp}: Add defaultNamespace
0170         * css/parser.{y,cpp}:
0171                 Remove calls to usesDescendencyRules.
0172                 Use defaultNamespace from stylesheet rather than parser.
0173         * rendering/render_style.h: Remove obsolete affectedByHoverRules and affectedByActiveRules
0174         * rendering/render_layer.cpp: Use dynamic DOM restyler to restyle :hover and :active nodes.
0175         * html/html_formimpl.cpp: Call dynamic restyler for changes to disabled state
0176 
0177 2006-04-09  Allan Sandfeld Jensen <kde@carewolf.com>
0178 
0179         Distinguish between having no determined namespace, and determined to have no namespace
0180 
0181         * xml/dom_nodeimpl.h: Split noNamespace into defaultNamespace and emptyNamespace
0182         * css/cssstyleselector.cpp: Change HTML-hack to only trigger on undetermined namespace.
0183 
0184 2006-04-04  Allan Sandfeld Jensen <kde@carewolf.com>
0185 
0186         Make so-called nondeterministic CSS matching work
0187 
0188         * css/cssstyleselector.{h,cpp} (checkSubSelector/checkOneSelector):
0189             Extract combinator matching from checkSelector and make it a recursive function. Clean-up checkOneSelector.
0190 
0191 2006-03-25  Germain Garand  <germain@ebooksfrance.org>
0192 
0193         Scope: fix handling of nested/external scripts in the tokenizer (#91701)
0194 
0195         * misc/stringit.h (TokenizerQueue): a LIFO stack of TokenizerStrings
0196         * html/htmltokenizer.{h,cpp} (scriptHandler/write/notifyFinished): use a TokenizerQueue to store
0197         postponed fragments while executing/loading scripts.
0198         (fixUpChar): unrelated - fill in missing unicode replacements.
0199 
0200 2006-03-20  Dirk Mueller <mueller@kde.org>
0201 
0202         * misc/loader.cpp: fix pixmap leak in tiled_pixmap()
0203 
0204 2006-03-20  Allan Sandfeld Jensen <kde@carewolf.com>
0205 
0206         Improve the CSS :lang() selector to match clarified specification
0207 
0208         * khtml_part.cpp: parse HTTP content-language
0209         * xml/dom_docimpl.cpp: parse HTTP-EQUIV content-language
0210         * css/cssstyleselector.cpp: match :lang() against parents and ultimately the document
0211 
0212 2006-03-07  Germain Garand  <germain@ebooksfrance.org>
0213 
0214         Scope: relayout/repaint/widget masks fixes. Refine stacking context exploration. Optimise.
0215 
0216         * khtmlview.cpp (drawContents): use widget geometry rather than the RenderWidget's rect (fixes widget borders not being updated)
0217         Check if widget is in the dirty rect before doing any work.
0218 
0219         * rendering/render_block.cpp (layoutBlockChildren): I meant !child->isPositioned() here, not isPositioned(). No need to
0220         dirty positioned children as this is handled by the containing block chain through layoutPositionedObjects
0221         (layoutPositionedObjects): always relayout fixed objects.
0222 
0223         * rendering/render_canvas.cpp (layout): check canvas dimensions and call layoutBlock directly with relayoutChildren boolean.
0224 
0225         * rendering/render_layer.{h,cpp} (paintedRegion): constrain our shape to the visibleRect. Use convertToLayerCoords to get a correct
0226         visibleFlowRegion (updateWidgetMasks): don't forget to update the mask if it reverts to none at all.
0227 
0228         * rendering/render_object.{h,cpp} (containingBlock): for relpos inlines, return the nearest block (skipping to next containingBlock gives
0229         stalled layout flags problems - #121653). (updateWidgetMasks): mask the content box, not the border box.
0230         (enclosingStackingContext) new. Returns the layer defining current stacking context.
0231 
0232         * rendering/render_replaced.{h,cpp} (isKHTMLWidget): new flag for KHTML-proxied widgets.
0233         (detach/resizeWidget/setQWidget/layout/updateFromElement/slotWidgetDestructed/setStyle/paint): use the flag insead of strcmp's
0234         Only allow !khtml widgets to register in the view (only those need masking).
0235 
0236 2006-03-05  Charles Samuels  <charles@kde.org>
0237         * link not accessable with negative text-indent (#96275)
0238         * Wrong :hover effect with negative text-indent (#90510)
0239         * text not selectable if it has a negative text-indent
0240 
0241 2006-03-05  Charles Samuels  <charles@kde.org>
0242         * javascript timeouts that cross a midnight boundary shall not occur early
0243 
0244 2006-03-03  Germain Garand  <germain@ebooksfrance.org>
0245 
0246         get iframes, objects and some other overlaid widgets to obey their stacking context (#31121)
0247 
0248         * khtmlview.cpp: mask widgets more precisely (i.e. allow layers to paint over overlaid widgets,
0249         when they ought to).
0250 
0251         * rendering/render_canvas.{cpp,h}: update widget masks after pos child layout/positioning;
0252         set a boolean m_needsWidgetMasks to optimise for common case (where we have no such widgets).
0253 
0254         * rendering/render_layer.{cpp,h} (updateWidgetMasks/paintedRegion):  build a rough mask for the positive Z order
0255         childs. We'll apply that mask later to widgets that are under our aegis.
0256 
0257         * rendering/render_object.{cpp,h} (visibleFlowRegion): helper for calculation of broad region we want to mask in flows.
0258         (updateWidgetMasks): walk our children looking for widgets suitable to masking. Apply our enclosingLayer's mask,
0259         transformis transformandi.
0260 
0261         * rendering/render_replaced.cpp: overlaid widgets must advertise their existence to the enclosing layer.
0262 
0263 2006-03-01  Germain Garand  <germain@ebooksfrance.org>
0264 
0265         Improve selectorText
0266 
0267         * css/css_base.cpp (extractPseudoType): don't reset 'value' after parsing the pseudo-style, we need it for selectorText.
0268           (selectorText): - correctly handle CSS3 pseudo selectors,
0269                           - merge some improvements from WebCore (Mitz Pettel sub-selector patch + fix ::Set handling)
0270         * css/css_ruleimpl.cpp (selectorText): handle of multiple, comma-separated selectors
0271 
0272 2006-02-28  Germain Garand  <germain@ebooksfrance.org>
0273 
0274         Common-case style selection optimisation inspired from WebCore.
0275 
0276         * css/css_base.cpp/.h: add 'Class' to possible matching modes
0277         * css/cssstyleselector.cpp: treat 'Class' extra, not anymore as an ordinary List.
0278         * css/parser.cpp/y: use 'Class' matching mode
0279         * html/html_elementimpl.cpp: when parsing ATTR_CLASS, set a boolean to remember if it is or not a class list.
0280         * xml/dom_elementimpl.{cpp,h}: add m_hasClassList boolean + setter/getter
0281 
0282 2006-02-28  Germain Garand  <germain@ebooksfrance.org>
0283 
0284         * rendering/render_block.cpp (layoutBlockChildren): be more efficient with regard to positioned objects relayout.
0285         Merge WC margin-collapse regression fix (WC/#3508).
0286         (layoutPositionedObjects) Objects with staticX() need a relayout too.
0287         * rendering/render_canvas.cpp (layout): no need to relayout positioned objects here. This would mark entire branches of the tree
0288         as needing a layout, thus stalling update requests in those branches (#116626)
0289 
0290 2006-01-14  Allan Sandfeld Jensen <kde@carewolf.com>
0291 
0292         * rendering/render_image.cpp (calcReplacedWidth,calcReplacedHeight):
0293         Respect both min/max sizes and aspect-ratio when resizing.
0294 
0295 2006-01-03  Allan Sandfeld Jensen <kde@carewolf.com>
0296 
0297         * css/cssparser.cpp: Allow content: normal | none
0298         * css/cssstyleselector.cpp: Handle content: normal | none
0299 
0300 2005-12-09  Germain Garand  <germain@ebooksfrance.org>
0301 
0302         implement quirky HTML alignment ; introduce special float values
0303         -khtml-left/-khtml-right to this effect.
0304 
0305         * css/cssparser.cpp: ditto. Fix memory leak from Function struct deletion also.
0306         * css/cssstyleselector.cpp: ditto.
0307         * css/html4.css: set as default style for table[align="left/right"]
0308         * html/html_tableimpl.cpp (parseAttribute): remove setting of float property
0309         * rendering/render_block{h,cpp}: quirky HTML alignment never clears, and never cause fafs to clear.
0310           Only examine the last floating object on line, so as to match MSIE behaviour.
0311         * rendering/render_style.h: extra float enumeration values
0312         * css/css_renderstyledeclarationimpl.cpp (getPropertyCSSValue): adjust
0313 
0314 2005-12-06  Dirk Mueller  <mueller@kde.org>
0315 
0316         * html/htmltokenizer.cpp: don't treat <!---> specially.
0317         fixes bug 93799.
0318 
0319 2005-12-02  Charles Samuels  <charles@kde.org>
0320         rendering/bidi.cpp: don't sometimes take text far past the end
0321         of the block's margin on justified text.  bug #106081
0322 
0323 2005-11-08  Germain Garand  <germain@ebooksfrance.org>
0324 
0325         sizing of percent objects within table cells
0326 
0327         * rendering/render_box.cpp (calcPercentageHeight): transfer most of the logic for table cells in render_table as
0328         it was partly redundant here. Don't apply the table cell sizing hacks in strict mode - no other engine does that.
0329         Don't forget anonymous blocks - those must not stop recursion obviously.
0330         Move substraction of the border/padding after calculation (spotted in WC)
0331 
0332         * rendering/render_table.{cpp,h}:
0333         had member booleans to hold whether flexing of cells in a row is
0334         needed, and in the affirmative, whether we need to mark our anonymous childs for relayout (hence go one level deeper).
0335         Part of line 1394 comes from WebCore.
0336         Also: don't allow negative offset in vertical alignment when content overflows ; matches MSIE better.
0337 
0338 2005-10-28  Germain Garand  <germain@ebooksfrance.org>
0339 
0340         * rendering/table_layout.cpp (calcEffectiveWidth): do proportional distribution of overflowing minwidth
0341         when all cols are percent (#104156)
0342 
0343 2005-10-21  Germain Garand  <germain@ebooksfrance.org>
0344 
0345         * rendering/bidi.cpp (findNextLineBreak): implement needed quirk for line breaking of
0346         replaced elements within table cells.
0347         * rendering/render_block.cpp (calcInlineMinMaxWidth): ditto.
0348         Bugs #93745, #72457
0349 
0350 2005-10-20  Dawit Alemayehu <adawit@kde.org>
0351        * ecma/xmlhttprequest.cpp:
0352        -Add support for default HTTP referer header. Fixes bug# 113962.
0353        - Sanitize all setRequestHeader calls:
0354          - We now use a BANNED_HTTP_HEADERS list to filter out
0355            potentially problematic headers.
0356          - We always call open on "get" and "post" requests set
0357            through this function.
0358          - We sanitize any attempts to set the "referer" field.
0359 
0360 2005-10-15  Dawit Alemayehu <adawit@kde.org>
0361         * ecma/xmlhttprequest.cpp: Handle HTTP response headers case insensitively.
0362         Fix for bug 110768.
0363 
0364 2005-10-14  Lubos Lunak <l.lunak@kde.org>
0365 
0366         * khtmlview.cpp: show accesskeys for all frames
0367 
0368 2005-10-13  Allan Sandfeld Jensen <kde@carewolf.com>
0369 
0370         WebCore merge: correct name on IFrames
0371 
0372         * html/html_baseimpl.cpp: copied FrameElementImpl behavior for initializing name
0373 
0374 2005-10-13  Allan Sandfeld Jensen <kde@carewolf.com>
0375 
0376         WebCore merge: blur and focus on buttons
0377 
0378         * html/html_formimpl.{cpp.h}: Add form and blur
0379         * dom/html_form.{cpp,h}: ditto
0380         * ecma/kjs_html.{cpp,h}: ditto
0381 
0382 2005-10-08  Germain Garand  <germain@ebooksfrance.org>
0383 
0384         Port soft-hyphen support from WebCore
0385 
0386         * rendering/bidi.cpp (findNextLineBreak): main skipping/breaking logic
0387 
0388         * rendering/render_text.{cpp,h} (calcMinMaxWidth): account for soft hyphen
0389 
0390 2005-10-08  Dawit Alemayehu <adawit@kde.org>
0391         * ecma/xmlhttprequest.cpp: Do not append NULL character to end of posted
0392         data. Fix for bug 113393.
0393 
0394 2005-10-08  Germain Garand  <germain@ebooksfrance.org>
0395 
0396         Follow Mozilla/Opera in considering the Window object as an implementation of the AbstractView/ViewCSS
0397         DOM2 interfaces. Return the Window object when available ; an AbstractView if not.
0398 
0399         * ecma/kjs_dom.cpp (DefaultView): return the view's Window object if available.
0400 
0401         * ecma/kjs_window.{cpp,h} (GetComputedStyle): implement, as in AbstractView.
0402 
0403 2005-10-07  Germain Garand  <germain@ebooksfrance.org>
0404 
0405         * rendering/bidi.cpp (findNextLineBreak): integrate all positioned inlines in the lineboxes to get a correct static position
0406         in initial whitespace. Use some midpoints voodoo to take care of whitespace.
0407 
0408         cf. unsorted/113527.html
0409 
0410 2005-10-03  Germain Garand  <germain@ebooksfrance.org>
0411 
0412         let the initial containing block be the Canvas, as mandated by latest
0413         draft of CSS 2.1 10.1.1
0414 
0415         * rendering/render_object.cpp (containingBlock, container): don't special case the Root, it's no more
0416         an initial containing block.
0417 
0418         * rendering/render_block.{cpp,h} (*AbsolutePosition): separate calculation
0419         of positioned objects' contribution to the object's rightmost/lower/leftmost position.
0420 
0421         * rendering/render_box.cpp (setStyle, containingBlockWidth): checking for isCanvas where applicable.
0422 
0423         * rendering/render_canvas.cpp (docWidth, docHeight):
0424         take into account absolutely positioned objects from the canvas itself.
0425 
0426 2005-09-18  Allan Sandfeld Jensen <kde@carewolf.com>
0427 
0428         Implementation of real page-breaking algorithm respecting the CSS 2.1 specification.
0429 
0430         * khtmlview.cpp:
0431         Do layout for page-breaks before printing.
0432         Use screen resolution as default instead of 72DPI.
0433         * css/html4.css: Add the print media default styles
0434         * rendering/render_style.*: Add RenderPageStyle as the style for the page-context. Not yet used.
0435         * rendering/render_canvas.*:
0436         Separate paged and static properties of printing.
0437         Use rootHeight as pageHeight.
0438         Add RenderPage as the page-context(@page). Not yet used.
0439         * rendering/render_flow.*:
0440         (deleteLastLineBox) new function to remove the last line (in order to redo it).
0441         * rendering/render_line.*:
0442         (removeFromLine) ditto
0443         * rendering/bidi.cpp: New algorithm in layoutInlineChildren for doing page-breaks at layout-time,
0444         and respecting orphans/widows CSS settings.
0445         * rendering/render_block.cpp:
0446         (makePageBreakAvoidBlocks) Function for collecting runs of page-break-after/before: avoid blocks, so
0447         they can be moved across page-breaks collectively.
0448         (layoutBlockChildren) New algorithm for doing page-breaks at layout time,
0449         and respecting page-break-after/before/inside
0450         * rendering/render_table.cpp: Force page-breaks to happen inside cells and not between rows.
0451         (RenderTableSection::addSpaceAt) moves later table-rows down when one cell expands to handle a
0452         page-break.
0453         * rendering/render_list.cpp: Remove truncation logic from paint
0454         * rendering/render_text.cpp: ditto
0455 
0456 2005-08-18 Lu� Pedro Coelho <luis@luispedro.org>
0457         * rendering/render_image.cpp:  Scale images correctly (adjust both height and width)
0458           when max-width is used.
0459 
0460 2005-08-10  Dawit Alemayehu <adawit@kde.org>
0461         * ecma/xmlhttprequest.cpp: Convert a 304 (Not Modified) HTTP response in
0462           XMLHttpRequest to a 200 (OK) response to make KHTML conform to IE's and
0463           Mozilla's behavior. BUG: 110272
0464 
0465         * ecma/xmlhttprequest.cpp: Factored out the HTTP status line parsing code
0466           into a single function.
0467 
0468 2005-08-02  Allan Sandfeld Jensen <kde@carewolf.com>
0469 
0470         Imported background parsing and painting from WebCore.
0471 
0472         * css/cssparser.{h,cpp}: New short-hand parser for background
0473         * css/cssstyleselector.{h,cpp}:
0474         * rendering/render_style.{h,cpp}: Support multiple backgrounds using BackgroundLayer
0475         * rendering/render_box.{h,cpp}: Use paingBackgrounds to paint multiple backgrounds
0476         * rendering/render_line.{h,cpp}: ditto
0477         * rendering/render_object.{h,cpp}: ditto
0478         * rendering/render_form.cpp:
0479         * khtml/rendering/render_table.cpp:
0480 
0481 2005-08-02  Allan Sandfeld Jensen <kde@carewolf.com>
0482 
0483         * rendering/render_block.{h,cpp}: Split layoutBlockChildren into several auxilary functions.
0484 
0485 2005-07-26  Andreas Kling <kling@impul.se>
0486 
0487         * html/htmlparser.cpp: Block <input type="image"> elements if SRC attribute is ad-filtered.
0488         * khtml_part.cpp: Include <input type="image"> elements in AdBlocK filter runs.
0489 
0490 2005-07-25  Dawit Alemayehu <adawit@kde.org>
0491         * ecma/xmlhttprequest.cpp: Use the charset provided by the remote host through the HTTP headers.
0492 
0493 2005-07-25  Andreas Kling <kling@impul.se>
0494 
0495         Make new ad filters have instant effect (either hide affected elements
0496         replace them with the "blocked" pixmap.)
0497 
0498         * khtml_part.{cpp,h}: Added runAdFilters() function which is called from reparseConfiguration()
0499         * khtml_ext.cpp: Call KHTMLPart::reparseConfiguration() after adding new filters.
0500         * misc/loader.cpp: Create blockedPixmap in Cache::init() instead of the CachedImage constructor.
0501 
0502 2005-07-19  Allan Sandfeld Jensen <kde@carewolf.com>
0503 
0504         * rendering/render_box.{h,cpp}: Make sure we get content-sizes when reading fixed length values.
0505 
0506 2005-07-19  Andreas Kling  <kling@impul.se>
0507 
0508         * xml/dom_docimpl.cpp (isURLAllowed): Match ad filters against fully
0509                 expanded URL.
0510 
0511 2005-07-18  Andreas Kling  <kling@impul.se>
0512 
0513         "Block IFrame..." context menu option
0514 
0515         * khtml_ext.{cpp,h}: Added "blockiframe" to context popup menu
0516         * khtml_popupmenu.rc: Same
0517         * khtml_part.h: added KHTMLPopupGUIClient to friend classes
0518 
0519 2005-07-08  Germain Garand  <germain@ebooksfrance.org>
0520 
0521         vertical-align fixes
0522 
0523         * rendering/render_object.cpp (getVerticalPosition): block level
0524         elements must ignore vertical alignment (#92118). For Length values, check the parent
0525         too. Don't use the parent's position if it's top/bottom - it's waiting for
0526         our subtree's to complete! (cf. css/vertical-align.html)
0527 
0528         * rendering/render_list.cpp (calcMinMaxWidth): if the marker is the error image,
0529         avoid calculating bogus values.
0530 
0531 2005-07-07  Allan Sandfeld Jensen <kde@carewolf.com>
0532 
0533         There is nothing KHTML specific about keypress events. They might not be DOM2 or 3,
0534         but MSIE, Mozilla and Safari all handles them as a valid event class.
0535 
0536         * xml/dom2_eventsimpl.{h,cpp}: Allow KEYPRESS as a valid event type
0537         * ./.: Rename KHTML_KEYPRESS_EVENT to KEYPRESS_EVENT
0538 
0539 2005-07-05  Allan Sandfeld Jensen <kde@carewolf.com>
0540 
0541         * html/htmlparser.cpp(insertElement): Do not create DLs for stray DT and DD
0542                              (popBlock): Reopen residual tags
0543         * html/dtd.cpp: Allow more elements under DL
0544 
0545 2005-06-29  Allan Sandfeld Jensen <kde@carewolf.com>
0546 
0547         * html/htmltokenizer.cpp: Reset discard when encountering tags or entities
0548 
0549 2005-06-28  Allan Sandfeld Jensen <kde@carewolf.com>
0550 
0551         * html/html_tableimpl.cpp (appendChild): Always add TBody to XHTML rows
0552         * xml/xml_tokenizer.cpp (startElement): Remove hack for adding TBody to any row
0553 
0554 2005-06-27  Stephan Kulow  <coolo@kde.org>
0555 
0556         * html/html_formimpl.cpp (parseAttribute): Fix ignoring of align
0557         attribute on form elements !image (patch by OpenDarwing #3360)
0558 
0559 2005-06-25  David Faure  <faure@kde.org>
0560 
0561         * html/htmlparser.cpp (insertNode): Fix parsing of <table><tr><caption>,
0562         with code from WebCore, http://www.cs.cornell.edu/~maksim/WC/changesets/3747.html
0563 
0564 2005-06-23  David Faure  <faure@kde.org>
0565 
0566         * html/html_tableimpl.cpp (appendChild): Improve fix for bug #105586 to avoid
0567         side effects with tfoot.
0568 
0569         * khtml_run.cpp (foundMimeType): Mark child object (e.g. <embed>) as completed
0570         after saving, running in external viewer, or cancelling, so that e.g. scheduled redirects
0571         can happen. Patch by Andreas Kling <kling@impul.se>.
0572 
0573 2005-06-20  Allan Sandfeld Jensen <kde@carewolf.com>
0574 
0575         * ecma/kjs_events.cpp: Respect the DOM for MouseEvent::Button atleast when simulating Mozilla
0576 
0577 2005-06-20  David Faure  <faure@kde.org>
0578 
0579         * ecma/kjs_window.cpp (openWindow):  Treat empty string the same
0580         as missing for third argument of window.open().
0581 
0582 2005-06-20  Allan Sandfeld Jensen <kde@carewolf.com>
0583 
0584         Merge handling of dynamically inserted scripts.
0585 
0586         * html/html_headimpl.{h,cpp}: Load and execute dynamic scripts
0587         * html/htmlparser.cpp: Set a createdByParser to not execute scripts twice.
0588         * xml/xml_tokenizer.cpp: Ditto.
0589 
0590 2005-06-19  George Staikos <staikos@kde.org>
0591         * css/css_renderstyledeclarationimpl.{h,cpp}: Merge crash fix from
0592         webcore (See bug #107460).
0593         * css/css_valueimpl.{h,cpp}: Make m_node SharedPtr<>.
0594 
0595 2005-06-18  Harri Porten  <porten@kde.org>
0596 
0597         * ecma/kjs_window.cpp (openWindow): patch by Andreas Kling that
0598         adds support for "scrollbars" option to window.open().
0599 
0600 2005-06-14  Allan Sandfeld Jensen <kde@carewolf.com>
0601 
0602         * rendering/render_style.{h,cpp}: Remove the quotes as counters hack
0603         * css/cssstyleselectors.cpp: ditto
0604         * rendering/render_container.{h,cpp} (updatePseudoChild): Clean and simplify
0605         * rendering/render_generated.{h,cpp}: Split quotes from counters and
0606         create new base class RenderCounterBase.
0607         * rendering/render_object.cpp: Count quotes correctly
0608 
0609 2005-06-14  Dirk Mueller <mueller@kde.org>
0610         * ecma/domparser.{h,cpp}: Unbreak compilation.
0611 
0612 2005-06-13  George Staikos <staikos@kde.org>
0613         * ecma/xmlhttprequest.{h,cpp}: Disallow duplicated headers, and always
0614                                        disallow Content-Length setting.
0615 
0616 2005-06-09  Allan Sandfeld Jensen <kde@carewolf.com>
0617 
0618         Implementing Mozilla extension DOMParser
0619 
0620         * ecma/domparser.{h,cpp}: Implementation
0621         * ecma/kjs_window.{h,cpp}: Exposing DOMParser
0622         * misc/shared.h: khtml::SharedPtr<>
0623 
0624 2005-06-08  Allan Sandfeld Jensen <kde@carewolf.com>
0625 
0626         * html/html_tableimpl.{h,cpp}: Implement FRAME attribute
0627 
0628 2005-06-03  Harri Porten  <porten@kde.org>
0629 
0630         * ecma/kjs_window.cpp (put): don't crash on attempts to set a
0631         property on a deleted window (bug #106697).
0632 
0633 2005-06-03  George Staikos <staikos@kde.org>
0634         * ecma/kjs_window.cpp: Escape HTML in message boxes like window.alert()
0635 
0636 2005-06-02  Allan Sandfeld Jensen <kde@carewolf.com>
0637 
0638         * rendering/render_block: Merge margin collapsing improvement from WebCore-146
0639 
0640 2005-06-01  Harri Porten  <porten@kde.org>
0641 
0642         * ecma/kjs_window.cpp: fixed prototype property lookup order of
0643         global window object. Fixes endless loop on maps.google.com
0644         (bug #98979).
0645 
0646 2005-05-28  Allan Sandfeld Jensen <kde@carewolf.com>
0647 
0648         Implement ideographic enumeration including the CSS 2.1 cjk-ideographic and several from CSS 3 List (working draft).
0649         Also add three more numeric: (Lao, Thai and Tibetan)
0650 
0651         * css/cssvalues.in: Add new CSS3 values with -khtml-
0652         * rendering/render_style.h: Add new enums
0653         * rendering/enumerate.cpp: Implement the ideographic algorithm.
0654 
0655 2005-05-24  David Faure  <faure@kde.org>
0656 
0657         * html/html_tableimpl.cpp (appendChild): Allow javascript to insert
0658         a TR directly into a TABLE, creating a TBODY section if needed (bug #105586).
0659 
0660 2005-05-21  Harri Porten  <porten@kde.org>
0661 
0662         * html/html_documentimpl.cpp: emit onload event even if the
0663         document has no body element (bug #105798).
0664 
0665 2005-05-20  Allan Sandfeld Jensen <kde@carewolf.com>
0666 
0667         Implement/fix CSS namespace selector and other XHTML fixes.
0668 
0669         * css/css_base.h: Merge CSSNamespace from WebCore
0670         * css/css_stylesheetimpl.{h,cpp}: Port determineNamespace and addNamespace from WC
0671         * css/parser.y: Parse namespaces better
0672         * xml/dom_docimpl.cpp: Add noNamespace to namespace functions
0673         * xml/dom_nodeimpl.h: Add constants for any, no and xhtml namespaces
0674         * xml/xml_tokenizer.cpp: Parse white space.
0675 
0676 2005-05-18  Harri Porten  <porten@kde.org>
0677 
0678         * xml/dom2_eventsimpl.cpp: recognize "dblclick" type in
0679         addEventListener() calls (bug #98994).
0680 
0681 2005-05-16  Harri Porten  <porten@kde.org>
0682 
0683         * ecma/*.cpp: removed usage of deprecated KJS::Value::isNull()
0684 
0685         * ecma/kjs_dom.cpp: reverted "null" change from previous day
0686         until the compatibility to other browsers is investigated.
0687 
0688 2005-05-15  Harri Porten  <porten@kde.org>
0689 
0690         * ecma/kjs_dom.cpp: return "null" from getAttribute() and
0691         getAttributeNS() if the attribute isn't set.
0692 
0693         * html/html_elementimpl.cpp: always return a non-null string
0694         from innerHTML() and innerText()
0695 
0696 2005-05-14  Ivor Hewitt <ivor@ivor.org>
0697         * khtml_settings.cc: Support full wildcard expressions in AdblocK
0698 
0699 2005-05-12  Luciano Montanaro <mikelima@cirulla.net>
0700         * html/html_formimpl.cpp: Make a return keypress activate form
0701         buttons. Matches Mozilla.
0702 
0703         * html/html_inlineimpl.cpp: make onclick() work for links too.
0704 
0705 2005-05-12  David Faure  <faure@kde.org>
0706 
0707         * khtmlview.cpp (dispatchKeyEvent): Don't send DOM keypress if
0708         the DOM keydown that precedes it was blocked by javascript, as in IE.
0709 
0710         * rendering/render_replaced.cpp (handleEvent): send Qt::KeyPress to the
0711         widget for DOM keypress and not DOM keydown to allow sites to block a key
0712         with onkeypress, #99749.
0713 
0714 2005-05-11  Allan Sandfeld Jensen <kde@carewolf.com>
0715 
0716         * html/html_objectimpl.cpp: Extract service-type from "data:" url and create
0717         renderer for all images
0718 
0719 2005-05-09  Allan Sandfeld Jensen <kde@carewolf.com>
0720 
0721         Speed-up white-space collapsing by only allocating once.
0722 
0723         * renderer/render_table.cpp: Remove static function cleanString
0724         * xml/dom_stringimpl.cpp: Add collapseWhiteSpace function
0725 
0726 2005-05-07  Harri Porten  <porten@kde.org>
0727 
0728         * html/html_tableimpl.cpp (cellIndex): return meaningful values
0729         using patch suggested by Rob in bug report #7690.
0730 
0731         * ecma/kjs_window.cpp: allow setting location.href on foreign
0732         windows opened by window.open() again (bug #101178).
0733 
0734 2005-05-06  Ivor Hewitt <ivor@ivor.org>
0735 
0736         fix #15848: First implementation of AdBlocK.
0737 
0738         * khtml_ext.{cpp,h}: Add Blockimage to context popup menu
0739         * khtml_popupmenu.rc: ditto
0740         * khtml_settings.{cc,h}: Add adFilter settings and helper functions
0741         * html/htmlparser.cpp: Strip blocked IMG tags
0742         * misc/loader.{cpp,h}: Return replacement blocked images and refuse to load blocked scripts.
0743         * misc/blocked_icon.{cpp,png}: Image for above
0744         * xml/dom_docimpl.cpp: isURLAllowed returns false for blocked URL's
0745 
0746 2005-05-02  David Faure  <faure@kde.org>
0747 
0748         * ecma/kjs_html.cpp (HTMLCollectionProtoFunc::tryCall): Support for
0749         non-standard item('<name>').
0750 
0751 2005-05-02  David Faure  <faure@kde.org>
0752 
0753         Propagate correct DOM exception code from checkAddChild to setInnerHTML.
0754         * html/html_elementimpl.cpp (setInnerHTML, setInnerText)
0755         * dom/html_element.cpp (setInnerHTML, setInnerText)
0756 
0757 2005-05-01  Allan Sandfeld Jensen <kde@carewolf.com>
0758 
0759         The mergeable of Daves Acid2 patches.
0760 
0761         * renderer/render_block.cpp:
0762             - Make sure that percentages that go to auto don't mess up the self-collapsing block check.
0763             - Fix floats to not grow if child floats overhang but the height of the outer float is auto.
0764         * renderer/render_box.{h,cpp}:
0765             - Add support for min/max-width/height for positioned elements.
0766             - Make sure percentage min-height goes to 0 and not auto when the percentage does not apply.
0767         * renderer/render_table.cpp:
0768             - Make sure empty tables honor CSS-specified height in strict mode.
0769             - Fix baseline alignment within table cells to use the bottom of empty blocks.
0770 
0771 2005-04-30  Harri Porten  <porten@kde.org>
0772 
0773         * ecma/kjs_window.cpp: unbreak calling close() on other
0774         windows. It has it own set of security checks.
0775 
0776 2005-04-24  Harri Porten  <porten@kde.org>
0777 
0778         * html/html_formimpl.cpp (value): never return a null string from
0779         the value() function of input elements.
0780 
0781 2005-04-18  David Faure  <faure@kde.org>
0782 
0783         Special scope entries for event handlers are based on the DOM node on
0784         which the handler is an attribute, not the event target, which also
0785         allows to set it up at the time the event handler is created, not at
0786         the time it fires (Safari merge).
0787 
0788         Many files touched to simply pass the NodeImpl around.
0789 
0790         Testcase events/eventhandlerscope.{html,js}
0791 
0792 2005-04-15  Lubos Lunak <l.lunak@kde.org>
0793 
0794         * khtmlview.{h,cpp}: Assign unused accesskeys automatically to elements
0795         without accesskeys.
0796 
0797 2005-04-06  Lubos Lunak <l.lunak@kde.org>
0798 
0799         * khtmlview.{h,cpp}: Use KActions for type ahead find.
0800         * khtml_part.{h,cpp}: ditto.
0801         * khtml_part.{h,cpp}: Add Find Previous action.
0802         * khtml_part.cpp (findTextNext): Fix changing direction while searching text.
0803 
0804 2005-04-05  Lubos Lunak <l.lunak@kde.org>
0805 
0806         * misc/loader_jpeg.cpp: Fix loading of progressive JPEGs.
0807 
0808 2005-04-04  Lubos Lunak <l.lunak@kde.org>
0809 
0810         * khtmlview.cpp: Don't use keyboard grab for type-ahead find.
0811 
0812 2005-04-03  Allan Sandfeld Jensen <kde@carewolf.com>
0813 
0814         * ecma/kjs_html.{h,cpp}: Implement frame and iframe .contentWindow
0815         * ecma/kjs_window.{h,cpp}: Implement window.frameElement
0816 
0817 2005-03-30  Allan Sandfeld Jensen <kde@carewolf.com>
0818 
0819         * html/htmlparser.{h,cpp}: Merge WebCore handling of residual styles.
0820 
0821 2005-03-29  Germain Garand  <germain@ebooksfrance.org>
0822 
0823         Layer related fixes.
0824 
0825         * ecma/kjs_dom.cpp (putValueProperty): scrollLeft/scrollTop need an
0826         up-to-date rendering.
0827 
0828         * rendering/render_box.cpp (repaintRectangle): apply scroll offset
0829         to the repaint rectangle (overflow != visible objects).
0830 
0831         * rendering/render_layer.{h,cpp} (repaint): rename markForRepaint to
0832         less equivocal repaint.
0833         (updateLayerPositions): small fixes.
0834         (scrollToOffset): update our child layers (#102235)
0835 
0836         * rendering/render_object.cpp (setStyle/repaintDuringLayout): rename ditto.
0837 
0838 2005-03-29  Germain Garand  <germain@ebooksfrance.org>
0839 
0840         offsetLeft/Top/width/Height/Parent improvements
0841 
0842         * rendering/render_object.cpp (offsetLeft/offsetTop/offsetParent):
0843         match IE behaviour in strict mode.
0844 
0845         * rendering/render_table.{h,cpp} (RenderTableRow::offsetLeft/offsetTop/offsetHeight/offsetWidth):
0846         reimplemented to return meaningful values (#102127)
0847 
0848 2005-03-22  Allan Sandfeld Jensen <kde@carewolf.com>
0849 
0850         * css/parser.y: Parse pseudo-elements and pseudo-classes separately.
0851         * css/css_base.{h,cpp}: Treat pseudoElements and pseudoClass as differing match-types and
0852         add compatibility transform from pseudoClass to pseudoElement for CSS2 pseudo-elements.
0853 
0854 2005-03-22  Allan Sandfeld Jensen <kde@carewolf.com>
0855 
0856         * html/htmltokenizer.cpp: Implement SGML attribute-value white-space parsing rules.
0857 
0858 2005-03-22  Allan Sandfeld Jensen <kde@carewolf.com>
0859 
0860         * html/htmlblockimpl.cpp: When a NS-layer gets DIV layer children. The NS layer should
0861         let the DIV layer control position.
0862 
0863 2005-03-22  Allan Sandfeld Jensen <kde@carewolf.com>
0864 
0865         * misc/loader.cpp: Do not override existing charset with an empty one.
0866 
0867 2005-03-21  Allan Sandfeld Jensen <kde@carewolf.com>
0868 
0869         * html/htmltokenizer.cpp:
0870             - Only skip first LF if immediately after PRE tag.
0871             - Set prePos to 0 after BR tag
0872 
0873 2005-03-18  Allan Sandfeld Jensen <kde@carewolf.com>
0874 
0875         * xml/dom_docimpl.h: Add dictionary of CounterNodes
0876         * rendering/render_object.{h,cpp}: Save 8 bytes overhead by moving counternodes to document
0877         * rendering/render_list.cpp: Do not calculate counter value for unordered lists
0878 
0879 2005-03-18  Germain Garand  <germain@ebooksfrance.org>
0880 
0881         * xml/dom_nodeimpl.cpp (traverseNextNode): fix broken algorithm for stayWithin
0882         case (#101711)
0883 
0884 2005-03-18  Germain Garand  <germain@ebooksfrance.org>
0885 
0886         make disabling of CSSheets via DOM actually do something.
0887 
0888         * css/css_stylesheetimpl.{cpp,h} (setDisabled): update style selector.
0889 
0890         * css/cssstyleselector.cpp (CSSStyleSelector): do not append rules
0891         from disabled sheets.
0892 
0893 2005-03-17  Leo Savernik  <l.savernik@aon.at>
0894 
0895         * rendering/render_flow.cpp (repaint): Calculate height, do not simply
0896         use the bottom overflow of the root line box.
0897 
0898 2005-03-16  George Staikos  <staikos@kde.org>
0899 
0900         * rendering/render_frames.cpp: some sites put width and height on <embed>
0901         inside <object> instead of on <object>, so push that attribute up to
0902         <object> and report it to the plugin
0903 
0904 2005-03-14  Germain Garand  <germain@ebooksfrance.org>
0905 
0906         * css/html4.css: horizontal rules are centered by default (HTML-4.01 15.3)
0907 
0908 2005-03-12  Germain Garand  <germain@ebooksfrance.org>
0909 
0910         * ecma/kjs_window.{cpp,h}: implement JS 1.2's window.atob/btoa (base-64 codec interface)
0911 
0912 2005-03-10  David Faure  <faure@kde.org>
0913 
0914         * ecma/kjs_events.cpp (handleEvent): Move "pushing element/form/doc onto the scope"
0915         from JSEventListener::handleEvent to JSLazyEventListener::handleEvent so that
0916         it only happens with listeners set from html attributes, not from JS - in which
0917         case the function already got a correct scope when created.
0918         Testcase events/eventhandlerscope.{html,js}
0919 
0920 2005-03-04  Allan Sandfeld Jensen <kde@carewolf.com>
0921 
0922         Merge table padding from WebCore
0923 
0924         * html/html_tableimpl.cpp: CELLPADDING should not set normal padding
0925         * rendering/render_table.cpp: Respect padding
0926         * rendering/render_table.h: bordersAndSpacing() -> bordersPaddingAndSpacing()
0927 
0928 2005-03-04  Germain Garand  <germain@ebooksfrance.org>
0929 
0930         * rendering/render_block.cpp (layoutBlockChildren): percent width
0931         children behaves like fixed width children with regard to float
0932         clearing. In both cases we need to check if current line as enough width to
0933         hold the (flowing-around-float) child. If not, we need to clear.
0934 
0935 2005-03-04  Germain Garand  <germain@ebooksfrance.org>
0936 
0937         * rendering/render_table.cpp (calcWidth): always use lineWidth for
0938         table margins calculation (#89900)
0939 
0940 2005-03-03  Germain Garand  <germain@ebooksfrance.org>
0941 
0942         * ecma/kjs_dom.cpp (getValueProperty/putValueProperty):
0943         Mozilla/IE strict compatibility: document.documentElement.scroll{Top,Left}
0944         concern the canvas, not the root block.
0945         Cf. http://www.quirksmode.org/viewport/compatibility.html
0946 
0947 2005-03-01  Allan Sandfeld Jensen <kde@carewolf.com>
0948 
0949         * html/html_formimpl.cpp: Report content position rather than viewport position in "image" forms
0950 
0951 2005-03-01  David Faure  <faure@kde.org>
0952 
0953         * html/html_formimpl.cpp (setType): Implemented, to make it possible
0954         to set the type of an input element created with createElement.
0955         Partially inspired by WebCore's setType(), but for getAttribute("type")
0956         to work, setType() must set ATTR_TYPE. So parseAttribute() has to call
0957         another method which doesn't do that, which is now parseType(), to
0958         avoid an infinite recursion. Testcase forms/input_setType.html
0959 
0960 2005-02-28  Harri Porten  <porten@kde.org>
0961 
0962         * xml/dom2_eventsimpl.cpp: always return a non-zero keyCode()
0963         value even if it is Qt::Key_unknown as it is the case with the
0964         AltGr key for example.
0965 
0966 2005-02-28  David Faure  <faure@kde.org>
0967 
0968         * html/html_formimpl.cpp (setName): Also set ATTR_NAME so that
0969         form.foo finds the input element. Testcase forms/input_setName.html.
0970 
0971 2005-02-27  Leo Savernik  <l.savernik@aon.at>
0972 
0973         * rendering/font.cpp (drawText): Only pass text from inline text box to
0974         QPainter::drawText, not the whole RenderText's text.
0975 
0976 2005-02-27  Harri Porten  <porten@kde.org>
0977 
0978         * ecma/kjs_events.cpp: bind keyboard modifier properties like ctrlKey
0979 
0980         * xml/dom2_eventsimpl.cpp: returning meaningful keyCode() values
0981         for "special" keys
0982 
0983         * dom/dom2_events.cpp: make which() equivalent to keyCode()
0984 
0985 2005-02-20  Germain Garand  <germain@ebooksfrance.org>
0986 
0987         * html/html_formimpl.cpp (FocusHandleWidget::focusNextPrev): TextEdit
0988         needs to use QWidget::focusNextPrevChild.
0989         (defaultEventHandler): only handle key tab if it wasn't accepted by the widget (#58247)
0990 
0991         * rendering/render_replaced.cpp (RenderWidget::handleEvent): return
0992         something meaningful.
0993 
0994 2005-02-18  Germain Garand  <germain@ebooksfrance.org>
0995 
0996         scope: table percentage height, replaced element height calculation.
0997 
0998         * rendering/render_body.cpp (layout): pre-calculate our margins in
0999         quirk mode, to be able to compute calcPercentageHeight in a const way.
1000 
1001         * rendering/render_box.{h,cpp}
1002         (calcPercentageHeight): make const.  Fix calculation of percentage
1003         height within table cells to match other engines.
1004         Do not subtract PB for table elements.
1005         (calcReplacedHeightUsing): use calcPercentageHeight for Percent.
1006         Looking for available height is an IE quirk and is thusly only done in quirk mode now.
1007         When it is not computable, it behaves like 'auto', so use the intrinsicHeight (cf.10.6.2).
1008 
1009         * rendering/render_table.cpp (layoutRows): fix vertical alignment within
1010         percentage driven cells. Subtract the cell's PB from cellPercentageHeight.
1011 
1012 2005-02-18  Leo Savernik  <l.savernik@aon.at>
1013 
1014         * rendering/render_layer.cpp (updateHoverActiveState): Also mark
1015         textnodes as being active. Use NodeImpl's implementation of setActive
1016         for efficiency reasons, the style is updated anyway afterwards.
1017 
1018 2005-02-16  Leo Savernik  <l.savernik@aon.at>
1019 
1020         * khtmlview.cpp (dispatchMouseEvent): Walk upwards the parent chain
1021         from the target node and set the focus to the nearest focusable
1022         ancestor (merged from WebCore).
1023 
1024 2005-02-16  Germain Garand  <germain@ebooksfrance.org>
1025 
1026          - sanitize part/tokenizer state (for cross-document scripts).
1027          - don't delete a tokenizer still executing a script on explicit close (patch from Allan Sandfeld
1028            and Sarah <sarah@b0rked.dhs.org>)
1029          fixes #68523 + crashes on early pop-up closing.
1030 
1031         * html/htmltokenizer.{h,cpp} (setAutoClose/timerEvent/...): add timer driven auto-close mode for
1032           e.g cross-frame scripts.
1033 
1034         * khtml_part.{h,cpp} (resetFromScript): reset the part to a sane state before reopening
1035           a closed document.
1036 
1037         * xml/dom_docimpl.cpp (write): ditto.
1038          (close): Check for isExecutingScript before deciding to delete the tokenizer.
1039 
1040         * xml/xml_tokenizer.h (setAutoClose/isExecutingScript): ditto.
1041 
1042 2005-02-15  Leo Savernik  <l.savernik@aon.at>
1043 
1044         * rendering/render_table.{cpp,h} (RenderCell::nodeAtPoint):
1045         Including top and bottom extra space in hit testing.
1046 
1047 2005-02-15  Allan Sandfeld Jensen <kde@carewolf.com>
1048 
1049         Implement genererated content: counter and quotes
1050 
1051         * css/*: Parse new counter and quote content, and counter acts. Quotes are parsed to a special type of counter.
1052         * rendering/counter_tree.{h,cpp}: Adds a dynamic counter-tree to keep counter values up-to-date
1053         * rendering/render_generated.{h,cpp}: New renderCounter class to renders counters as text
1054         * rendering/render_container.cpp: Content now only inherits style from the pseudo-container rather than use an exact duplicate.
1055         * rendering/render_object.cpp: Add new functions to find and attach counter-tree nodes.
1056         * rendering/render_style.cpp: New counter content and counter acts
1057         * rendering/render_list.cpp: Use the new counters to count lists
1058 
1059 2005-02-14  Leo Savernik  <l.savernik@aon.at>
1060 
1061         * rendering/render_flow.cpp (repaint): Only include top and bottom
1062         overflow while not relayouting, otherwise root inline box may not be
1063         available yet.
1064 
1065 2005-02-14  David Faure  <faure@kde.org>
1066 
1067         * html/html_formimpl.cpp (value): Fix for textarea onChange not emitted:
1068         emit it when updating m_value in value(), since this happens before the
1069         focusOut event, which doesn't do it since m_dirtyvalue is then false.
1070 
1071 2005-02-13  Leo Savernik  <l.savernik@aon.at>
1072 
1073         * rendering/render_block.{cpp,h} (paintObject): Added parameter to only
1074         paint the block's outline on demand.
1075 
1076         * rendering/render_flow.cpp (repaint): Fix repaint rectangle to also
1077         encompass the top and bottom overflow of the root inline box.
1078 
1079         * rendering/render_line.{cpp,h} (InlineBox::root): Ported over from
1080         WebCore. Returns the root inline box of this box.
1081 
1082         * rendering/render_table.{cpp,h} (RenderTableCell::repaintRectangle):
1083         Use full height of table cell, otherwise outline won't be fully
1084         repainted.
1085         (RenderTableCell::paint): Paint outline of table cells explicitly,
1086         and keep the underlying render block from painting it itself.
1087         (RenderTableCell::paintObject): Removed. Nowhere used anymore.
1088 
1089 2005-02-13  Harri Porten  <porten@kde.org>
1090 
1091         * xml/dom2_eventsimpl.*: updated virtual key codes to a more recent
1092         version. Added mapping for Up and Down cursor keys. Made keyCode()
1093         always return the uppercase value of characters.
1094 
1095 2005-02-12  David Faure  <faure@kde.org>
1096 
1097         * khtml_part.cpp (slotRedirect): No reload should happen when redirecting
1098         to sameurl#anchor via Javascript or META refresh. This happened due to the
1099         setRedirectedRequest(true), which wasn't necessary for the webmin tree.cgi
1100         fix - setRedirectedRequest is called by KonqRun for that one.
1101         The other redirectedRequest check was used for adding cross-domain, I simply
1102         moved that code from urlSelected to slotRedirect.
1103 
1104 2005-02-12  Germain Garand  <germain@ebooksfrance.org>
1105 
1106         fix inline formatting model
1107 
1108         * rendering/render_line.cpp (placeBoxesVertically): shrink/enlarge inlineboxes' height according to rendered gliphes,
1109         but only if the calculated leading delta is superior to our font's natural leading
1110 
1111         * rendering/render_text.cpp (paintSelection): use the linebox's height, not the line-height anymore.
1112 
1113         * rendering/render_inline.cpp (collectVerticalBoxCoordinates): previous linebox's bottomPosition
1114         might now be lower than current linebox's topPosition. Adjust outline algorithm.
1115 
1116 2005-02-08  David Faure  <faure@kde.org>
1117 
1118         * khtml_part.cpp (executeScript): Handle immediate redirects, scheduled
1119         by JS with e.g. location='foo', as soon as the current script finishes.
1120 
1121 2005-02-07  Leo Savernik  <l.savernik@aon.at>
1122 
1123         * rendering/render_image.cpp (paint): Regard inline offset when
1124         painting outline.
1125 
1126         * rendering/render_table.{cpp,h} (RenderTable::paint): Added missing painting of table outlines.
1127         (firstTableRow): added
1128         (nextTableRow): added
1129         (RenderTableSection::paint): When painting the rows, also traverse
1130         the according RenderTableRows, and call their paintRow routine.
1131         Fixed overflow size of damage rectangle.
1132         (RenderTableRow::paintRow): Added. Can't use paint() because
1133         RenderTableRow is not a RenderBox, and hence doesn't store layout
1134         information.
1135         (RenderTableCell::paint): Added painting of the table cell's outline
1136         herein instead in RenderBlock to encompass the extra table cell top
1137         and bottom margins.
1138 
1139 2005-02-07  Germain Garand  <germain@ebooksfrance.org>
1140 
1141         * css/html4.css: the -around-floats flow mode can only be applied to elements defining a
1142         new block formatting context (see CSS2.1 - 9.5).
1143         Blockquote and DL don't by any stretch of the mind, so clear this property for those.
1144         Also, don't center fieldset.
1145 
1146         * rendering/render_block.cpp (layoutBlock): make flowAroundFloats encompass their own floats
1147         (#85984).
1148 
1149 2005-02-02  Leo Savernik  <l.savernik@aon.at>
1150 
1151         * dom/dom_doc.{cpp,h}: Added Document::addStyleSheet/removeStyleSheet
1152         interface methods for programmatically adding/removing style sheets.
1153 
1154         * xml/dom_docimpl.{cpp,h}: Added DocumentImpl::addStyleSheet/
1155         removeStyleSheet methods.
1156         Added list storing programmatically added style sheets.
1157         (updateStyleSelector) Merge programmatical list with effective list
1158         of style sheets.
1159 
1160 2005-02-01  Germain Garand  <germain@ebooksfrance.org>
1161 
1162         clearly separate full blown anonymous blocks (isAnonymousBlock) from
1163         pseudo-elements (isPseudoAnonymous). #74595, #92910.
1164 
1165         * rendering/render_block.cpp
1166         (setStyle,updateFirstLetter,addChildToFlow,removeChild,close,renderName):
1167         Only real anonymous blocks can be manipulated interchangeably => adjust logic.
1168         PseudoAnonymous blocks have a null element(), but they keep a relationship to
1169         the element they were generated from, that can be gathered from node()
1170 
1171         * rendering/render_container.cpp (updatePseudoChild,insertChildNode,removeLeftoverAnonymousBoxes):
1172         ditto.
1173 
1174         * rendering/render_inline.cpp (addChildToFlow,splitFlow): ditto.
1175 
1176         * rendering/render_list.cpp (setStyle,updateMarkerLocation,RenderListMarker):
1177         ditto.
1178 
1179         * rendering/render_object.cpp
1180         (RenderObject::information): highlight the pseudo-element to originating element relationship in output.
1181         (RenderObject::dump): ditto.
1182 
1183         * rendering/render_object.h (requiresLayer): add missing hasOverflowClip condition
1184         (isAnonymousBlock): ditto.
1185         (isPseudoAnonymous): ditto.
1186 
1187 2005-01-25  Germain Garand  <germain@ebooksfrance.org>
1188 
1189         * khtmlview.cpp (viewportWheelEvent): discard wheel events occuring before the first relayout (avoids blanking the view).
1190          Also support Horizontal wheel events (needs qt-copy/patch #61).
1191 
1192 2005-01-25  Germain Garand  <germain@ebooksfrance.org>
1193 
1194         fix #95704: float double-painting bug.  Most of the work done by Charles Samuels.
1195 
1196         * rendering/render_block.h (FloatingObject::FloatingObject): add crossedLayer flag to prevent noPaint from
1197         being toggled off once we have crossed a layer during the float propagation process
1198 
1199         * rendering/render_block.cpp (addOverHangingFloats): use/update said flag.
1200 
1201 2005-01-19  Allan Sandfeld Jensen <kde@carewolf.com>
1202 
1203         * css/*: Parse opacity and outline-offset
1204         * rendering/*: Implement outline-offset
1205 
1206 2005-01-12  Allan Sandfeld Jensen <kde@carewolf.com>
1207 
1208         * css/cssstyleselector.cpp: Match :contains() against innerText on HTMLElements
1209 
1210 2005-01-11  Leo Savernik  <l.savernik@aon.at>
1211 
1212         * rendering/render_text.cpp (caretPos): Calculate absolute position
1213         beginning from the RenderText, not from the containing block.
1214 
1215 2005-01-07  David Faure  <faure@kde.org>
1216 
1217         * ecma/kjs_html.cpp: Support for document.body.onload.
1218 
1219 2005-01-06  Allan Sandfeld Jensen <kde@carewolf.com>
1220 
1221         * khtml_part.cpp: Fix selection by selecting the text in the cleaned string rather
1222         than in the DOM.
1223         * xml/dom_textimpl.{h,cpp}: Add renderString() to return the possibly transformed string.
1224 
1225 2004-12-29  Allan Sandfeld Jensen <kde@carewolf.com>
1226 
1227         Implement CSS 2.1 white-space: pre, pre-line and pre-wrap
1228 
1229         * html/htmltokenizer.cpp: Merge white-space related parsing from Webcore
1230         * html/htmlparser.cpp: Ditto
1231         * rendering/render_text.cpp: Introduce text transformation that cleans excess
1232         white-space and linefeeds when style()->whitespace() changes.
1233         * rendering/render_style.h: Introduce pre-wrap and pre-line.
1234         Add helper functions autoWrap(), preserveLF() and preserveWS()
1235         * rendering/bidi.cpp: Replace checks of whiteSpace==PRE/NORMAL with new the
1236         more finegrained autoWrap, preserveLF and preserveWS functions.
1237         * css/*: Add pre-line and pre-wrap as possible CSS values
1238 
1239 2004-12-29  Germain Garand  <germain@ebooksfrance.org>
1240 
1241         merge bug fix for suboptimal updating of layer hierarchy
1242 
1243         * rendering/render_container.cpp (appendChildNode/insertChildNode): optimize for common case
1244 
1245         * rendering/render_object.{h,cpp} (addLayers): merge optimization
1246 
1247 2004-12-29  Germain Garand  <germain@ebooksfrance.org>
1248 
1249         memory allocation fixes
1250 
1251         * khtml_factory.cpp: cleanup the global Arena freelist after the last khtml part gets unloaded
1252 
1253         * misc/arena.{cpp,h} (InitArenaPool): change arenasize from 4096 to kMax(8192, 2*pagesize).
1254         (ArenaAllocate): when a single pool grows over a 256*initial size threshold, switch to fractional allocation
1255         so that more resources can be returned to the system afterward.
1256         (FreeArenaList): don't link more than FREELIST_MAX Arenas to the freelist
1257         (ArenaFinish): reset freelist_count
1258 
1259 2004-12-24  Stephan Kulow  <coolo@kde.org>
1260 
1261         * css/cssparser.cpp: fixing keyword background-positions that have an implicit center for the
1262         other cordinate
1263 
1264 2004-12-19  Allan Sandfeld Jensen <kde@carewolf.com>
1265 
1266         * xml/dom_nodeimpl.{h,cpp}: Merge createRendererIfNeeded() and friends from WebCore
1267         * xml/dom_elementimpl.{h,cpp}: Simplify attach to createRendererIfNeeded
1268         * xml/dom_textimpl.{h,cpp}: Don't create unneeded empty text-runs.
1269 
1270 2004-12-18  Allan Sandfeld Jensen <kde@carewolf.com>
1271 
1272         Fix structural pseudo-classes :empty, :last-*, :only-* and :nth-last-* by introducing a late restyling
1273         run when needed.
1274 
1275         * xml/dom_nodeimpl.{h,cpp}: Add new function close() to notify that the close tag have been parsed and no
1276           more static children will be added.
1277         * xml/dom_elementimpl.{h,cpp}: Add flags restyleChildrenLate, restyleSelfLate and restyleLate. To indicate
1278           self, children or self in relation to parent needs restyling at closing time.
1279         * xml/xml_tokenizer.cpp: Call close when close-tags are parsed
1280         * html/htmlparser.cpp: Call close where closeRenderer was previously called
1281         * css/cssstylerenderer.cpp: Set restyleLate flags where necessary
1282 
1283 2004-12-13  Allan Sandfeld Jensen <kde@carewolf.com>
1284 
1285         Be more IE-compatible in IE-compatible key-event extension
1286 
1287         * ecma/kjs_events.{h,cpp}: Add charCode
1288         * dom/dom2_events.{h,cpp}: Glue
1289         * xml/dom2_eventsimpl.{h,cpp}: Make keyCode return windows key codes and add charCode.
1290 
1291 2004-12-12  Germain Garand  <germain@ebooksfrance.org>
1292 
1293         Pragmatic incremental repaints: be accurate on layered objects, conservative on
1294         objects in normal flow. Fix performance issues on repeated relayouts (#53114)
1295 
1296         * khtmlview.{cpp,h}: add needsFullRepaint flag, mostly similar to WebCore's.
1297         (layout): don't repaint the canvas systematically anymore.
1298 
1299         * rendering/bidi.cpp (layoutInlineChildren): schedule a repaint on
1300         old rectangle and future rectangle, if marked dirty.
1301 
1302         * rendering/render_block.cpp (layoutBlock/layoutBlockChildren/layoutPositionedObjects): ditto.
1303 
1304         * rendering/render_table.cpp (layout): ditto.
1305 
1306         * rendering/render_box.cpp (calcAbsoluteHorizontal): no more updateLayerPosition() here.
1307         Layers positioning now happen in a separate pass.
1308 
1309         * rendering/render_canvas.{cpp,h}
1310         (needsFullRepaint): new - used to determine if we need to do incremental repaint at all. Don't waste time if the whole canvas is dirty.
1311         (repaintViewRectangle): new - schedule a repaint in absolute coordinates.
1312         (deferredRepaint): new - append argument to a list of objects needing a post-layout repaint.
1313         (scheduleDeferredRepaints): new - repaint all objects in list described above, at the end of layout.
1314 
1315         * rendering/render_layer.{cpp,h} (markForRepaint): new - schedule a repaint of a layer, calculating its visible rectangle,
1316         and optionnally marking it as needing a post-layout repaint.
1317         (updateLayerPositions): merged++ from WebCore. Position layers. Repaint layers marked by the above.
1318         (calculateClipRects/calculateRects): no more updateLayerPosition call there.
1319 
1320         * rendering/render_object.cpp
1321         (setNeedsLayout): when marking for layout, also mark the formatting context for repaint (m_markedForRepaint boolean)
1322         (setChildNeedsLayout): merge WebCore guard against multiple dirtying.
1323         (setStyle): based on the Style diff, decide whether to dirty only the current formatting context, or also the parent's.
1324         (dirtyFormattingContext): new.
1325         (repaintDuringLayout): new - schedule a pre/post-layout repaint on the object, if it makes sense.
1326 
1327 2004-12-12  Germain Garand  <germain@ebooksfrance.org>
1328 
1329         sanitize anchor-jumping code. Merge restoreScrollPosition/gotoAnchor
1330         slots to avoid undeterministic calling order and redundant
1331         connections(#94783, 3.3.2 regression of #57360).
1332 
1333         * khtml_part.cpp (restoreURL/openURL/slotData/restoreState): ditto.
1334         (checkCompleted): don't setContentsPos here
1335 
1336         * khtml_part.h: remove private gotoAnchor slot
1337 
1338         * khtmlpart_p.h: add boolean to record whether we need to restore a
1339         stored scroll offset or honour an anchor
1340 
1341 2004-12-09  Allan Sandfeld Jensen <kde@carewolf.com>
1342 
1343         Add :enabled and :disabled pseudo-classes
1344 
1345         * css/css_base.{h,cpp}: Parse new pseudoclases
1346         * css/cssstyleselector.cpp: Implement new selectors
1347 
1348 2004-12-08  Allan Sandfeld Jensen <kde@carewolf.com>
1349 
1350         Merge encoding detection from WebCore
1351 
1352         * misc/decoder.{h,cpp}: Detect XML-encoding, comments in headers and other merges
1353         * khtml_part.cpp: Frames inherits parents encoding as their default
1354 
1355 2004-12-08  Allan Sandfeld Jensen <kde@carewolf.com>
1356 
1357         Merge :target pseudo-class from WebCore
1358 
1359         * css/cssstyleselector.cpp: Uncomment :target handling
1360         * xml/dom_docimpl.{h,cpp}: Add (set)cssTarget.
1361         * khtml_part.cpp: Call setCssTarget on anchors
1362 
1363 2004-12-07  Allan Sandfeld Jensen <kde@carewolf.com>
1364 
1365         Implement/merge CSS2-3 text-shadow property
1366 
1367         * css/*: Merge values and parsing from WebCore
1368         * render/render_style.{h,cpp}: Merge CSS3Inherited and ShadowData classes
1369         * render/render_text.{h,cpp}: Implement new paintShadow function
1370 
1371 2004-12-06  Allan Sandfeld Jensen <kde@carewolf.com>
1372 
1373         * rendering/bidi.cpp: Layout arabic numbers with a separator correctly.
1374 
1375 2004-12-02  Allan Sandfeld Jensen <kde@carewolf.com>
1376 
1377         Implement remaining CSS2 list-style-types and a few CSS3
1378 
1379         * rendering/render_list.cpp: New algorithms for hiragana, katakana,
1380             armenian, georgian and decimal-leading-zero.
1381             Also fix greek and latin list-styles for larger values.
1382         * css/cssvalues.cpp: Parse box, -khtml-diamond, -khtml-arabic-indic,
1383             -khtml-persian, -khtml-urdu and -khtml-upper-greek
1384         * rendering/render_style.h: Expand list-style enum
1385 
1386 2004-11-30  Germain Garand  <germain@ebooksfrance.org>
1387 
1388         * css/cssstyleselector.{cpp,h}: fontSizes array now uses a QValueVector;
1389         made "font-size: smaller/bigger" follow the standard font scale
1390         when possible.
1391 
1392         * css/html4.css: made <big>/<small> use font-size: bigger/smaller (#82657)
1393 
1394 2004-11-29  Allan Sandfeld Jensen <kde@carewolf.com>
1395 
1396         * css/cssstyleselector.cpp: Handle :lang selector
1397 
1398 2004-11-27  Germain Garand  <germain@ebooksfrance.org>
1399 
1400         merge WebCore differences in logic for Auto table layout
1401 
1402         * rendering/table_layout.cpp (calcEffectiveWidth/layout):
1403         distribute remaining width starting with fixed rather than percent (#88104).
1404 
1405 2004-11-26  Germain Garand  <germain@ebooksfrance.org>
1406 
1407         merge zero deep-copy TokenizerString class from WebCore
1408 
1409         * html/htmltokenizer.{cpp,h}
1410         * misc/stringit.{cpp,h}
1411         * xml/xml_tokenizer.{cpp,h}
1412 
1413 2004-11-23  Allan Sandfeld Jensen <kde@carewolf.com>
1414 
1415         Implement the structual pseudo-selectors of CSS3.
1416 
1417         * css/tokenizer.flex: Add nth and NOTFUNCTION tokens.
1418         The later because the not-function is unique in its parsing.
1419         * css/tokenizer.cpp: Manually merge output from flex :(
1420         * css/parser.y: Update parsing of pseudo-functions.
1421         Also enables correct parsing of :lang and :contains.
1422         * css/css_base.{h,cpp}: Add new pseudoselectors
1423         * css/cssstyleselector.cpp: Implement new selectors
1424 
1425 2004-11-22  Germain Garand  <germain@ebooksfrance.org>
1426 
1427         * rendering/bidi.cpp (layoutInlineChildren): for elements with some kind of
1428         scrolling overflow and a variable height, include the scrollbar height in
1429         calculations to avoid masking content (#89136).
1430 
1431         * rendering/render_block.cpp (layoutBlock/layoutBlockChildren): ditto.
1432 
1433         * rendering/render_box.cpp (contentWidth/contentHeight): subtract scrollbars
1434         height/width when applicable.
1435 
1436 2004-11-22  Allan Sandfeld Jensen <kde@carewolf.com>
1437 
1438         Implement CSS border on form-widgets
1439 
1440         * css/cssvalues.in: Add -khtml-native
1441         * css/cssparser.cpp: Accept -khtml-native as a border-type
1442         * css/cssstyleselector.cpp: BNATIVE and not BNONE is now lowest border-style
1443         * css/html4.css: Make -khtml-native default border-style for form-widgets
1444         * render/render_style.h: Add BNATIVE
1445         * render/render_object.cpp: Treat BNATIVE like BNONE
1446         * render/render_replaced.cpp: Remove native, and paint CSS border when allowed
1447 
1448 2004-11-21  Germain Garand  <germain@ebooksfrance.org>
1449 
1450         float and flowAroundFloat fixes.
1451 
1452         * css/html4.css: make fieldset -khtml-around-floats (#92979)
1453 
1454         * rendering/render_block.cpp (layoutBlockChildren): cleanup float/flowAroundFloats
1455         logic. Merges: add better RTL layouting of fAFs.
1456         (lineWidth): guard against negative values
1457         (clearFloats): don't copy floats if element defines a new block
1458         formatting context (#93511)
1459         (markAllDescendantsWithFloatsForLayout): add missing argument to
1460          recursive call
1461         (getClearDelta): merge
1462         (InlineMinMaxIterator::next): exclude positioned elements
1463         (calcInlineMinMaxWidth): merge float clearing adjustments
1464         (calcBlockMinMaxWidth): ditto
1465 
1466         * rendering/render_box.cpp (calcWidth): use containingBlockWidth
1467 
1468         * rendering/render_object.cpp (isHR): new. Evil but useful for quirkmode (cf. usesLineWidth).
1469         (flowAroundFloats): add replaced and overflowClip elements
1470         (usesLineWidth): adapt to above.
1471 
1472         * rendering/render_table.cpp (calcWidth): style()->flowAroundFloats => flowAroundFloats()
1473 
1474 2004-11-19  Stephan Kulow  <coolo@kde.org>
1475 
1476         * rendering/render_form.cpp (updateFromElement): restore scrolling position in case of a change
1477         in text and do not trigger the update code more often than necessary
1478 
1479 2004-11-17  Allan Sandfeld Jensen <kde@carewolf.com>
1480 
1481         * render/render_table.{h,cpp}: Improve distribution of excess height
1482 
1483 2004-11-17  Allan Sandfeld Jensen <kde@carewolf.com>
1484 
1485         * render/render_table.cpp: Respect margins when calculating width to be distributed.
1486 
1487 2004-11-16  Germain Garand  <germain@ebooksfrance.org>
1488 
1489         * rendering/render_replaced.{cpp,h} (cancelPendingResize): allow
1490         canceling of scheduled widget resizes, to avoid flicker when we
1491         had to perform temporary layouts.
1492 
1493         * rendering/render_table.cpp (calcRowHeight): displace resetting layout of cells with
1494         percent children here and mark those dirty, or we might get zero-height widgets on resize
1495         (cf. map24.com)
1496         (layout): ditto.
1497         (layoutRows): cancel widget resizes from temporary layouts.
1498 
1499 2004-11-16  Stephan Kulow  <coolo@kde.org>
1500 
1501         * rendering/break_lines.cpp (khtml): adding patch by Otto Pattara to support
1502         libthai for correct line breaks
1503 
1504 2004-11-15  Allan Sandfeld Jensen <kde@carewolf.com>
1505 
1506         Fix odd spacing in gmail-composer and zeg-shop.de
1507 
1508         * render/render_box.h: Change auxillary box-size functions to protected
1509         * render/render_table.cpp: Calculate percentage heights based on containing box
1510         rather than viewport, by merging code with renderBox.
1511 
1512 2004-11-09  Germain Garand  <germain@ebooksfrance.org>
1513 
1514         fix globeandmail.com famlily of crashes (#65715)
1515 
1516         * rendering/render_box.cpp (createAnonymousBlock): moved from RenderFlow
1517         (restructureParentFlow): check soundness of parent's flow structure with regard to
1518         the child's new display. Adapted from WebCore.
1519         (setStyle): check parent if floats or positioned objects become in-flow
1520         and thus affects flow structure.
1521 
1522         * rendering/render_flow.cpp (createAnonymousBlock): moved.
1523 
1524         * rendering/render_inline.cpp (splitInlines): use addChildToFlow
1525         rather than appendChildNode
1526 
1527         * rendering/render_line.cpp: display COMPACT cleanups
1528 
1529         * rendering/render_object.cpp: ditto.
1530 
1531 2004-11-06  Allan Sandfeld Jensen <kde@carewolf.com>
1532 
1533         Implement CSS3 property box-sizing to match MacIE, Opera and Mozilla
1534 
1535         * css/css*.in: Add new property and primitive values
1536         * css/cssparser.cpp: Detect content-box and border-box as primitives
1537         * css/cssstyleselector.cpp: Parse box-sizing
1538         * render/render_style.h: Add box-sizing to non-inherited values
1539         * render/render_box.cpp: Consult box-sizing before adding padding and
1540         border to width and height
1541 
1542 2004-11-05  Germain Garand  <germain@ebooksfrance.org>
1543 
1544         * khtml_part.cpp (closeURL/slotData/restoreState): avoid triggering
1545         full repaints of the view before the first layout is done.
1546 
1547 2004-11-05  Germain Garand  <germain@ebooksfrance.com>
1548 
1549         * css/cssstyleselector.cpp (computeFontSizes): add compensated font scale
1550         from Todd Fahrner's "Toward a standard font size interval system"
1551         article for 12ppem and below (suggested by Bert Bos <bert@w3.org>)
1552 
1553 2004-11-04  Stephan Kulow  <coolo@kde.org>
1554 
1555         * rendering/bidi.cpp (bidiReorderLine): applying patch by Mitz Pettel
1556         to fix neutral types at beginning of context
1557 
1558 2004-11-03  Germain Garand  <germain@ebooksfrance.com>
1559 
1560         * khtmlview.cpp (slotScrollBarMoved): make sure we are layouted before
1561         scrolling if we are still loading (#51473)
1562 
1563 2004-11-02  Stephan Kulow  <coolo@kde.org>
1564 
1565         * rendering/render_replaced.cpp (setStyle): set hidden widgets to invisible
1566 
1567         * xml/dom_docimpl.cpp (recalcStyleSelector): avoid invalid casts on XML documents
1568 
1569 2004-11-02  Germain Garand  <germain@ebooksfrance.com>
1570 
1571        * css/cssstyleselector.cpp (adjustRenderStyle):
1572        ignore relative positioning on table sections. CSS 2.1 does not
1573        define that, but it is a consensus amongst all major browsers.
1574 
1575 2004-11-01  Sandro Giessl <sandro@giessl.com>
1576 
1577         * rendering/render_replaced.cpp (copyWidget): don't fill the
1578         background of QFrames. they paint their own background now
1579 
1580 2004-10-30  Stephan Kulow  <coolo@kde.org>
1581 
1582         * html/html_formimpl.cpp (parseAttribute): ignore height element
1583         for input elements that are not image
1584 
1585 2004-10-28  Stephan Kulow  <coolo@kde.org>
1586 
1587         * html/html_documentimpl.cpp (determineParseMode): adding a fixed list of
1588         doctypes to enable quirks mode on (derived from Webcore, but majorly revised)
1589         * enable strict CSS parsing also for transitional doctypes
1590 
1591 2004-10-27  Germain Garand  <germain@ebooksfrance.com>
1592 
1593         make font-sizes CSS2.1 compliant.
1594 
1595         * css/cssstyleselector.cpp (computeFontSizes): use standard ratios
1596         from CSS 2.1 15.7.
1597         (applyRule): don't apply zoom factor to ems/exs relative values (#91228).
1598 
1599         * css/html4.css: Hx elements - margin ratios are now 1.1/corresponding ratio.
1600         Switch to absolute sizes from CSS 2.1 15.7
1601 
1602 2004-10-27  Stephan Kulow  <coolo@kde.org>
1603 
1604         * css/cssstyleselector.cpp (checkOneSelector): match exact matches case sensitive
1605         only in XHTML - HTML attributes are all case insensitive
1606 
1607 2004-10-26  Stephan Kulow  <coolo@kde.org>
1608 
1609         * html/html_elementimpl.cpp (addCSSProperty): don't add all css properties in
1610         lower case but select those those where it matters
1611 
1612 2004-10-26  Allan Sandfeld Jensen <kde@carewolf.com>
1613 
1614         * rendering/bidi.{h,cpp}: Merge bidi-changes from WebCore
1615 
1616 2004-10-26  David Faure  <faure@kde.org>
1617 
1618         * khtml_part.cpp (urlSelected): Only call recursiveFrameRequest if target is
1619         different from _self, _top, _blank and _parent. See tests/frames/target/*.
1620 
1621 2004-10-25  David Faure  <faure@kde.org>
1622 
1623         * khtml_part.cpp (processObjectRequest): connect to completed(bool) for <embed>
1624         too, to avoid a never-ending-spinning-wheel on the following testcase
1625         <META HTTP-EQUIV="Refresh" content="10;URL=www.kde.org"><EMBED>
1626 
1627 2004-10-25  Stephan Kulow  <coolo@kde.org>
1628 
1629         * html/html_elementimpl.cpp (addCSSProperty): add css properties parsed from
1630         attributes as lower case
1631 
1632 2004-10-25  George Staikos  <staikos@kde.org>
1633 
1634         * rendering/render_image.cpp: Pass through the CachedObject so we can
1635         use the suggested filename possibly provided by the HTTP headers.
1636 
1637         * khtml_ext.cpp: Make use of the suggested filename for images.
1638 
1639 2004-10-24  David Faure  <faure@kde.org>
1640 
1641         * html/html_formimpl.cpp (value): Fixed m_value vs ATTR_VALUE problem
1642         which didn't allow sending mail on gmail.google.com. Testcases:
1643         forms/form_setattribute.html, mozilla/dom/dom-html/{hfor009.html,hinp017.html}
1644 
1645 2004-10-22  Stephan Kulow  <coolo@kde.org>
1646 
1647         * ecma/kjs_window.cpp (tryCall): merging handling of event handlers
1648 
1649         * css/cssparser.cpp (parseValue): implementing CSS 2.1 compliant parsing
1650         of background-position (#91572)
1651 
1652 2004-10-21  Allan Sandfeld Jensen <kde@carewolf.com>
1653 
1654         Implement limited DHTML capabilities to the layer implementation
1655 
1656         * html/html_miscimpl.{h,cpp}: Extract collection of all layers
1657         * dom/html_block.{h,cpp}: Add layer DOM
1658         * dom/html_document.{h,cpp}: Add .layers to document DOM
1659         * ecma/kjs_html.{h,cpp}: Add layer DHTML and allow layers to be found by ID
1660         * ecma/kjs_window.cpp: Allow layers to be found by ID
1661 
1662 2004-10-19  Allan Sandfeld Jensen <kde@carewolf.com>
1663 
1664         * rendering/render_box.{h,cpp}: Merge min,max-height fixes
1665 
1666 2004-10-19  Germain Garand  <germain@ebooksfrance.org>
1667 
1668         finish merge of static position for positioned objects
1669 
1670         * css/cssstyleselector.cpp (adjustRenderStyle): remember our original display
1671         * rendering/bidi.cpp (appendRun): include positioned objects with static X/Y,
1672         now that we use those.
1673         (findNextLineBreak): adjust static position
1674 
1675         * rendering/render_block.cpp (layoutBlockChildren): ditto.
1676 
1677         * rendering/render_box.cpp (containingBlockWidth): use usesLineWidth
1678         (position): activate static position logic
1679         (calcAbsoluteHorizontal): replace static position calculation
1680         (calcAbsoluteVertical): ditto.
1681 
1682         * rendering/render_object.cpp (removeChild): fix typo
1683         (usesLineWidth): merge usesLineWidth from WebCore
1684 
1685         * rendering/render_style.h (NonInheritedFlags::): originalDisplay member
1686         (setBitDefaults): initialize the above
1687         (originalDisplay/setOriginalDisplay): accessors
1688         (isDisplayReplacedType/isDisplayInlineType/isOriginalDisplayInlineType):
1689         helpers
1690 
1691 2004-10-18  Allan Sandfeld Jensen <kde@carewolf.com>
1692 
1693         * rendering/render_table.cpp: Merge layout fixes from Webcore
1694 
1695 2004-10-17  Stephan Kulow  <coolo@kde.org>
1696 
1697         * ecma/kjs_dom.cpp: adding patch by Richard Lärkäng to support IE
1698         extension insertAdjacentHTML (#33968)
1699 
1700 2004-10-16  Allan Sandfeld Jensen <kde@carewolf.com>
1701 
1702         * html/html_formimpl.cpp: Escape otherwise unencodable characters.
1703         Matches the behavior of Gecko.
1704 
1705 2004-10-15  Stephan Kulow  <coolo@kde.org>
1706 
1707         * rendering/render_form.cpp (updateFromElement): don't set assume <select>
1708         got items when we calculate a height for items (#87466)
1709 
1710         * css/html4.css: changing default horizontal margins for H1-H6 from
1711         auto to 0 (#91327)
1712 
1713 2004-10-15  Germain Garand  <germain@ebooksfrance.org>
1714 
1715         bring z-order to QScrollView
1716 
1717         * html/html_formimpl.cpp (defaultEventHandler): propagate events to
1718         QScrollView
1719 
1720         * khtmlview.{cpp,h}: QScrollview needs fast repaints. Fix
1721         background color of QFrames.
1722 
1723         * rendering/render_form.cpp (createListBox/TextAreaWidget):
1724         make those widgets z-ordered as well.
1725 
1726         * rendering/render_replaced.cpp (paintWidget): optimize painting by
1727         avoiding unnecessary background repaints and by using a shared
1728         paint buffer.
1729 
1730 2004-10-15  Germain Garand  <germain@ebooksfrance.org>
1731 
1732         display: compact fixes.
1733 
1734         * rendering/bidi.cpp: remove checks for display: compact,
1735         not needed anymore.
1736 
1737         * rendering/render_block.cpp (layoutBlockChildren):
1738         simpler implementation for compact display: do not insert the
1739         compact child within the next block anymore.
1740         Solves lot of problems with host blocks having non-inline children.
1741 
1742         * rendering/render_object.{cpp,h} (getVerticalPosition): add
1743         ability to compute vertical position with respect to other
1744         RenderObjects than parent.
1745 
1746 2004-10-14  David Faure  <faure@kde.org>
1747 
1748         * html/htmltokenizer.cpp (parseTag): Merged patch by John Sullivan (safari)
1749         to refuse skip more <script> tags depending on the value of type and language.
1750 
1751         * html/html_documentimpl.cpp (determineParseMode):
1752         When the document is loaded as text/html, even if xhtml doctype, activate case-insensitive
1753         ("htmlCompat") lookup of tags and attributes (but not in CSS parser). (#86446)
1754 
1755 2004-10-14  Allan Sandfeld Jensen <kde@carewolf.com>
1756         * rendering/*.*: WebCore merge/port of layouted->needsLayout
1757 
1758 2004-10-11  David Faure  <faure@kde.org>
1759 
1760         * xml/dom_nodeimpl.cpp (dispatchGenericEvent): Fixed stopPropagation
1761         when called from the target node itself (#90750).
1762 
1763 2004-10-11  Harri Porten  <porten@kde.org>
1764 
1765         * ecma/*.cpp: return an empty string (instead of null) when
1766         querying unset string properties
1767 
1768         * ecma/kjs_html.cpp: use full url for Image.src.
1769 
1770 2004-10-08  David Faure  <faure@kde.org>
1771 
1772         * ecma/kjs_html.cpp (KJS::HTMLCollection::tryGet):
1773         return Undefined instead of Null for out-of-range indices.
1774 
1775 2004-10-07  Germain Garand  <germain@ebooksfrance.org>
1776 
1777         * rendering/render_block.cpp
1778         (updateFirstLetter): move update of first-letter from addChildToFlow to
1779         setStyle/close. Better drilling logic. Use RenderTextFragment to
1780         correctly handle text-transform on first-letter(#76078).
1781         (addChildToFlow): ditto. fix display: block on pseudo-elements (#90917)
1782         (layoutBlockChildren): only clear if floats actually changed our
1783         height.
1784         * rendering/render_object.h (node): accessor to m_node
1785         * rendering/render_text.{cpp,h}: merge RenderTextFragment class
1786         * xml/dom_nodeimpl.h (setRenderer): accessor
1787 
1788 2004-10-07  Allan Sandfeld Jensen <kde@carewolf.com>
1789         * rendering/render_style.h:
1790         WebCore merge of paged media attributes (#68930).
1791         * rendering/render_block.cpp (paintObject):
1792         Break on page-break-before and -after.
1793         * rendering/render_canvas.{h,cpp}:
1794         Merge bestTruncatedAt from WebCore.
1795         * khtmlview.cpp (print):
1796         Use bestTruncatedAt for detect truncated pages.
1797 
1798 2004-10-07  David Faure  <faure@kde.org>
1799 
1800         * xml/dom_nodeimpl.cpp (dispatchWindowEvent): Emit load event for frames
1801         from there, to avoid bubbling (safari merge)
1802 
1803 2004-10-05  Rob Buis   <buis@kde.org>
1804         * render/render_form.{cpp,h}:
1805         Implemented onchange event generating for checkbox and radio buttons (fixes #51765).
1806 
1807 2004-10-05  David Faure  <faure@kde.org>
1808 
1809         * html/html_baseimpl.cpp (parseAttribute):
1810         Set event listener on frame element itself (fixes #72440)
1811         * xml/dom_docimpl.cpp (ownerElement): Safari merge.
1812         * html/html_documentimpl.cpp (close):
1813         Emit onload event for frames (famous gmail bug).
1814 
1815         * ecma/kjs_html.cpp (getValueProperty):
1816         Don't return null when innerText or innerHTML is empty.
1817 
1818 2004-10-04  David Faure  <faure@kde.org>
1819 
1820         * khtml_part.cpp (processObjectRequest):
1821         Fixed showing of iframe hidden with display=none (#84332).
1822 
1823 2004-09-16  Leo Savernik  <l.savernik@aon.at>
1824 
1825  * rendering/render_inline.{cpp,h} (paintOutline): removed.
1826  (paintOutlinePath): Paints an outline by following a path consisting of
1827  rectangular line segments.
1828  (appendIfNew): Append point if not contained at end.
1829  (reduceSpike): Reduce spikes.
1830  (reduceSegmentSeparators): Redoce segment separators.
1831  (appendPoint): Appends point with reductions.
1832  (collectHorizontalBoxCoordinates): Determines points for top-/bottommost line box.
1833  (lineBoxesDisjoint): Checks whether two line boxes don't share a common x-range.
1834  (collectVerticalBoxCoordinates): Determines points for left/right sides of line boxes.
1835  (linkBeginToEnd): Links the last point to the first one, reducing even more.
1836  (paintOutlines): Uses new painting outline algorithm.
1837  (kSwap): Swaps two variables (candidate for misc?)
1838  (bsOrientation): returns whether border side is horizontal/vertical.
1839  (newBorderSide): Determines new border side.
1840  (paintOutlineSegment): Paints a straight outline segment.
1841 
1842 2004-09-11  David Faure  <faure@kde.org>
1843 
1844         * khtml_part.cpp (defaultEncoding, encoding, createDecoder):
1845         Make default charset latin1 over HTTP, keep default to locale on other protocols.
1846 
1847 2004-09-02  Leo Savernik  <l.savernik@aon.at>
1848 
1849  * html_formimpl.{cpp,h} (HTMLTextAreaElementImpl::value):
1850         Only take text from RenderTextArea when it has been fully initialized.
1851         Mark it fully initialized when RenderTextArea has been initialized
1852         from the DOM.
1853         (HTMLTextAreaElementImpl::setValue): Mark element as initialized after
1854         setting.
1855         * render_form.cpp (RenderTextArea::setStyle):
1856         Block signals on call to QTextEdit::setAlignment. Otherwise, a bogus
1857         textChanged signal is emitted.
1858 
1859 2004-08-27  Germain Garand  <germain@ebooksfrance.org>
1860 
1861         scope: - more accurate completed() signal.
1862                - anchor jumps (#57360)
1863 
1864         * khtml_part.cpp (openURL): when restoring a previous scroll
1865         position on reload, avoid jumping to anchors.
1866         (gotoAnchor): keep jumping at least while we are parsing.
1867         (gotoAnchor): "top" and "" anchors mean top of document.
1868 
1869         (checkCompleted): entrust the view to emit completed on our behalf
1870         after any pending layout/repaint is done.
1871 
1872         * khtmlview.{cpp,h}: ditto
1873 
1874         * xml/dom_nodeimpl.cpp (getUpperLeftCorner/getLowerRightCorner):
1875         use inlineYPos for text objects (#57360 c.#17).
1876 
1877 2004-08-27  Leo Savernik  <l.savernik@aon.at>
1878 
1879         * html/html_tableimpl.cpp (HTMLTableCellElementImpl::attach):
1880         Fixed explicit setting of border to 0 width.
1881 
1882 2004-08-24  Leo Savernik  <l.savernik@aon.at>
1883 
1884         * ecma/kjs_html.{cpp,h} (HTMLDocument):
1885         Added Javascript-support for HTMLDocument.compatMode.
1886 
1887 2004-08-23  Leo Savernik  <l.savernik@aon.at>
1888 
1889         * rendering/render_layer.{cpp,h} (Marquee): Added a stop method for
1890         the ECMAScript invokation.
1891         Fixed starting and stopping and suspending by properly discriminating
1892         against them.
1893 
1894 2004-08-19  Germain Garand  <germain@ebooksfrance.org>
1895 
1896         * rendering/render_body.cpp (setStyle): only disallow fixed positioning
1897         on body, not relative/absolute (#77048, #76982).
1898 
1899         * rendering/render_box.cpp (paintBackgroundExtended): make sure backgrounds paint
1900         in the border box and not just in the padding box (WC merge - meyerweb.com/unsorted/bg-position.html).
1901 
1902 2004-08-18  Leo Savernik  <l.savernik@aon.at>
1903 
1904         * rendering/render_block.cpp (layoutBlock, layoutBlockChildren,
1905         layoutPositionedObject): Ensure that m_overflowWidth/m_overflowHeight
1906         get updated properly to include relatively positioned
1907         elements, but to exclude the overflow-area of clipped children.
1908 
1909         * rendering/render_box.cpp (repaint): Removed superfluous null ptr check.
1910         Use effectiveWidth/Height instead of overflowWidth/Height.
1911 
1912         * rendering/render_canvas.cpp (docHeight): Fixed superfluous vertical
1913         scrollbars on clipped children.
1914         (docWidth): Fixed superfluous horizontal scrollbars on clipped children.
1915 
1916         * rendering/render_flow.cpp (repaint):
1917         Use effectiveWidth/Height instead of overflowWidth/Height.
1918 
1919         * rendering/render_object.h: Added effectiveWidth/Height.
1920         Made hasClip and hasOverflowClip const.
1921 
1922 2004-08-05  Germain Garand  <germain@ebooksfrance.org>
1923 
1924         * rendering/render_block.cpp (layoutBlockChildren): when positionning floats,
1925         use the margin tracking variables, and not the prevFlow -there might be
1926         self-collapsing blocks in between (#85150).
1927         (calcMinMaxWidth): better calculation merged from WebCore.  Fixes a few testcases.
1928 
1929         * rendering/render_object.h (collapsedMarginTop/Bottom): don't avoid max(Top|Bottom)Margin,
1930         they are virtuals reimplemented for RenderBlock.
1931 
1932         * rendering/render_object.cpp (createObject): do not set the style before
1933         the renderer is assigned to a node. Fixes Marquee initial layout
1934         (unsorted/RESOLVED-57087-1342.html) failing because of 'element()->renderer() == this' checks.
1935 
1936         * xml/dom_elementimpl.cpp (attach): ditto
1937 
1938 2004-08-04  Germain Garand <germain@ebooksfrance.org>
1939 
1940         * khtmlview.cpp (resizeEvent): take care, in case we are shrinking,
1941         not to pass past the content limits yet. Next layout will calculate
1942         if we positively need scrollbars or not (#84798).
1943 
1944         * rendering/render_canvas.cpp (layout): remove scrollbar flickering turnarounds.
1945         instead, account for a scrollbar hysteresis level when sizing the content (#61730).
1946 
1947 2004-07-30  Jean-Baptiste Mardelle <bj@altern.org>
1948         * khtmlview.{cpp,h} (displayAccessKeys): When accesskeys are activated,
1949         small tooltips appear showing existing accesskeys on the page.
1950 
1951 2004-07-28  Stephan Kulow  <coolo@kde.org>
1952 
1953         * html/html_miscimpl.cpp (getNamedItem): more investigation on tags returned
1954         by name attribute in document.all
1955 
1956 2004-07-28  Leo Savernik  <l.savernik@aon.at>
1957 
1958         * khtmlview.{cpp,h} (KHTMLToolTip::maybeTip): Query <area> elements
1959         of image maps.
1960         (dispatchMouseEvent): Added parameter innerNonSharedNode.
1961         * khtml_part.{cpp,h}: Added method nonSharedNodeUnderMouse.
1962         * xml/dom_docimpl.cpp (prepareMouseEvent): Initialize
1963         innerNonSharedNode in DOM mouse event.
1964         * xml/dom_nodeimpl.h: Added innerNonSharedNode to
1965         NodeImpl::MouseEvent.
1966         * html/html_imageimpl.h: Added cachedRegion() for being able to
1967         retrieve the region in KHTMLToolTip.
1968 
1969 2004-07-20  Stephan Kulow  <coolo@kde.org>
1970 
1971         * css/parser.y: catching imports that come between rules.
1972         They have to be ignored (css1/test11.htm)
1973 
1974 2004-07-14 Jean-Baptiste Mardelle <bj@altern.org>
1975         * khtmlview.{cpp,h}: Accesskeys now activated when pressing & releasing
1976         the crtl key (#83053).
1977 
1978 2004-07-12 Jean-Baptiste Mardelle <bj@altern.org>
1979         * html/html_formimpl.{h,cpp}: Make form labels clickable (#59489)
1980         * khtmlview.cpp (focusNodeWithAccessKey): Make accesskeys work for labels
1981 
1982 2004-07-12 Germain Garand <germain@ebooksfrance.org>
1983 
1984         * ecma/kjs_navigator.{h,cpp} (getValueProperty):
1985         implement navigator.productSub. Fixes most
1986         instances of #68271
1987 
1988 2004-07-10 Germain Garand <germain@ebooksfrance.org>
1989 
1990         * rendering/render_layer.cpp (calculateClipRects):
1991         absolutely positioned objects must update the overflowClipRect
1992         passed to relatively positioned child layers to match the
1993         posClipRect in effect (#67665/#72994).
1994 
1995 2004-06-30  Tobias Anton  <anton@stud.fbi.fh-darmstadt.de>
1996         * khtmlview.{cpp,h}:
1997         integrated keyboard tabbing with mouse scrolling.
1998         Hitting tab skips at most one page, but respects
1999         the tabindex ordering of the document.
2000         If the document has been scrolled by the mouse before,
2001         "tab" now selects the first/last element in the visible
2002         area of the page.
2003 
2004 2004-06-26  Germain Garand  <germain@ebooksfrance.org>
2005 
2006         * css/html4.css:
2007         - do not set vertical-align on the table: it breaks inline-table's
2008         default (baseline). cf.webcore/fast/inline-block/001.html
2009         - default all of tbody/tfoot/thead to 'vertical-align: middle'
2010         as per specification.
2011 
2012         * rendering/render_object.cpp:
2013         (getVerticalPosition): fix inverted logic. cf.unsorted/74399.html
2014         (lineHeight/baselinePosition): inline-blocks behaves like replaced elements
2015         only after they are layouted.
2016 
2017         * rendering/render_table.h (position): remove empty reimplementation:
2018         inline-tables need positioning. cf.webcore/fast/inline-block/001.html
2019 
2020         * rendering/render_box.cpp (calcAbsoluteHorizontal): subtract p/b width
2021         when shrinking-to-fit, otherwise it gets accounted for twice.
2022 
2023 2004-06-22  Zack Rusin  <zack@kde.org>
2024 
2025         * ecma/kjs_events.cpp (JSLazyEventListener): Adding a destructor
2026         which is now needed since Niko's eventlistener changes make
2027         jseventlistener destructor not remove the listener from
2028         jsEventListeners
2029 
2030 2004-06-22  Germain Garand  <germain@ebooksfrance.org>
2031 
2032         Scope: Inline-blocks inlining. Merge Webcore improvements for
2033         Fieldset/Legend
2034 
2035         * css/html4.css: Legend => display: block.
2036 
2037         * html/html_formimpl.{cpp,h} (addChild): remove.
2038 
2039         * rendering/render_block.cpp:
2040         (setStyle): do not overwrite inline status
2041         (makeChildrenNonInline): change assert
2042         (layoutBlock): account for inline-blocks
2043         (layoutBlockChildren): ditto
2044         (clearFloats): ditto. bail out.
2045 
2046         * rendering/render_box.cpp:
2047         (calcWidth): fix logic. cf.css1/test43.htm
2048         (calcHeight): fix logic
2049 
2050         * rendering/render_form.cpp:
2051         (layoutLegend): merges from WebCore-125
2052         (findLegend): ditto
2053         (paintBoxDecorations): ditto
2054         (setStyle): cf.webcore/fast/forms/007.html
2055 
2056 2004-06-22  Germain Garand  <germain@ebooksfrance.org>
2057 
2058         Scope: avoid leaking placeholder InlineBoxes. Cleanups.
2059 
2060         * rendering/bidi.cpp (Bidinext): simplified logic. Do not return each
2061         InlineFlow twice.
2062         (layoutInlineChildren): clear InlineBoxes on relayout.
2063 
2064         * rendering/render_object.{cpp,h}:
2065         (deleteInlineBoxes): new virtual method.
2066 
2067         * rendering/render_box.{cpp,h}: added m_placeHolderBox member.
2068         (createInlineBox/deleteInlineBoxes): reimplemented.
2069 
2070         * rendering/render_flow.{cpp,h}:
2071         (createInlineBox/deleteInlineBoxes): ditto.
2072 
2073         * rendering/render_replaced.cpp (detach): call deleteLineBoxes
2074 
2075         * rendering/render_text.{cpp,h} (deleteInlineBoxes): reimplemented, replacing
2076         deleteTextBoxes
2077         (~RenderText): no need to clear lineboxes twice.
2078 
2079 2004-06-13  Leo Savernik  <l.savernik@aon.at>
2080 
2081         * khtml_part.cpp: (clear) Stopping marquees.
2082         * css/cssparser.cpp: (parserValue) Parse overflow: marquee.
2083         Inserted CSS3 Properties section.
2084         Moved -khtml-user-input to CSS3 Properties.
2085         Added parsing of -khtml-marquee{,-direction,-increment,-style,-repetition,
2086         -speed}.
2087         * css/cssproperties.{c,h}: Regenerated.
2088         * css/cssproperties.in: Added -khtml-marquee{,-direction,-increment,
2089         -style,-repetition,     -speed} keywords.
2090         * css/cssstyleselector: (applyRule) Handle overflow: marquee.
2091         Handle applying of -khtml-marquee{,-direction,-increment,-style,-repetition,
2092         -speed}.
2093         * css/cssvalues.{c,h}: Regenerated.
2094         * css/cssvalues.in: Added marquee, forwards, backwards, ahead, reverse,
2095         up, down, slow, fast, infinite, slide, alternate, and unfurl keywords.
2096         * css/html4.css: Updated rule to make marquee behave like marquee.
2097         * html/html_blockimpl.{cpp,h}: Added class HTMLMarqueeElementImpl.
2098         * html/html_elementimpl.cpp: (addCSSLength) Fixed adding numeric lengths
2099         without unit.
2100         * html/html_parser.cpp: (getElement) Made ID_MARQUEE generate an
2101         HTMLMarqueeElement.
2102         * htmlattrs.{c,h}: Regenerated.
2103         * htmlattrs.in: Added behavior, direction, loop, scrollamount, scrolldelay,
2104         truespeed attribute keywords.
2105         * rendering/bidi.cpp: (RenderBlock::findNextLineBreak): marquee-related extensions.
2106         * rendering/render_block.{cpp,h}: Updated lowestPosition, rightmostPosition, added
2107         leftmostPosition.
2108         * rendering/render_box.{cpp,h}: Updated lowestPosition, rightmostPosition, added
2109         leftmostPosition.
2110         (setStyle) Inserted call to styleChanged of layer.
2111         (calcWidth) Used containing block's direction when aligning this box.
2112         (calcWidthUsing) Used centralized sizesToMaxWidth() method.
2113         (calcHorizontalMargins) Margin fix for inline blocks.
2114         * rendering/render_flow.{cpp,h}: Updated lowestPosition, rightmostPosition, added
2115         leftmostPosition.
2116         * rendering/render_layer.{cpp,h}: Added Marquee class which takes care of
2117         the shifting operations.
2118         Added styleChanged and suspendMarquees methods.
2119         (updateLayerPositions) Inserted call to updateMarqueePosition.
2120         (scrollToOffset) Took care of marquee.
2121         * rendering/render_object.{cpp,h}: Updated lowestPosition, rightmostPosition,
2122         added leftmostPosition.
2123         Added isHTMLMarquee, sizesToMaxWidth, and isCompact.
2124         * rendering/render_style.{cpp,h}: Added CSS3NonInheritedData structure.
2125         Added StyleMarqueeData. Added OMARQUEE to EOverflow.
2126         Added EMarqueeBehavior, EMarqueeDirection.
2127         Added CSS3 Getter Methods section.
2128         Moved userInput to CSS3 Getter Methods section.
2129         Added marqueeIncrement, marqueeSpeed, marqueeLoopCount,
2130         marqueeBehavior, marqueeDirection.
2131         (RenderStyle::RenderStyle) Instantiated CSS3NonInheritedData there.
2132         Added respective setters to new CSS3 Setters section.
2133         * rendering/render_text.{cpp,h}: Removed rightmostPosition.
2134         * xml/dom_docimpl.cpp: (createHTMLElement) Made it return a
2135         HTMLMarqueeElement for ID_MARQUEE.
2136 
2137 2004-06-10  Zack Rusin  <zack@kde.org>
2138 
2139         * xml/dom_textimpl.cpp (escapeHTML): Move from dom_elementimpl.cpp,
2140         and use it to espace text nodes in here
2141         * xml/dom_elementimpl.cpp: propely handle attributes,
2142         * dom/dom_doc.cpp (toHTML): deprecate in favor of toString and
2143         implement in terms of toString,
2144         * dom/html_elementimpl.h (innerHTML): implement in terms of
2145         toString,
2146         * xml/dom_nodeimpl.{h,cpp}: remove the toHTML and recursive_toHTML
2147         methods,
2148 
2149 2004-06-09  Zack Rusin  <zack@kde.org>
2150 
2151         * xml/dom_nodeimpl.h, xml/dom_xmlimpl.{h,cpp},
2152         xml/dom_textimpl.{h,cpp}, xml/dom_elementimpl.{h,cpp},
2153         xml/dom_docimpl.{h,cpp}, html/html_elementimpl.{h,cpp},
2154         dom/dom_doc.{h,cpp} : Merging in toString method which serializes
2155         the DOM tree back to a string
2156 
2157 2004-06-09  Zack Rusin  <zack@kde.org>
2158 
2159         * xml/xml_tokenizer.{h,cpp}: adding bool isWaitingForScripts()
2160         const method to tokenizer interface which should return true if
2161         the tokenizer is waiting for scripts to finish. Adding the method
2162         to XMLTokenizer,
2163         * html/htmltokenizer.{h,cpp}: adding the isWaitingForScripts
2164         method,
2165         * xml/dom_docimpl.cpp (close): On an explicit document.close()
2166         don't destroy the  tokenizer if it's still waiting on external
2167         scripts
2168 
2169 2004-06-09  Zack Rusin  <zack@kde.org>
2170 
2171         * ecma/kjs_events.{h,cpp}: made the listener in jseventlistener an
2172         object instead of a value and switch its function accordingly,
2173         adding JSLazyEventListener which delays evaluation of event
2174         handlers,
2175         * ecma/kjs_window.{h,cpp}: adding getJSLazyEventListener which
2176         creates lazy listeners,
2177         * ecma/kjs_dom.cpp (getListener): switched to use lazy listeners,
2178         * ecma/kjs_html.cpp (getValueProperty): adding check of whether
2179         listener implementation is in place (listener is valid),
2180         * ecma/kjs_proxy.cpp (createHTMLEventHandler): switched to use
2181         getJSLazyEventListener,
2182 
2183 2004-06-08  Zack Rusin  <zack@kde.org>
2184 
2185         * html/htmltokenizer.cpp (parseEntity): Fix to make 8-character
2186         hexadecimal entities work in khtml from Darin Adler. Testcase at
2187         http://www.alanwood.net/unicode/deseret.html
2188 
2189 2004-06-06  Zack Rusin  <zack@kde.org>
2190 
2191         * xml/dom_docimpl.cpp (getId): do html lookup if specified even if not
2192         in a html document since elements can be in xhtml the namespace
2193 
2194         * xml/dom_docimpl.h (hasPendingSheets): adding function returning true,
2195         if stylesheets are currently loading for document.
2196 
2197         * xml/xml_tokenizer.cpp: Merging table hack for XML parsing from
2198         Safari, merging in character changes, but with a fix which we
2199         need, delaying attaching of text nodes till parsing finishes (
2200         also merged from the Safari team), adding FOUC prevention code.
2201 
2202 2004-06-02  Zack Rusin  <zack@kde.org>
2203 
2204         * xml/dom_xmlimpl.cpp: Correctly handle stylesheet loading in
2205         XML documents (try to avoid FOUC)
2206 
2207         * xml/xml_tokenizer.{h,cpp}: Added pushNode(), popNode() and
2208         currenNode() methods. Removed m_currentNode memeber and switched
2209         node construction to a stack based ones. Try to attach to the
2210         parent of the tag which encloses us if it can't handle children.
2211 
2212 2004-05-28  Leo Savernik  <l.savernik@aon.at>
2213 
2214         * rendering/render_object.cpp: (drawBorder) Make use of Mozilla's
2215         border-bevel coloring algorithm.
2216 
2217 2004-05-14  Leo Savernik  <l.savernik@aon.at>
2218 
2219         * rendering/render_table.cpp: (RenderTableCell::paintBoxDecorations)
2220         Make it unconditionally paint background on empty table-cells
2221         with empty-cells:hide in quirks mode.
2222 
2223 2004-05-13  Leo Savernik  <l.savernik@aon.at>
2224 
2225         * rendering/font.cpp: (drawDecoration)
2226         rendering/render_line.cpp: (InlineFlowBox::paintDecoration)
2227         Increased width of text decoration by one.
2228 
2229 2004-05-12  Leo Savernik  <l.savernik@aon.at>
2230 
2231         * css/cssstyleselector.cpp: (applyRule) Make borders be at least one
2232         pixel wide between 1pt and 0.025pt. This makes konqueror's behaviour
2233         more compatible to Mozilla's.
2234 
2235 2004-05-09  Leo Savernik  <l.savernik@aon.at>
2236 
2237         * rendering/font.cpp: (drawDecoration) Honored line thickness.
2238         Used fillRect instead of drawLine.
2239 
2240         * rendering/render_layer.cpp: (paintLayer) Added invokation of
2241         PaintActionSelection phase when there is a selection.
2242 
2243         * rendering/render_line.cpp: (InlineFlowBox::paintDecorations)
2244         Honored line thickness. Used fillRect instead of drawLine.
2245         Actually use it.
2246 
2247         * rendering/render_text.cpp: (paint) Stopped drawing text in PaintActionSelection.
2248         Stopped drawing selection in any other phase.
2249         Make it draw text-decorations only in quirks mode.
2250 
2251 2004-05-09  Leo Savernik  <l.savernik@aon.at>
2252 
2253         * rendering/render_block.cpp: (paint, paintObject, paintFloat)
2254         Introduced maximalOutlineSize, PaintActionOutline phase.
2255 
2256         * rendering/render_box.cpp: (setStyle) Updating maximumOutlineSize.
2257 
2258         * rendering/render_canvas.{cpp,h}: Added maximumOutlineSize
2259         member, setter, and getter.
2260 
2261         * rendering/render_image.cpp: (paint) Added handling new
2262         PaintActionOutline phase.
2263 
2264         * rendering/render_inline.{cpp,h}: Moved paintOutline{s,} from RenderText
2265         to RenderInline.
2266         (paint) Handled PaintActionOutline phase.
2267 
2268         * rendering/render_layer.cpp: (paintLayer) Added invokation of
2269         PaintActionOutline phase.
2270 
2271         * rendering/render_object.{cpp,h}: Added PaintActionOutline phase and
2272         maximumOutlineSize.
2273 
2274         * rendering/render_table.cpp: Added code for handling outlines.
2275 
2276         * rendering/render_text.{cpp,h}: (paint) Removed outline painting
2277         code from there.
2278         Moved paintOutline{s,} to RenderInline.
2279 
2280         * xml/dom_nodeimpl.cpp: (NodeBaseImpl::setFocus) Fixed recursive
2281         application of focus to child elements now that outline correctly
2282         handles block elements.
2283 
2284 2004-05-06  Tobias Anton  <anton@stud.fbi.fh-darmstadt.de>
2285 
2286         * html/htmlparser.cpp (class KHTMLParser): use setCurrent() after reset()
2287         to avoid a memleak whenever the parser is used on a DocumentFragment.
2288 
2289 2004-05-04  Leo Savernik  <l.savernik@aon.at>
2290 
2291         * css/cssparser.cpp: (parseValue) Updated order of border values to
2292         accomodate border precedence.
2293         Made all colors accept transparent.
2294 
2295         * css/cssstyleselector.cpp: (applyRule) Fixed recognition of transparent
2296         colors so that BorderValue::isTransparent returns true for border colors.
2297 
2298         * css/cssvalues.in:  Updated order of border values to accomodate border
2299         precedence.
2300 
2301         * rendering/render_form.cpp: (paintBorderMinusLegend) Honor new border
2302         precedence.
2303 
2304         * rendering/render_object.cpp: (drawBorder) Inserted forgotten break.
2305         (paintBorder) Make border-color: transparent work like in WebCore.
2306         Honor new border precedence.
2307 
2308         * rendering/render_object.h: Introduced PaintActionCollapsedTableBorders.
2309 
2310         * rendering/render_style.h: Updated EBorderStyle to accomodate border
2311         precedence.
2312         (class BorderValue) Merged nonZero and isTransparent to make border
2313         drawing code work.
2314         Merged lots of stuff needed for border-collapse.
2315         Set initial value of empty-cells to hide (to match NN, Moz, IE behaviour).
2316 
2317         * rendering/render_table.cpp: (RenderTable::RenderTable,
2318         RenderTable::setStyle) Merged small adaptations for border-collapse.
2319         (RenderTable::paint) Merged border-collapse paint code from WebCore.
2320         (class RenderTable) Merged new paintBoxDecorations code.
2321         (class RenderTableCell) Merged lots of helper classes from WebCore.
2322         (RenderTableSection::paint) Fixed cutting off of borders spilling into
2323         neighbour cells.
2324         (RenderTableCell::paint) Merged paint code from WebCore.
2325 
2326         * rendering/render_table.h: Added prototypes/member variables.
2327 
2328 2004-04-18  Leo Savernik  <l.savernik@aon.at>
2329 
2330         * khtml_part.cpp: (extendSelectionTo): Fixed deselection of whole
2331         word/line at line boundaries in ExtendByWord/ExtendByLine mode.
2332 
2333 2004-04-18  Leo Savernik  <l.savernik@aon.at>
2334 
2335         * khtml_part.cpp: Merged firstRunAt, lastRunAt from WebCore.
2336         (khtmlMouse{Press,DoubleClick,Move,Release}Event): Support extending selection
2337         by word and by line as mandated by the KDE style guide.
2338         (khtmlMousePressDoubleClickEvent): Fixed automatic scrolling when mouse
2339         moves off the view while selecting.
2340         (extendSelection): Make it support extending by line by merging
2341         WebCore's startAndEndLineNodesIncludingNode into it.
2342         Fixed issue with double word selection when between two words.
2343 
2344         * khtmlpart_p.h: added m_initialNode, m_initialOffset and
2345         m_extendMode.
2346 
2347         * khtmlview.cpp (extendSelection): Initialize all relevant fields for selection.
2348 
2349         * rendering/render_text.h: Merged inlineTextBoxes function, needed by
2350         firstRunAt, lastRunAt.
2351         (findInlineTextBox): Make it public.
2352 
2353 2004-04-15  Leo Savernik  <l.savernik@aon.at>
2354 
2355         * khtml_caret{.cpp,_p.h}: Vast changes.
2356         Added classes CaretBox, CaretBoxLine, CaretBoxIterator,
2357         EditableCaretBoxIterator. Changed every other class.
2358 
2359         * khtmlview.[cpp,h}: (class KHTMLView) Adapt to khtml_caret* changes.
2360         (KHTMLToolTip::maybeTip) Save tooltip position instead of recalculating it.
2361 
2362         * rendering/render_{inline,box}.{cpp,h}: (Render{Box,Inline}::caretPos)
2363         Handle outside caret positions.
2364 
2365         * rendering/render_{image,br}.{cpp,h}: Remove superfluous
2366         Render{Image,BR}::caretPos.
2367 
2368         * rendering/render_line.h: (InlineBox::maxOffset) Return 0 instead of 1.
2369 
2370         * rendering/render_object.{cpp,h}: (RenderObject::caretPos) Introduce
2371         flags to denote outside positions.
2372         Add RenderObject::isRenderReplaced.
2373 
2374         * rendering/render_replaced.h: Add RenderReplaced::isRenderReplaced
2375         returning true.
2376 
2377         * rendering/render_text.{cpp,h}: (RenderText::caretPos) Handle flags.
2378 
2379         * xml/dom_nodeimpl.{cpp,h}: (NodeImpl::getCaret) Handle DOM Range
2380         positions.
2381         Remove unused NodeImpl::{prev,next}LeafNode.
2382         (NodeImpl::maxOffset) Return child node count instead of 1 for element
2383         nodes.
2384         (NodeBaseImpl::childNode): Don't crash on out-of-bounds offsets.
2385 
2386 2004-04-02  Dirk Mueller  <mueller@kde.org>
2387 
2388         * misc/loader.cpp (slotFinished): store suggestedfilename for later.
2389         (movieResize): start with the notify. Experimental.
2390 
2391         * rendering/render_layer.cpp (nodeAtPoint): make sure we set
2392         the urlelement to the innermost urlelement. otherwise
2393         overURL and the actual url followed during click get out of sync.
2394 
2395 2004-03-23  Dirk Mueller  <mueller@kde.org>
2396 
2397         * khtml_part.cpp (checkLinkSecurity): Be stricter.
2398 
2399         * rendering/render_frames.cpp (updateWidget): readd the recursion protection.
2400 
2401 2004-03-21  Arend van Beelen jr. <arend@auton.nl>
2402         * khtml_part.cpp/.h: if text in a link is highlighted, the link now receives
2403         focus.
2404 
2405         * khtmlview.cpp: made type-ahead find more aggressive by grabbing the keyboard
2406         when active, this way it temporarily overrules single-letter shortcuts as seen
2407         in KMail. Note it immediately releases the keyboard when it looses focus.
2408 
2409 2004-03-20  Arend van Beelen jr. <arend@auton.nl>
2410         * khtml_part.cpp/.h: finished new searching API.
2411 
2412         * khtmlview.cpp/.h: implemented type-ahead find (#51259).
2413 
2414 2004-03-21  Dirk Mueller  <mueller@kde.org>
2415 
2416         * html/html_formimpl.cpp (encoding): fix submission of forms
2417         without file upload (#77382).
2418 
2419         * css/css_renderstyledeclarationimpl.cpp (getPropertyCSSValue): fix crash (#77324).
2420 
2421 2004-03-20  Dirk Mueller  <mueller@kde.org>
2422 
2423         * xml/dom_docimpl.cpp (processHttpEquiv): improve refresh handling for negative and
2424         slightly malformed delays (#78049)
2425 
2426 2004-03-18  Lubos Lunak <l.lunak@kde.org>
2427 
2428         * khtmlview.cpp, xml/dom_docimpl.cpp: accesskey attribute support
2429 
2430 2004-03-03  Dirk Mueller  <mueller@kde.org>
2431 
2432         * html/htmlparser.cpp (getElement): try to avoid nesting <nobr> and <wbr>,
2433         but don't forbit it.
2434 
2435 2004-03-01  Dirk Mueller  <mueller@kde.org>
2436 
2437         * rendering/render_text.cpp (calcMinMaxWidth): some more hacks for white-space !=
2438         normal.
2439 
2440         * rendering/render_object.cpp (drawBorder): use drawPixel directly.
2441         turns out to be more reliable and equally fast (#62296).
2442 
2443 2004-02-29  Dirk Mueller  <mueller@kde.org>
2444 
2445         * html/html_documentimpl.cpp (determineParseMode): treat xhtml transitional
2446         that way (#76449).
2447 
2448         * rendering/bidi.cpp (findNextLineBreak): make sure we move
2449         replaced elements, that don't fit on a line below the floats (#74609).
2450 
2451         * rendering/render_replaced.cpp (calcMinMaxWidth): respect
2452         padding and borders (#65788).
2453 
2454         * rendering/render_form.h (RenderFormElement): make sure we never
2455         end up getting a border or padding for form elements.
2456 
2457         * rendering/render_frames.cpp (partLoadingErrorNotify): don't trigger
2458         slotPartLoadingErrorNotify twice.
2459 
2460         (slotPartLoadingErrorNotify): avoid KMessageBox deletion race.
2461 
2462         * misc/loader_jpeg.cpp: fix incredibly rare lockup in jpeg decoder.
2463 
2464 2004-02-28  Germain Garand  <germain@ebooksfrance.org>
2465 
2466         * rendering/render_block.cpp (layoutBlockChildren):
2467         - displace the check for if we need to relayout our childs
2468         because of a float. It was outside of loop (#71445)
2469         - remove check for floatBottom() > m_y has it seems outdated.
2470 
2471 2004-02-25  Dirk Mueller  <mueller@kde.org>
2472 
2473         * rendering/render_text.h (class InlineTextBox): rename width(int)
2474         to widthFromStart(int), since it otherwise clashes with upcoming
2475         Safari merges.
2476 
2477         * rendering/render_image.cpp (notifyFinished): forward the
2478         notifyFinished call to the inherited class.
2479 
2480         * rendering/render_inline.h (class RenderInline):
2481         constructor/destructor cleanup.
2482 
2483         * misc/htmlattrs.h: don't export getAttrName symbol.
2484 
2485         * rendering/render_object.h (class RenderObject): move background
2486         repaint handling over here, since TableSections don't inherit RenderBox,
2487         but still have a background.
2488 
2489         * khtml_settings.cc (init)/html4.css: MediumFontSize up to 12. Form elements
2490         get font-size: small instead.
2491 
2492 2004-02-24  Dirk Mueller  <mueller@kde.org>
2493 
2494         * ecma/xmlhttprequest.h/cpp: Implement asynchronous interface
2495         enough to pass the tests on http://www.mozilla.org/xmlextras/tests.html
2496 
2497         * xml/dom2_eventsimpl.h (EventImpl): rename KHTML_KEYUP/DOWN_EVENT
2498         to KEYUP/DOWN_EVENT. Add events needed for XMLHttpRequest.
2499 
2500         * rendering/render_object.h (class RenderObject): introduce a PaintInfo
2501         struct that contains the information necessary for all those paint..() methods.
2502         Requires much less parameters to pass and is therefore faster. While being
2503         at it, eliminate the unnecessary virtual method paintObject.
2504 
2505 2004-02-23  Stephan Kulow  <coolo@kde.org>
2506 
2507         * rendering/render_inline.cpp: check if the containingBlock is displayed
2508         as block before using it as continuation (#73573)
2509 
2510 2004-02-22  Frerich Raabe  <raabe@kde.org>
2511 
2512         * khtml_part.cpp/.h (openURL): In case the call is a reload, do a stat
2513         on the user-defined stylesheet and reload it in case it changed in
2514         the meanwhile (#39962).
2515         * khtmlpart_p.h (class KHTMLPartPrivate): Added
2516         m_userStyleSheetLastModified variable which keeps track of the
2517         mtime of the user-defined sheet.
2518 
2519 2004-02-20  Germain Garand  <germain@ebooksfrance.org>
2520 
2521         * rendering/bidi.cpp (operator ++): skip empty RenderText.
2522         Remove unused forcedMinWidth cruft.
2523 
2524         * rendering/render_block.cpp (addChildToFlow): keep the refcount
2525         high for first-letter affected text while we manipulate it.
2526 
2527         * rendering/render_text.cpp: remove unused forcedMinWidth cruft.
2528 
2529 2004-02-20  Frerich Raabe  <raabe@kde.org>
2530 
2531         * misc/loader.cpp (DOCLOADER_SECCHECK): Adjusted the macro so that it
2532         takes a bool parameter which indicates whether it should check for
2533         invalid redirections.
2534         (requestImage, requestScript): Use DOCLOADER_SECCHECK(true) now
2535         * misc/loader.cpp/.h (requestStyleSheet): Added parameter which tells
2536         whether the given URL references the user-defined stylesheet. If so,
2537         use DOCLOADER_SECCHECK(false) to disable the check for invalid
2538         redirections (it's not useful for the user-defined URL).
2539         * khtml_part.cpp (PartStyleSheetLoader ctor): pass true to
2540         DocLoader::requestStyleSheet to indicate that the user-stylesheet is
2541         loaded. Fixes seemingly ignored user-defined stylesheet. (#69697)
2542 
2543 2004-02-17  Germain Garand  <germain@ebooksfrance.org>
2544 
2545         * rendering/render_block.cpp (addChildToFlow): first-letter:
2546         better fix for pure punctuation/single letter text childs.
2547         Fixes an invalid reference crash (#70546).
2548 
2549 2004-02-16  Germain Garand  <germain@ebooksfrance.org>
2550 
2551         * css/cssstyleselector.cpp (styleForElement): pseudo-elements
2552         use their subject's style as parentStyle -e.g: 'inherit' value.
2553         (adjustRenderStyle): mutate pseudo style display to block if
2554         needed (floating or ps. content) as allowed by recent CSS2.1
2555         draft.
2556 
2557 2004-02-16  Germain Garand  <germain@ebooksfrance.org>
2558 
2559         * rendering/render_block.cpp (setStyle): skip pseudo
2560         styles when updating anonymous blocks'style (#73978).
2561         (addChildToFlow):don't crash when installing
2562         first-letter in anonymous blocks or when remaining
2563         content is empty.
2564 
2565         * rendering/render_container.cpp (updatePseudoChild):
2566         always regenerate :before/:after content holding
2567         :first-letter.
2568 
2569         * rendering/render_style.cpp (addPseudoStyle): don't use
2570         RenderStyle's copy constructor for pseudo-elements.
2571 
2572 2004-02-16  Stephan Kulow  <coolo@kde.org>
2573 
2574         * rendering/render_container.cpp (updatePseudoChild): merge more
2575         code for content generated elements
2576 
2577 2004-02-15  Zack Rusin  <zack@kde.org>
2578 
2579         *  xml/dom2_viewsimpl.cpp (getComputedStyle): implementing
2580         26311
2581         * css/css_renderstyledeclarationimpl : implementing
2582         CSSStyleDeclarationImpl which maps the properties
2583         to the rendering tree
2584         * css/css_valueimpl.h: changing some methods to virtual
2585         in order to overload them in RenderStyleDeclarationImpl
2586 
2587 2004-02-15  Dirk Mueller  <mueller@kde.org>
2588 
2589         * css/css_base.cpp (specificity): fix detection of the *
2590         selector (#73214).
2591 
2592 2004-02-13  Zack Rusin  <zack@kde.org>
2593 
2594         * xml/xml_tokenizer (XMLIncrementalSource): implementing
2595         incremental XML parsing
2596 
2597         * xml/dom_nodeimpl.h : removing superfluous semi-colons
2598 
2599 2004-02-11  Germain Garand  <germain@ebooksfrance.org>
2600 
2601         Activate merged alternate code path for inline boxes
2602         construction/painting. Whitespace count consistency.
2603 
2604         * rendering/bidi.cpp: merge computeHorizontalPositionsForLine
2605         to get properly constructed InlineFlowBoxes.
2606         (Bidinext): merge skipInline bool to avoid leak.
2607         (RenderBlock::bidiReorderLine): handle whitespace count through
2608         category separator_Space
2609         (RenderBlock::findNextLineBreak): account for empty InlineFlow
2610 
2611         * rendering/font.cpp (drawText, width): whitespace handling
2612 
2613         * rendering/render_box.cpp (position): partial merge
2614 
2615         * rendering/render_line.cpp (placeBoxesVertically):
2616         - line-height on block level means minimum line-height for children.
2617         - Don't enlarge boxes to fit font, only shrink (CSS2:10.8.1)
2618         - Add font's half-leading to top and bottom to avoid nodeAtPoint gaps.
2619           Use fm.height(): WebCore's QFontMetrics includes the baseline in descent
2620 
2621         * rendering/render_object.cpp (offsetLeft/offsetTop): adjust
2622         (hasStaticX/hasStaticY): merged non-virtual methods
2623 
2624         * rendering/render_replaced.cpp (position): do not add margin anymore
2625 
2626         * rendering/render_text.cpp: whitespace handling. No more p/b/m.
2627 
2628 2004-02-10  Dirk Mueller  <mueller@kde.org>
2629 
2630         * implement support for pageX/pageY. fix layerX/layerY, which was horrible broken
2631         due to its (wrong) assumption that clientX is the same as pageX (#74718), (#70290).
2632 
2633         * dom/dom2_events.cpp (pageX/Y): add bindings.
2634 
2635         * html/htmlparser.cpp (insertNode): argh. regression fix (http://www.cygwin.com) (#74329).
2636 
2637 2004-02-09  David Faure  <faure@kde.org>
2638 
2639         * ecma/kjs_events.h (clear): set listener object to Null(), not to an invalid Object(),
2640         which will crash when the listener is stored in another frame (#61467). Maybe it would be better
2641         to really remove the event listener in this case, but this is hard to do efficiently.
2642 
2643 2004-02-09  Stephan Kulow  <coolo@kde.org>
2644 
2645         * css/html4.css: use text-align: left for all input elements
2646 
2647 2004-02-09  David Faure  <faure@kde.org>
2648 
2649         * ecma/kjs_html.cpp (getValueProperty): s/getString/String/ for meta attributes,
2650         fixes http://www.accorhotels.com/fr/fidelisation/travelplus/tp_pros_adh_form.shtml
2651 
2652 2004-02-07  Harri Porten  <porten@kde.org>
2653 
2654         * rendering/render_layer.cpp (sortByZOrder): compile fix for non-gcc
2655         compilers
2656 
2657 2004-02-04  Zack Rusin  <zack@kde.org>
2658 
2659         * dom/dom2_traversal : Making NodeFilter( NodeFilterImpl* )
2660         constructor public. Making setFilter method take arg by
2661         reference
2662         * dom/dom_doc.cpp (createTreeWalker): implementing the
2663         method
2664         * xml/dom2_traversalimpl : Implementing TreeWalkerImpl
2665         * xml/dom_docimpl (createTreeWalker): Implementing the
2666         method
2667 
2668 2004-02-04  Stephan Kulow  <coolo@kde.org>
2669 
2670         * html/html_tableimpl.cpp (insertRow): append to tbody if
2671         there is no tfood for insertRow(numRows) (#74125)
2672 
2673 2004-01-29  Germain Garand  <germain@ebooksfrance.org>
2674 
2675         * xml/dom_elementimpl.cpp (name): return attribute names in lowercase
2676         in compatibility mode. Solves contradiction between DOM L2/L3. Erratum
2677         to DOM L2 is pending, thanks to David Faure.
2678 
2679 2004-01-29  David Faure  <faure@kde.org>
2680 
2681         * ecma/kjs_window.cpp (get): update frame sizes before returning value for
2682         innerWidth/innerHeight, in case the window was just resized (#73528, regtest ecma/window.js)
2683 
2684 2004-01-29  Dirk Mueller  <mueller@kde.org>
2685 
2686         * html/html_inlineimpl.cpp (parseAttribute): restore KDE 3.1 behavior
2687         of <font size=-1> (#73500).
2688 
2689 2004-01-26  David Faure  <faure@kde.org>
2690 
2691         * ecma/kjs_window.cpp (get/hasProperty): Reduce window.<name> to
2692         forms, images and applets, like document.<name> (#71363 comment #5)
2693         by sharing NamedTagLengthDeterminer with kjs_html.cpp
2694 
2695 2004-01-26  Dirk Mueller  <mueller@kde.org>
2696 
2697         * html/html_inlineimpl.cpp (defaultEventHandler): use content, not
2698         viewport coordinates for server side image maps (#59701).
2699 
2700         * rendering/bidi.cpp (computeVerticalPositionsForLine): update
2701         overflowWidth, otherwise a lot of things go wrong (#59701).
2702 
2703         * misc/loader.cpp (data): correctly emit notifyFinished(), otherwise our
2704         state machine goes out of sync.
2705 
2706         * rendering/render_image.cpp: avoid shoot-out effect when neither oimage nor
2707         image are fully loaded. do a repaint when the new image finished loading, so
2708         that it actually updates. avoid reloading images on news.google.com on hover.
2709 
2710         * khtmlview.cpp (scheduleRepaint): make scheduling not starvating repaints.
2711         Fix repainting logic to optimize for reduced X server load and minimum CPU
2712         usage in traversing the render tree (#72575).
2713 
2714 2004-01-25  Dirk Mueller  <mueller@kde.org>
2715 
2716         * rendering/render_object (offsetLeft/offsetTop): fix Heirmenus which expect to get the
2717         <body> offset when the offsetParent is the <body> itself.
2718 
2719         * misc/loader.cpp (class ImageSource): by default, we're rewindable.
2720 
2721         * rendering/render_block.cpp (positionNewFloats): when somebody says
2722         clear: both;, he usually means it (#68068).
2723 
2724         * html/html_objectimpl.cpp (renderAlternative): give the alternative rendering
2725         some time to avoid ugly deletion races.
2726 
2727         * rendering/render_canvas.cpp (layout): don't recurse when printing (#72775).
2728 
2729         * rendering/render_image.cpp (setPixmap): handle cases when
2730         we're not inserted in the tree yet, but the image is already loaded
2731         (this happens when the memory cache actually works) (#73311).
2732 
2733 2004-01-23  Lubos Lunak  <l.lunak@kde.org>
2734 
2735         * html_inlineimpl.cpp (defaultEventHandler): make HTMLAnchorElementImpl
2736         react also on DOMActivate event
2737 
2738 2004-01-23  David Faure  <faure@kde.org>
2739 
2740         * html/html_tableimpl.cpp (insertRow): Fix for DOMTS-L2-HTML test
2741         HTMLTableElement39.html: insertRow(-1) appends to last section in
2742         document order, not to TFOOT.
2743 
2744         * xml/dom_docimpl.cpp (hasFeature): Updated to current state.
2745         (createEvent): Allow to create events with eventType="Events"
2746 
2747 2004-01-22  David Faure  <faure@kde.org>
2748 
2749         * xml/dom_nodeimpl.cpp (GenericRONamedNodeMapImpl): Implementation of
2750         node map for entities and notations, required by some DOMTS Core 1 tests.
2751 
2752 2004-01-22  Waldo Bastian  <bastian@kde.org>
2753 
2754         * html/htmlparser.cpp (class HTMLStackElem): ref and unref the nodes to avoid them beeing removed below us (#73112)
2755 
2756 2004-01-22  Lubos Lunak <l.lunak@kde.org>
2757 
2758         * khtmlview.cpp: make Ctrl only temporary suspend Shift+Down scrolling
2759 
2760 2004-01-22  David Faure  <faure@kde.org>
2761 
2762         * xml/dom_nodeimpl.cpp (setNodeValue): Don't throw NO_MODIFICATION_ALLOWED_ERR from
2763         there, DOMTS-Core-Level1's hc_nodevalue03 says createEntityReference().setNodeValue()
2764         should simply do nothing.
2765 
2766         * dom/dom_element.cpp (removeAttributeNode): Fixed logic for NOT_FOUND_ERR.
2767         (setAttributeNode): removed tests for WRONG_DOCUMENT_ERR and
2768         INUSE_ATTRIBUTE_ERR, the latter being incorrect and both being already
2769         done by setNamedItem
2770 
2771         * xml/dom_elementimpl.cpp (setNamedItem): if attribute exists already,
2772         return it, to fix DOMTS-Core-level1 test hc_elementreplaceattributewithself
2773 
2774 2004-01-21  Leo Savernik <l.savernik@aon.at>
2775 
2776         * khtml_part.cpp (checkCompleted): do not explicitly set focus to
2777         the document if m_focusNodeNumber is not set (fixes dict.leo.org)
2778 
2779 2004-01-21  Stephan Kulow  <coolo@kde.org>
2780 
2781         * html/html_formimpl.h: handle malformed forms different than
2782         wellformed
2783 
2784 2004-01-21  Germain Garand  <germain@ebooksfrance.org>
2785 
2786         * rendering/render_block.cpp (layoutBlockChildren): use maxTopMargin
2787         again, for correct margin-top determination (#67527)
2788 
2789 2004-01-20  Dirk Mueller  <mueller@kde.org>
2790 
2791         * css/cssstyleselector.cpp (applyRule): Implement handling of
2792         empty-cells.
2793 
2794          * css/cssstyleselector.cpp (applyRule): remove superfluous setZIndex(0)
2795         after setHasAutoZIndex, which breaks auto.
2796 
2797 2004-01-19  Dirk Mueller  <mueller@kde.org>
2798 
2799        * rendering/render_object.cpp (getVerticalPosition): improve
2800        logic (#65121).
2801 
2802 2004-01-19  Stephan Kulow  <coolo@kde.org>
2803 
2804         * rendering/render_style.h: providing an initial property
2805         function for every css property and using it in macros
2806         from cssselector.cpp to unify the handling of short hand
2807         properties (based on safari patch)
2808 
2809        * css/cssstyleselector.cpp (parseValue): unify handling
2810        of inherited css properties (based on safari patch)
2811 
2812 2004-01-18  Dirk Mueller  <mueller@kde.org>
2813 
2814         * khtmlpart_p.h (class KHTMLPartPrivate): experimental:
2815         copy encoding information from parent frame. helps on
2816         http://www.pfl.ru/ when manually setting the correct encoding.
2817 
2818         * rendering/render_container.cpp (addChild): make sure
2819         that a RenderTableCol object is correctly nested inside
2820         a table (#59766).
2821 
2822         * xml/dom_elementimpl.cpp (recalcStyle): fix tree corruption
2823         when recalcStyle() happens to be invoked in the wrong moment.
2824 
2825         * html/html_baseimpl.cpp (setLocation): fix KURL() casting issue.
2826 
2827 2004-01-16  Dirk Mueller  <mueller@kde.org>
2828 
2829         * rendering/render_image.cpp: remove some asserts that
2830         noone needs anyway (#72739).
2831 
2832 2004-01-16  Stephan Kulow  <coolo@kde.org>
2833 
2834         * html/htmltokenizer.cpp: fixing <pre> parsing (#58584)
2835 
2836 2004-01-15  Dirk Mueller  <mueller@kde.org>
2837 
2838         * misc/loader.cpp (ref): ok, there are cases where an image
2839         gets refed twice from the same client. *sigh*.
2840 
2841 2004-01-15  Lars Knoll <knoll@kde.org>
2842 
2843         * rendering/render_table.cpp: set overflowWidth to width
2844         when layouting (#72420)
2845         * xml/dom2_eventsimpl.cpp rendering/render_block.cpp
2846         nodeAtPoint() should always use contents coordinates.
2847 
2848 2004-01-14  Dirk Mueller  <mueller@kde.org>
2849 
2850         * misc/loader.cpp: Fix uncachable image leak (#72197).
2851 
2852 2004-01-13  Dirk Mueller  <mueller@kde.org>
2853 
2854         * css/css_ruleimpl.cpp (CSSMediaRuleImpl): set parent to 0
2855         to avoid leak (#70731).
2856 
2857 2004-01-13  Germain Garand  <germain@ebooksfrance.org>
2858 
2859         * rendering/render_canvas.cpp (layout):
2860         force scrollbar visibility status while layouting
2861         to avoid endless cycles (#69613)
2862 
2863 2004-01-13  Dirk Mueller  <mueller@kde.org>
2864 
2865         * ecma/kjs_events.cpp (JSEventListener): store them in a dictionary,
2866         not a linked list.
2867 
2868         * css/parser.y: fix rect() parsing problem (#72458).
2869 
2870 2004-01-12  Dirk Mueller  <mueller@kde.org>
2871 
2872         * rendering/render_block.cpp (left/rightRelOffset): recursion protection
2873         (#70608).
2874 
2875         * rendering/render_image.cpp (updateFromElement): add tracking of
2876         an oldimage, to avoid a "shoot out" effect on hovering expired images.
2877 
2878 2004-01-11  Germain Garand  <germain@ebooksfrance.org>
2879 
2880         * rendering/render_text.cpp (paintBoxDecorations):
2881         make background images on inlines obbey the full CSS
2882         spec (#59600)
2883 
2884         * rendering/render_text.h (paintBoxDecorations): changed prototype
2885 
2886         * rendering/render_line.cpp (paintDecorations): disable for now.
2887 
2888 2004-01-11  Dirk Mueller  <mueller@kde.org>
2889 
2890         * html/htmlparser.cpp (insertNode): fix <p><dl> handling (#68167).
2891 
2892         * css/css_base.cpp (extractPseudoType): make it case-insensitive (#72159).
2893 
2894 2004-01-11  Germain Garand  <germain@ebooksfrance.org>
2895 
2896         border/padding/margin issues on inlines (#68394)
2897 
2898         * rendering/bidi.cpp (computeVerticalPositionsForLine):
2899         add the correct width offset for text objects
2900 
2901         * rendering/render_line.cpp (paintBackgroundAndBorder):
2902         guard against invalid width values
2903 
2904         * rendering/render_text.cpp (paintDecoration):
2905         revert revision 1.224, avoid resurecting #50683
2906         by matching the conditionals of RenderText::position
2907         (RenderText::nodeAtPoint): revert part of r1.234,
2908         avoid #69345 by commenting incompatible merge.
2909         (RenderText::width): add padding/border/margin
2910 
2911 2004-01-10  Dirk Mueller  <mueller@kde.org>
2912 
2913         * css/html4.css: fix default font/fontsize of input,select and textarea
2914         (#67851).
2915 
2916         * misc/loader_jpeg.cpp (decode): try hard not to shoot
2917         down the machine with large images
2918         (try http://www.parisc-linux.org/~willy/kde/graph.jpg)
2919 
2920         * rendering/render_image.cpp (layout): ugh, major stupidity. don't rescale large
2921         images if nobody explicitely asked for it. makes loading of very large images
2922         quite a bit faster.
2923 
2924         * rendering/render_image.cpp/.h: Reduce X-server pressure with large images (#39693).
2925 
2926         * misc/loader_jpeg.cpp: Upon suggestion from Maksim, implement decoding of
2927         nonprogressive jpegs in non-buffered-image mode. This massively reduces memory
2928         footprint and slightly improves performance.
2929 
2930 2004-01-09  Dirk Mueller  <mueller@kde.org>
2931 
2932         * rendering/render_replaced.cpp (eventFilter): readd the wheel event handling
2933         which allows scrolling of the page again. Thanks a lot for just removing it. (#45180)
2934 
2935 
2936 2004-01-02  Dirk Mueller  <mueller@kde.org>
2937 
2938         * html/htmltokenizer.cpp (notifyFinished): fix null pointer dereference
2939         in rare cases.
2940 
2941         * css/cssstyleselector.cpp (reparseConfiguration): implement.
2942 
2943         * khtml_part.cpp (reparseConfiguration): call CSSStyleSelector::reparseConfiguration
2944         instead of ::clear(). much less crashy. (#68141)
2945 
2946 2003-12-27  Simon Perreault  <nomis80@nomis80.org>
2947 
2948         * khtml_part.cpp: Remove unused zoom actions. Assign CTRL + Key_Plus to
2949         zooming in and CTRL + Key_Minus to zooming out.
2950 
2951 2003-12-27  Luis Pedro Coelho <luis@luispedro.org>
2952 
2953         * misc/loader.cpp : Discard items from cache if they have the wrong type (#68181)
2954 
2955 2003-12-20  Koos Vriezen  <koos.vriezen@xs4all.nl>
2956 
2957         * html_objectimpl.cpp (attach): Check KImageIO::typeForMime first if RenderImage
2958         supports the image format
2959 
2960 2003-12-11  Stephan Kulow  <coolo@kde.org>
2961 
2962         * rendering/render_image.cpp (updateFromElement): set the alt text before doing anything
2963         else, because it might trigger a setting of the error pixmap and then we don't know the
2964         alt text to draw and get wrong sizes
2965 
2966 2003-12-10  Germain Garand  <germain@ebooksfrance.org>
2967 
2968         * rendering/render_replaced.cpp (updateFromElement): don't use setEraseColor for __khtml
2969         widgets as it changes the background mode and induces flicker (#69130)
2970         (copyWidget): retrieve background color from the widget's palette.
2971 
2972 2003-12-10  Dirk Mueller  <mueller@kde.org>
2973 
2974         * rendering/render_list.cpp: fix toLetter, based on Safari patch.
2975 
2976 2003-12-09  Dirk Mueller  <mueller@kde.org>
2977 
2978         * html/html_formimpl.cpp (submit): don't ask over and over again the same question.
2979 
2980 2003-12-08  Zack Rusin  <zack@kde.org>
2981 
2982         * khtmlview.*, html/html_formimpl.cpp (submit):  Fixing 67179 -
2983         Possibility to avoid saving form data for certain sites.
2984 
2985 2003-12-05  David Faure  <faure@kde.org>
2986 
2987         Clean up "default handling" of events. Fixes recent regressions like
2988         "arrow keys in lineedit make the scrollview scroll".
2989         * xml/dom_nodeimpl.*: Removed bool return value from most dispatch*Event methods,
2990         documented the two that still return a bool. The meat of the change is
2991         that dispatchKeyEvent returns defaultHandled || defaultPrevented.
2992         * dom/dom_node.cpp (dispatchEvent): Return !defaultPrevented as mandated by
2993         the DOM, now that NodeImpl doesn't do it anymore.
2994         * rendering/render_replaced.cpp (eventFilter): Adapted to new logic
2995         * khtmlview.cpp (dispatchKeyEventHelper): Adapted to new logic
2996 
2997 2003-12-05  Stephan Kulow  <coolo@kde.org>
2998 
2999         * css/cssparser.cpp (parseValue): Do not accept negative values for padding (#59557)
3000 
3001 2003-12-05  Lubos Lunak  <l.lunak@kde.org>
3002 
3003         * khtmlview.cpp, xml/dom2_eventsimpl.*, xml/dom_nodeimpl.*, rendering/render_replaced.cpp :
3004             fix mapping between Qt and DOM key events
3005 
3006 2003-12-05  Germain Garand  <germain@ebooksfrance.org>
3007 
3008         * rendering/render_object.cpp (nodeAtPoint): don't offset
3009         relatively positioned objects coordinates. They already are (#68716/#60453)
3010 
3011         * rendering/render_text.cpp (nodeAtPoint): no need to include borders and padding
3012         in the matching region anymore (#69345)
3013 
3014 2003-12-05  Germain Garand  <germain@ebooksfrance.org>
3015 
3016         * rendering/render_box.cpp (paintRootBoxDecorations): use the full canvas's height
3017         when painting the root's background (#55065)
3018 
3019 2003-12-03  Stephan Kulow  <coolo@kde.org>
3020 
3021         * css/html4.css: define default text-alignments for input fields to avoid
3022         problems with inherited attributes
3023 
3024 2003-12-02  Stephan Kulow  <coolo@kde.org>
3025 
3026         * html/htmltokenizer.cpp: do not discard any line feed from parsing textareas
3027 
3028 2003-11-29  Dirk Mueller  <mueller@kde.org>
3029 
3030         * css/cssstyleselector.cpp: add indigo/crimson colorhandling as it is not in X11's rgb
3031         names list.
3032 
3033         * misc/loader.cpp (CachedCSSStyleSheet/CachedScript::data): add some utf8/utf16 encoding
3034         handling. Workaround Qt bugs (#69115). Initial investigation and patch by Harri.
3035 
3036 2003-11-29  Stephan Kulow  <coolo@kde.org>
3037 
3038         * html/html_elementimpl.cpp (addHTMLAlignment): readding floating for input type="image"
3039 
3040         * rendering/render_form.cpp (setStyle): respect text-align style on input elements
3041         (#65610)
3042 
3043         * html/html_formimpl.cpp (HTMLInputElementImpl): don't make input elements
3044         floating, but only care for the text alignment
3045 
3046 2003-11-28  Harri Porten  <porten@kde.org>
3047 
3048         * css/css_valueimpl.cpp (setProperty): remove superfluous
3049         removeProperty() call. It will be done later in CSSParser. After
3050         after the value has been recognized as valid.
3051 
3052 2003-11-28  Germain Garand  <germain@ebooksfrance.org>
3053 
3054         * html/html_headimpl.cpp (class HTMLLinkElementImpl): grant to alternate sheets
3055         enabled via script the same status as preferred sheets. Restore proper tracking
3056         of pending stylesheets.(#67453/#68504)
3057 
3058         * html/html_headimpl.h (HTMLLinkElementImpl::setDisabled)
3059 
3060         * xml/dom_docimpl.cpp (recalcStyleSelector): don't remove sheets linked from
3061         DOM-disabled link elements from the list of available alternate stylesheets.
3062         Re-enabling them manually is a valid option.
3063 
3064 2003-11-26  Lubos Lunak  <l.lunak@kde.org>
3065 
3066         * khtmlview.cpp, xml/dom2_eventsimpl.cpp : generate correctly keydown,keypress and keyup events
3067 
3068 2003-11-26  Dirk Mueller  <mueller@kde.org>
3069 
3070         * html/htmlparser.cpp (parseToken): ignore flat on <select>. maybe
3071         we should only do this in compat mode though (#69017).
3072 
3073 2003-11-25  Dirk Mueller  <mueller@kde.org>
3074 
3075         * html/html_formimpl.cpp (defaultEventHandler): ignore stale keyup events
3076         on space too.
3077 
3078         * css/html4.css: Set quirky margins on elements that need it (#66490).
3079 
3080 2003-11-25  Stephan Kulow  <coolo@kde.org>
3081 
3082         * rendering/render_container.cpp (updatePseudoChild): fix handling of
3083         images in :content (#67373)
3084 
3085         * html/html_baseimpl.cpp (parseAttribute): fix parsing of body attributes (safari merge)
3086 
3087         * rendering/render_box.cpp (calcAbsoluteVertical): basically reverting commit 1.218
3088         for height calculation. It broke floating images (#67839)
3089 
3090 2003-11-25  David Faure  <faure@kde.org>
3091 
3092         * ecma/kjs_window.cpp: Implement hasProperty and get for frames by number in Window,
3093         to fix window[0] and parent[1] etc. (#56983)
3094 
3095 2003-11-25  Germain Garand  <germain@ebooksfrance.org>
3096 
3097         * khtml_part.cpp (checkCompleted): prepend "Automatic Detection" entry to
3098         "Use Stylesheet" menu.
3099         (slotUseStylesheet): set m_sheetUsed to null string if autodetect is on.
3100         Fixes #54335.
3101 
3102         * xml/dom_docimpl.cpp (recalcStyleSelector): if the previous sheet is sticky but
3103         still missing when we've already got <body>, choose the document's best
3104         candidate until parsing ends. Avoids ending with no decision (#63348).
3105 
3106 2003-11-24  Dirk Mueller  <mueller@kde.org>
3107 
3108         * html/html_formimpl.cpp (defaultEventHandler): ignore stale keyup events.
3109         Only react when we saw a matching keydown before.
3110 
3111 2003-11-24  David Faure  <faure@kde.org>
3112 
3113         * html/htmlparser.cpp (popInlineBlocks): Fixed infinite loop due to
3114         popOneBlock returning immediately if blockStack==0. #68034.
3115 
3116         * rendering/bidi.cpp: Fixed infinite loop with <nobr> due to findNextLineBreak
3117         going back (wrong variable used). #66867, #68598, #59230 and their duplicates.
3118 
3119 2003-11-24  Stephan Kulow  <coolo@kde.org>
3120 
3121         * css/cssparser.cpp (parseFontFamily): handle invalid font families like
3122         font-family: ms sans serif, utopia
3123         * css/css_valueimpl.cpp (FontFamilyValueImpl): merging safari code to handle
3124         invalid font families. Replacing buggy font maching by substring search by
3125         simply ripping out "MS" and searching for similiar fonts
3126 
3127 2003-11-24  David Faure  <faure@kde.org>
3128 
3129         * html/htmlparser.cpp (getElement, processCloseTag): Allow only one
3130         non-empty <title> tag, discard any following <title> tag. This matches
3131         both IE and Mozilla. Testcases khtmltests/regression/tests/ecma/title*
3132 
3133         * html/html_headimpl.cpp (childrenChanged): Set title immediately, like
3134         other browsers do.
3135 
3136 2003-11-23  Germain Garand <germain@ebooksfrance.org>
3137 
3138         * html/html_imageimpl.cpp (attach): don't create a renderer if our parent doesn't
3139         allow childs. e.g: a RenderPartObject (#66793)
3140 
3141 2003-11-23  Stephan Kulow  <coolo@kde.org>
3142 
3143         * css/cssstyleselector.cpp (applyRule): fixing my fix for #60556, which
3144         introduced quite some regressions (thanks to Paul Sprakes for working
3145         that out with me)
3146 
3147 2003-11-22  Stephan Kulow  <coolo@kde.org>
3148 
3149         * rendering/render_line.cpp (paintDecorations): avoid underlining elements that
3150         have no dimension in itself (#68728)
3151 
3152 2003-11-22  Koos Vriezen  <koos.vriezen@xs4all.nl>
3153 
3154         * html_miscimpl.cpp (HTMLCollectionImpl): Make
3155         window.xxx == document.xxx for APPLET/OBJECT/EMBED elements, using
3156         ID or NAME attributes, behave alike
3157 
3158 2003-11-22  Germain Garand  <germain@ebooksfrance.org>
3159 
3160         * dom/css_value.cpp (getPropertyPriority): const version was declared
3161         but not implemented
3162 
3163         * rendering/font.cpp (drawText): do not use DirWS to count spaces
3164         when justifying, it won't count &nbsp;'s (#65903)
3165 
3166         * rendering/render_text.cpp (class InlineTextBox): ditto.
3167 
3168 2003-11-19  Dirk Mueller  <mueller@kde.org>
3169 
3170         * html/html_baseimpl.cpp (attach): respect display: NONE on <frame>, since
3171         it is used to indicate the FOUC prevention code path now.
3172 
3173         * css/cssparser.cpp (parseColor): remove use of invalidColor. use a boolean
3174         return instead. invalidColor was confusing as it was actually a valid color.
3175         Also add rgba() parsing.
3176 
3177         * css/cssstyleselector.cpp (adjustRenderStyle): add check to avoid that
3178         <FRAME> gets a display != BLOCK assigned (#63640).
3179 
3180 2003-11-18  Harri Porten  <porten@kde.org>
3181 
3182         * ecma/kjs_html.cpp: limit collection length to >= 0 (Maciej)
3183 
3184 2003-11-18  David Faure  <faure@kde.org>
3185 
3186         * css/css_valueimpl.* (cssText): cssText implementation from Maciej Stachowiak.
3187 
3188 2003-11-17  David Faure  <faure@kde.org>
3189 
3190         * khtml_part.cpp (processObjectRequest):
3191         Stop the spinning wheel on <frame src="">.
3192         Testcase: webcore's fast/frames/empty-frame-src.html
3193 
3194 2003-11-17  Stephan Kulow  <coolo@kde.org>
3195 
3196         * rendering/render_*.cpp: changing the output of dump to
3197         get a more comprehensive renderer tree output - as inspired
3198         by Safari's kwqDebugTree. This allows for a change in
3199         test_regression to check layouts
3200 
3201 2003-11-15  Zack Rusin  <zack@kde.org>
3202 
3203         * rendering/render_box.cpp (calcHeight): correctly compute the
3204         height for relatively positioned object with percentage based
3205         dimensions - pretty much a merge from safari (#53902)
3206 
3207 2003-11-14  Germain Garand  <germain@ebooksfrance.org>
3208 
3209         fix "overflow: scroll" layout/painting issues
3210 
3211         * rendering/render_box.cpp (getOverflowClipRect): substract
3212         scrollbars width/height if any. Merged from WebCore.
3213 
3214         * rendering/render_layer.cpp (horizontalScrollbarHeight,
3215         verticalScrollbarWidth): use pixelMetric instead of width()/height().
3216 
3217 2003-11-13  Zack Rusin  <zack@kde.org>
3218 
3219         * rendering/render_box.cpp (calcAbsoluteVertical): fix the
3220         computation  of the height for the percentage positioned elements
3221         contained in the root
3222 
3223 2003-11-11  Dirk Mueller  <mueller@kde.org>
3224 
3225         * rendering/render_style.h (StyleBoxData>): fix SunProCC
3226         compatibility problem.
3227 
3228         * xml/dom_elementimpl.cpp (attach): don't attach a renderobject
3229         to a parent that does not support childs (childAllowed()).
3230         * html/html_objectimpl.cpp (attach): check for childAllowed().
3231         * xml/dom_textimpl.cpp (attach): check for childAllowed().
3232 
3233         * misc/loader.cpp (CachedCSSStyleSheet): add "*/*;q=0.1" to the
3234         accept header (#67803).
3235 
3236 2003-11-10  David Faure  <faure@kde.org>
3237 
3238         * khtml_part.cpp: Ask the user "open or save?" before embedding a
3239         non-usual mimetype into a frame (e.g. ZIP files or PS files).
3240         (html and images are the 'usual' exceptions)
3241         Includes a dontshowagain checkbox, so this shouldn't be too annoying.
3242 
3243 2003-11-07  Stephan Kulow  <coolo@kde.org>
3244 
3245         * css/cssparser.cpp (parseValue): set the background-* properties
3246         to their initial value before expanding (#64743)
3247 
3248 2003-11-07  Dirk Mueller  <mueller@kde.org>
3249 
3250         * css/css_valueimpl.cpp (cssText): wrap uri's into url().
3251         Stephan Kulow noted that other browsers do that.
3252 
3253         * rendering/render_list.h (class RenderListItem): another
3254         SunCC incompatibility fixed. Only applies to HEAD (*phew*).
3255 
3256 2003-11-05  Germain Garand  <germain@ebooksfrance.org>
3257 
3258         Refinement of namespace handling for Attributes,
3259         following David's patch of 2003-10-25.
3260 
3261         * xml/dom_elementimpl.cpp: get rid of the m_localName string member
3262         for Attributes.
3263         (AttrImpl::cloneNode): fix wrong argument order in ctor call
3264 
3265         * xml/dom_docimpl.cpp (getId/getName): fix problems introduced by the
3266         switch to an Id of zero for both global and XHTML Namespace. Zero is
3267         also what a failed QDict lookup returns...
3268 
3269 2003-11-05  Dirk Mueller  <mueller@kde.org>
3270 
3271         * html/htmltokenizer.cpp (parseEntity): fix annoying entity parsing problem
3272         that caused stale ';''s popping up everywhere.
3273 
3274 2003-11-04  Leo Savernik <l.savernik@aon.at>
3275 
3276         * khtml_part.{cpp,h} (selection): Added new overloaded function to
3277         return selection boundaries.
3278 
3279 2003-11-04  Dirk Mueller  <mueller@kde.org>
3280 
3281         * html/html_baseimpl.cpp (attach): fix assertion failure thanks
3282         to the FOUC patch.
3283 
3284 2003-11-04  David Faure  <faure@kde.org>
3285 
3286         * html/html_documentimpl.cpp (close): Ensure setTitle is called
3287         at least once, with an empty string if there's no title tag.
3288 
3289         * xml/dom_docimpl.cpp (setTitle): Skip equality test if passing an
3290         empty title, since m_title is initially empty.
3291 
3292 2003-11-03  Dirk Mueller  <mueller@kde.org>
3293 
3294         * misc/loader.cpp (buildAcceptHeader): add */* to Accept-Header
3295         for image requests with low priority to fix www.tweakers.net (#53515).
3296 
3297         * css/parser.y: lowercase the media we get via CSS stylesheets.
3298         Its true that the media is case insensitive in CSS, but it is
3299         case sensitive in HTML, and as we don't want to do the code twice
3300         we cheat a little here.
3301 
3302         Also change media parsing logic for @import to handle
3303         http://www.hixie.ch/tests/evil/css/import/extra/importexoticmedia.html
3304         correctly (idea by Stephan Kulow).
3305 
3306         * html/html_formimpl.cpp (defaultEventHandler): react on space too
3307         (#64200).
3308 
3309         * dom/html_base.cpp (src): return the completeURL.
3310 
3311         * html/html_formimpl.cpp: remove the addCSSProperty calls and put
3312         them in the default stylesheet. the original reasons for them in that
3313         place is no longer valid since we implemented the CSS 2.1 selector rules.
3314 
3315 
3316 2003-11-02  Dirk Mueller  <mueller@kde.org>
3317 
3318         * rendering/render_form.cpp (setStyle): check for direction (#57626)
3319         on RenderLineEdit and RenderTextArea.
3320 
3321         * khtmlview.cpp (viewportWheelEvent): toggle Font zooming orientation (#61862).
3322 
3323         * rendering/render_box.cpp (paintBackgroundExtended): implement. needed
3324         for inline elements background drawing somewhen.
3325 
3326         * rendering/render_object.cpp (nodeAtPoint): merge from Safari. Still
3327         does not work, but at least its the same now.
3328         (lineHeight): handle replaced elements here. They don't necessarily
3329         inherit RenderReplaced anymore.
3330         (baselinePosition): handle replaced elements.
3331 
3332         * rendering/render_replaced.cpp: remove baselinePosition/lineHeight. its in
3333         RenderObject now.
3334 
3335         * rendering/render_block.cpp (isSelfCollapsingBlock): collapse away trailing whitespace
3336         at the end of the block.
3337         (setStyle): set "isReplaced" for display: inline-block.
3338         (addChildToFlow): Make sure we don't append things after :after generated content.
3339         (calcInlineMinMaxWidth): respect text-indent (taken from WebCore 106).
3340 
3341 2003-11-02  Stephan Kulow  <coolo@kde.org>
3342 
3343         * rendering/render_form.cpp (updateFromElement): invalidate the size hint
3344         of comboboxes as they are cached in QComboBox (#64229)
3345 
3346 2003-11-01  Dirk Mueller  <mueller@kde.org>
3347 
3348         * css/cssstyleselector.cpp (applyRule): handle clear: none (#57676)
3349 
3350 2003-10-31  David Faure  <faure@kde.org>
3351 
3352         * html/html_inlineimpl.cpp (defaultEventHandler): Another wrong use of detail()
3353         instead of the new isDoubleClick(), which made it impossible to click on the
3354         same link twice without moving the mouse (#58241).
3355 
3356 2003-10-30  Dirk Mueller  <mueller@kde.org>
3357 
3358         * xml/dom_docimpl.cpp (open): do a full detach()/attach(),
3359         otherwise we're corrupting the rendertree (#66590).
3360 
3361 2003-10-29  Stephan Kulow  <coolo@kde.org>
3362 
3363         * html/htmltokenizer.cpp (processListing): fixing textarea regression
3364 
3365 2003-10-29  David Faure  <faure@kde.org>
3366 
3367         * ecma/kjs_dom.cpp: Patch from Darin Adler to implement Node.item.
3368 
3369 2003-10-29  Leo Savernik <l.savernik@aon.at>
3370 
3371         * khtml_part.cpp (khtmlMousePressEvent): Fixed occasional selection
3372         of image on which a drag had been initiated.
3373 
3374 2003-10-29  David Faure  <faure@kde.org>
3375 
3376         * ecma/kjs_window.cpp (Window::openWindow): patch from Maciej to allow
3377         floats in window.open properties (e.g. small window at saabusa.com)
3378 
3379 2003-10-28  David Faure  <faure@kde.org>
3380 
3381         * khtmlview.cpp (viewportMouseDoubleClickEvent): Set bool in MouseEventImpl
3382         when handling a double click. The DOM API only has "number of clicks at the
3383         same place" notion, but not whether they happened quick or over a long time.
3384         Added support for small mouse movement when double-clicking, like in mousePressEvent.
3385 
3386         * xml/dom2_eventsimpl.*: Added m_isDoubleClick bool for the reason above.
3387 
3388         * xml/dom_nodeimpl.cpp (handleLocalEvents): Use new MouseEventImpl::isDoubleClick()
3389         to differenciate between click and dblclick. Lars used the QMouseEvent type,
3390         but when the event comes from JS - initMouseEvent+dispatchEvent, there's
3391         no QMouseEvent - which broke test_regression.
3392 
3393 2003-10-28  Stephan Kulow  <coolo@kde.org>
3394 
3395        * khtml_part.cpp (reparseConfiguration): clear the style selector
3396 
3397 2003-10-28  Leo Savernik  <l.savernik@aon.at>
3398 
3399         * rendering/render_replaced.cpp (checkSelectionPoint):
3400         Readded RenderReplaced::checkSelectionPoint to fix disrupted selection
3401         of sole inline images within block elements (<p><img ...></p>).
3402         Also fixes caret placement issues.
3403 
3404 2003-10-28  David Faure  <faure@kde.org>
3405 
3406         * ecma/kjs_window.cpp (goURL): Compare the URLs without the ref, fixes
3407         wrong reload when opening a tree-like structure (#54358).
3408 
3409         * ecma/kjs_html.cpp (getValueProperty): (#54929)
3410         Fixes for HTMLAnchorElement properties, return empty strings instead
3411         of null, and let "text" return plain text instead of HTML.
3412 
3413         * html/html_elementimpl.cpp (innerText): Fix for empty elements.
3414 
3415 2003-10-27  David Faure  <faure@kde.org>
3416 
3417         * khtmlview.cpp (dispatchKeyEvent): Generate keypress, keydown and keyup
3418         events for the document if no node has the focus. Factorized code in
3419         a new method, dispatchKeyEvent. Cleaned up old unused variables d->lastKeyNode
3420         and d->lastKeyPress. #42918 and #43072, google keys.
3421 
3422         * xml/dom_elementimpl.h (checkQualifiedName): Added bool nameCanBeEmpty,
3423         and fixed again: DOM3 now says a null qualifiedName is allowed in createDocument.
3424         * xml/dom_docimpl.cpp (createDocument): Pass nameCanBeEmpty=true, to
3425         allow the commonly found implementation.createDocument("","",null); (#61650)
3426 
3427         * html/html_elementimpl.cpp (HTMLElementImpl): Fixed wrong m_htmlCompat
3428         value when parsing HTML in HTML-compat mode, get it from the doc's setting.
3429         * xml/dom_docimpl.cpp (createElementNS): Always set m_htmlCompat, now that
3430         the HTMLElementImpl constructor sets it too.
3431 
3432         * xml/dom_nodeimpl.cpp (handleLocalEvents): fixed crash when a mouse event
3433         is dispatched via the DOM API, with initMouseEvent, dispatchEvent.
3434 
3435 2003-10-26  David Faure  <faure@kde.org>
3436 
3437         * xml/dom_docimpl.cpp (getId): added bool lookupHTML, set to true in most
3438         places, to fix e.g. css selector broken by my previous change, and set
3439         to false from createElementNS to still skip the lookup for HTML tags.
3440 
3441 2003-10-25  Dirk Mueller  <mueller@kde.org>
3442 
3443         * rendering/render_form.h (class RenderFileButton): use KURLRequester
3444         instead of just doing the stuff on our own in a worse way (#62328).
3445         Also provides completion, yay! :)
3446 
3447         right now <input type=file> has severe rendering errors which I blame
3448         on the widget painting code from Lars.
3449 
3450 2003-10-25  David Faure  <faure@kde.org>
3451 
3452         Make use of the ID scheme much more for elements, getting rid of
3453         m_localName and m_tagName strings in XMLElementImpl.
3454 
3455         * misc/maketags: switched to lowercase; uppercase is the html-compat case only.
3456         * html/html_elementimpl.cpp(tagName,localName): lookup name from id, with proper
3457         handling of m_htmlCompat vs xhtml difference.
3458         * html/html_elementimpl.h: removed m_xhtml bool, becomes bitfield in NodeImpl instead,
3459         since XML elements can be in "HTML compat" mode too (uppercased).
3460         * xml/dom_docimpl.cpp (DocumentImpl): XML namespace is id 0 again
3461         * xml/dom_docimpl.cpp (createElementNS): check for exceptions when
3462         setting the prefix; set HTML compat mode in the element if necessary.
3463         Only look for the ID if it's an XML element - if not, createHTMLElement did it.
3464         * xml/dom_docimpl.cpp (getId): Do not apply the html-compat case hacks
3465         when looking up elements. This is done by createElement[NS] now. Left
3466         the code for the attribute lookup only.
3467         * xml/dom_elementimpl.cpp (XMLElementImpl::XMLElementImpl): ctor only needs id and prefix.
3468         Removed m_tagName and m_localName member vars in all methods, used id lookups instead.
3469         * xml/dom_elementimpl.cpp (cloneNode): fixed namespace being lost. Factorized
3470         common code with HTMLElementImpl in finishCloneNode.
3471         * xml/dom_nodeimpl.*: added m_htmlCompat bool in bitfield. Only makes
3472         sense for elements currently, but would take more memory in ElementImpl.
3473 
3474         * xml/dom_docimpl.cpp (DOMImplementationImpl::createDocument):
3475         DOM3 now says a null qualifiedName is allowed in createDocument.
3476 
3477 2003-10-24  Dirk Mueller  <mueller@kde.org>
3478 
3479         * css/html4.css (marquee): don't set display: none, it might
3480         contain useful text (its used on ebay.com for every second article).
3481 
3482         * html/html_formimpl.cpp/h: revert this commit:
3483              * remove lot's of addCSSProperty calls and moved the
3484                definitions to the default style sheet. This made
3485                it possible to remove quite some code in html_formimpl.cpp
3486 
3487         * rendering/render_form.cpp (updateFromElement): Fix coolo's commit (#61347)
3488 
3489 2003-10-24  Germain Garand  <germain@ebooksfrance.org>
3490         * General scope of the change:
3491           - bring back the NodeImpl_NSMask bits in id() for Attributes and XMLElements
3492             => the cssselector need that to support CSS namespaces in an efficient way.
3493             => fixes CSS selection for XML documents
3494           - change Nodeimpl::Id registration mechanism:
3495             We tried to solve the DOM1/DOM2 NS methods compatibility problems
3496             by registering the qualifiedName. However, this is doomed to  fail in other
3497             places that relies on Ids because prefixes aren't  encoded in  the Ids and
3498             are irrelevant for NS nodes identification.
3499             Instead, use registered aliases (see DocumentImpl::getId) to solve
3500             compatibility issues while maintaining a sound Id system.
3501 
3502         * css/cssstyleselector.cpp: change getId calls
3503 
3504         * css/parser.y: ditto
3505 
3506         * dom/dom_doc.cpp: change getId/implementation method calls
3507         (DOM::Document::createElement): check DOM exceptions
3508         (DOM::Document::createElementNS): ditto
3509         (DOM::Document::createAttribute): ditto
3510         (DOM::Document::createAttributeNS): ditto
3511         (DOM::Document::createDocumentFragment): ditto
3512 
3513         * dom/dom_element.cpp: change getId/implementation method calls
3514 
3515         * dom/dom_node.cpp: ditto
3516 
3517         * html/html_documentimpl.cpp:
3518         (HTMLDocumentImpl::createElement): check DOM exceptions
3519 
3520         * html/html_documentimpl.h: ditto
3521 
3522         * html/html_elementimpl.cpp: use m_xhtml bool flag to distinguish HTML/XHTML elements
3523 
3524         * html/html_elementimpl.h:
3525         (DOM::HTMLElementImpl::HTMLElementImpl): init m_xhtml
3526         (DOM::HTMLElementImpl::setXHtmlElement): set/retrieve m_xhtml (non-virtual)
3527         (DOM::HTMLElementImpl::isXHtmlElement): ditto
3528 
3529         * html/htmlparser.cpp: change getValue/setValue syntax
3530 
3531         * html/htmltokenizer.h: change getId calls
3532 
3533         * rendering/render_frames.cpp: ditto
3534 
3535         * xml/dom_docimpl.cpp: IdNameMapping is now a struct holding QDicts. getId dynamically choses
3536             the struct to be used based on it's first argument (ElementId, AttributeId, NamespaceId)
3537         (DOMImplementationImpl::createDocument): factor qualifiedName checking code
3538         (DocumentImpl::createAttribute): New. Mirrors DOM.
3539         (DocumentImpl::createAttributeNS): ditto
3540         (DocumentImpl::createElementNS): check exceptions in qualifiedName
3541 
3542         * xml/dom_docimpl.h: IdNameMapping change
3543 
3544         * xml/dom_elementimpl.h:
3545         * xml/dom_elementimpl.cpp:
3546         (AttrImpl::AttrImpl): no more m_namespaceURI, now dynamically retrieved with getName(NamespaceId...)
3547         (AttrImpl::nodeName): now built from prefix + localName
3548         (ElementImpl::setAttributeNS): check exceptions on qualifiedName
3549         (XMLElementImpl::XMLElementImpl): no more m_namespaceURI, now dynamically retrieved with getName(NamespaceId...)
3550              restore m_id (as in 3_1_BRANCH) for correct CSS selection on XML Elements
3551 
3552         * xml/dom_elementimpl.h:
3553         (DOM::checkQualifiedName): inline DOM helper, factoring qualifiedName exception checkings
3554         (DOM::splitPrefixLocalName): inline DOM helper, avoids scanning qualifiedName multiple times
3555 
3556         * xml/dom_nodeimpl.h:
3557         (DOM::NodeImpl::): enum IdType for (ElementId, AttributeId, NamespaceId)
3558 
3559         * xml/xml_tokenizer.cpp:
3560         (XMLHandler::startElement): use the qualifiedName instead of the localName
3561             in order to know the prefix if any.
3562 
3563 2003-10-24  Stephan Kulow  <coolo@kde.org>
3564 
3565         * rendering/render_form.cpp (updateFromElement): support disabled attribute
3566         select option (#61347)
3567 
3568 2003-10-24  Lars Knoll <knoll@kde.org>
3569         * Make the <button> element work correctly
3570         * remove lot's of addCSSProperty calls and moved the
3571         definitions to the default style sheet. This made
3572         it possible to remove quite some code in html_formimpl.cpp
3573 
3574 2003-10-24  Lars Knoll <knoll@kde.org>
3575         * A few more small fixes to Html event handlers. We can unfortunately not
3576         easily get the events for <select> and <textarea> correct, as they use
3577         either modality or QScrollView (but doesn't work in 3.1.x neither).
3578 
3579 2003-10-24  Lars Knoll <knoll@kde.org>
3580         * Hopefully fixed most repainting problems.
3581 
3582 2003-10-24  Lars Knoll <knoll@kde.org>
3583         * Fix most of the form related regressions introduced by my
3584         changes earlier on. onfoo event handlers are now fired in a
3585         way that is mostly compatible to IE for <input type=xxx>.
3586         Other form elements might still need some work.
3587 
3588 2003-10-23  Lars Knoll <knoll@kde.org>
3589         * Fix nodeAtPoint for elements that have no child (makes links on images
3590         work again)
3591         * Fix null pointer dereferencing in RenderLayer::updateHoverActiveState
3592 
3593 2003-10-23  Stephan Kulow  <coolo@kde.org>
3594 
3595         * html/htmltokenizer.cpp (processListing): do not discard all white space
3596            in textareas (#62076)
3597 
3598         * css/cssstyleselector.cpp (applyRule): if the first font isn't found,
3599                 continue looking (#60556)
3600 
3601 2003-10-22  Dirk Mueller  <mueller@kde.org>
3602 
3603         * rendering/render_box.cpp (calcAbsoluteHorizontal): fixed containing block
3604         height calculation for position:fixed.
3605         (paintBackground): fix negative backgroundx/y positioning. fix
3606         background-attachment: fixed (http://placenamehere.com/safari/fixedbgtest.html)
3607         avoid division by zero. fix table background positioning (#49336).
3608         http://c133.org/testcase1.html, http://c133.org/testcase2.html,
3609         http://c133.org/testcase3.html
3610 
3611         * misc/loader.cpp (pixmap_size/valid_rect): return useful values for the error image
3612         to avoid that its shown as null pixmap (#42233).
3613 
3614 2003-10-21  Dirk Mueller  <mueller@kde.org>
3615 
3616         * rendering/render_list.cpp (calcListValue): skip anonymous block while searching
3617         for the <ol> block. Thanks to the Maksim regression testengine.
3618 
3619         * rendering/render_object.cpp (setOverhangingContents): refine assert to avoid
3620         crash on bananalotto.com. Adjust to changed containingBlock() behavior.
3621 
3622         * html/html_listimpl.cpp (attach): fix thinko. Revert Safari merge which
3623         broke <ul><p><li>. Thanks to Maksim for noticing.
3624 
3625         * rendering/render_list.cpp (calcListValue): handle <ul><p><li> again.
3626 
3627         * rendering/render_box.cpp (repaint): revert commit which introduced another
3628         4 bytes overhead. No need to waste memory here.
3629 
3630         * rendering/render_object.cpp (setStyle): schedule repaint on old object
3631         when the new outline is going to be thinner.
3632 
3633         * rendering/render_form.cpp (RenderCustomButton): Remove.
3634 
3635         * rendering/render_replaced.cpp (RenderReplaced::checkSelectionPoint): Remove.
3636         RenderObject/RenderBox'es implementation *must* work. No need to add useless code.
3637 
3638         * rendering/render_replaced.cpp (RenderReplacedBlock): Remove.
3639 
3640         * html/html_formimpl.cpp (HTMLButtonElement::attach): Remove.
3641 
3642         * rendering/render_box.cpp (calcWidth): implement CSS min-width/max-width
3643         support (#12994).
3644 
3645         * rendering/render_block.cpp (renderName): don't crash when style() is 0L.
3646 
3647         * rendering/render_object.h (class RenderObject): remove isRunIn() / isCompact().
3648         We can use style()->display() here, and it is inconsistent with the other is*
3649         members which usually do not access style() (that can be 0L).
3650 
3651         * rendering/render_object.cpp (createObject): create RenderBlock for INLINE_BLOCK.
3652 
3653         * css/html4.css (BUTTON/LEGEND): set display: inline-block.
3654 
3655         * css/cssstyleselector.cpp (styleForElement): handle COMPACT/RUN_IN/INLINE_BLOCK
3656         (applyRule): handle INLINE_BLOCK.
3657 
3658         * css/makeprop: don't export getPropertyName. declare it.
3659 
3660         * xml/dom_nodeimpl.cpp (replaceChild/appendChild/removeChild):
3661         Reverting patch which invalidated layout on child when it was attached.
3662 
3663 2003-10-20  Lars Knoll <knoll@kde.org>
3664 
3665         * fix most issues with the layering code by
3666         merging and adapting safaris implementation
3667         * fix a bug in RenderBox::calcAbsoluteVertical(), that probably
3668         has destroyed a lot of layouts.
3669         * don't add the scroll offset in RenderBox::paintBoxDecorations()
3670 
3671 2003-10-20  Dirk Mueller  <mueller@kde.org>
3672 
3673         * css/html4.css (UL,MENU,DIR,OL): don't set flow-around-floats (#53429).
3674 
3675 2003-10-20  David Faure  <faure@kde.org>
3676 
3677         * xml/dom_docimpl.cpp (defaultEventHandler): set current target to 0 for window events.
3678         * ecma/kjs_events.cpp (handleEvent): Window events like window.onload window.onresize etc.
3679         must have 'this' set to the window (not to the document).
3680 
3681 2003-10-20  Dirk Mueller  <mueller@kde.org>
3682 
3683         * rendering/render_form.cpp (layout): set IE-CSS-extension style palette
3684         on <textarea> scrollbars (#56532).
3685 
3686         * rendering/render_layer.cpp (showScrollbar): set IE-CSS-extension styled
3687         palette on the overflow=scroll/auto scrollbars.
3688 
3689         * rendering/render_frames.cpp (close): reorder. updateWidget() might
3690         delete this.
3691 
3692         * html/html_formimpl.cpp (value): return the DOM "defaultValue" when we have
3693         no renderer.
3694         (encoding): submit textarea even if display=none (#49829)
3695 
3696         * ecma/kjs_dom.cpp (getValueProperty): add bindings to clientWidth/Height,
3697         scrollWidth/height,offsetTop/left,offsetWidth/Height,offsetParent.
3698         (getValueProperty): don't map body to canvas (#59676).
3699 
3700         * split up borderSpacing into a horizontal and vertical border spacing so that
3701         tables can have assymmetric spacing.
3702 
3703         * html/htmlparser.cpp (insertNode): don't set css list position on stray <li>
3704         elements. its an inherited attribute, and might mess up rendering of nested
3705         <ul>/<ol> constructs.
3706 
3707         * rendering/render_list.cpp: ListItems are no longer floats.
3708 
3709 2003-10-19  Dirk Mueller  <mueller@kde.org>
3710 
3711         * html/html_headimpl.cpp (childrenChanged): make sure that we respect the media
3712         attribute of <style> (#47786).
3713 
3714 2003-10-19  Harri Porten  <porten@kde.org>
3715 
3716         * html/html_documentimpl.cpp (setCookie): use latin1 encoding to
3717         have a 1:1 translation of the lowest Unicode row.
3718 
3719 2003-10-19  Dirk Mueller  <mueller@kde.org>
3720 
3721         * html/htmltokenizer.cpp (parseEntity): when entity is terminated and result
3722         is not-ascii, require ending ';'. khtmltests/html/parser/obscure_entity_tokenizing.html
3723 
3724 2003-10-18  Dirk Mueller  <mueller@kde.org>
3725 
3726         * css/cssstyleselector.cpp (checkOneSelector): fix selector list matching
3727         when substrings match in a word. we have to test if we matched a complete word,
3728         otherwise its not a match.
3729 
3730         * html/htmltokenizer.cpp (parseEntity): don't do the magic-unterminated-entities-IE-hack
3731         when inside a tag. fixes <a href="/foo.html&section=2">
3732 
3733         * html/htmlparser.cpp (insertNode): fix typo (#66200).
3734 
3735         * rendering/render_table.cpp (seekCell): make static. check for out of bounds.
3736         * rendering/render_table.cpp (RenderTableSection::checkSelectionPoint): fix
3737         brain damage (#66198).
3738 
3739 2003-10-14  David Faure  <faure@kde.org>
3740 
3741         * misc/htmltags.in, html/htmlparser.cpp, html/dtd.cpp: added very basic
3742         support for <ilayer>, much like <layer>, as a generic block element.
3743         Fixes sites looking for such elements by ID, like www.sp ort1.de's diashow.
3744 
3745 2003-10-14  Wilco Greven <greven@kde.org>
3746         * ecma/kjs_window.cpp (tryCall): Scroll should do the same as
3747         ScrollTo, not ScrollBy. #63301
3748 
3749 2003-10-14  David Faure  <faure@kde.org>
3750 
3751         * xml/dom_nodeimpl.cpp (handleLocalEvents): Fixed infinite loop in
3752         NodeImpl::handleLocalEvents due to braindead QPtrList behavior. #61623.
3753 
3754 2003-10-10  Harri Porten  <porten@kde.org>
3755 
3756         * ecma/kjs_html.cpp: title and alt attributes should never be null
3757 
3758         * ecma/kjs_html.cpp (toString): make use of alt attribute if set
3759 
3760 2003-10-09  Dirk Mueller  <mueller@kde.org>
3761 
3762         * ecma/kjs_dom.cpp (putValueProperty): don't scroll layer when there is is nothing
3763         to scroll. (David Hyatt)
3764 
3765         * rendering/render_object.cpp (scrollHeight): return overflowHeight() not contentHeight()
3766         by default. (David Hyatt)
3767 
3768         * rendering/render_object.cpp (scrollWidth): return overflowWidth() not contentWidth()
3769         by default. (David Hyatt)
3770 
3771         * html/htmltokenizer.cpp (parseEntity): Improve tokenizing of unterminated
3772         entities.
3773 
3774 2003-10-09  Leo Savernik  <l.savernik@aon.at>
3775 
3776         * rendering/render_object.{cpp,h} (getTextDecorationColors),
3777         rendering/render_text.{cpp,h} (InlineTextBox::paintDecoration, RenderText::paintObject),
3778         rendering/render_style.{cpp,h},
3779         css/cssstyleselector.cpp (styleForElement):
3780         fixed text-decoration issues by merging RenderObject::getTextDecorationColor
3781         from Safari, changed CSSStyleSelector appropriately
3782 
3783         * rendering/render_text.{cpp,h} (InlineTextBox::paintDecoration),
3784         rendering/font.{cpp,h} (drawText, drawDecoration):
3785         fixed drawing of text decoration within selected text
3786 
3787         * rendering/render_text.cpp (paintObject),
3788         rendering/font.{cpp,h} (drawText):
3789          fixed overspilling of selection with unusual line-height configurations
3790 
3791 2003-10-07 Germain Garand <germain@ebooksfrance.org>
3792 
3793         * khtmlview.cpp (viewportMouseReleaseEvent/viewportMouseMoveEvent): forward
3794         meaningful peripheral mouse events to focused widget to restore correct
3795         mouse handling in proxied widgets. #65216 (selection part)
3796 
3797         * rendering/render_replaced.cpp (handleEvent):
3798         map MOUSEOUT/MOUSEOVER DOM events to Enter/Leave events. Honours stacking
3799         while mouse buttons are pressed.
3800 
3801         * html/html_formimpl.cpp (defaultEventHandler): forward MOUSEOUT/MOUSEOVER
3802         to handleEvent
3803 
3804 2003-10-06  Daniel Molkentin  <molkentin@kde.org>
3805 
3806         * ecma/kjs_window.cpp: added window.open targets _self and replace
3807 
3808 2003-10-06  David Faure  <faure@kde.org>
3809 
3810         * ecma/kjs_html.cpp: Fixed crash due to onload=null in the onload event
3811         handler (#57195).
3812 
3813 2003-10-06  Dirk Mueller  <mueller@kde.org>
3814 
3815         * khtml_part.cpp (jScript): remove broken #ifdef'ery.
3816         (popupMenu): add a QGuardedPtr to detect the case when we're destructed
3817         before the popup menu is closed. avoid accessing any "this" then.
3818         #43389
3819 
3820         * khtmlview.cpp (viewportMousePressEvent): reorder afaik unrelated code
3821         to make the one call entering a local event loop the last, so that we can
3822         cleanly exit when it the view is already deleted.
3823 
3824         * khtml_ext.cpp (KHTMLPopupGUIClient): pass QObject parent
3825 
3826 2003-10-05  Dirk Mueller  <mueller@kde.org>
3827 
3828         * ecma/kjs_css.cpp (tryPut): Fix CSSValue refcounting error causing major
3829         memory leak.
3830 
3831         * dom/css_value.cpp/h (class CSSStyleDeclaration): make accessors const. Add
3832         binary compatibility wrappers.
3833 
3834 2003-10-04 Germain Garand <germain@ebooksfrance.org>
3835 
3836         * rendering/render_replaced.cpp (baselinePosition): use setPos to adjust
3837         layer position if needed. Fix relatively positioned widgets not being painted.
3838 
3839 2003-10-04  Dirk Mueller  <mueller@kde.org>
3840 
3841         * html/htmlparser.h (class KHTMLParser): keep "current" NodeImpl referenced
3842         to avoid ugly crashes when DHTML deletes the node while we're still parsing.
3843         #57020, testcase alja.html
3844 
3845 
3846 2003-10-04  Dirk Mueller  <mueller@kde.org>
3847 
3848         * khtml_settings.cc (init): change default for JS debugger to off.
3849 
3850         * html/html_elementimpl.cpp (createContextualFragment): Fix memory
3851         leaks. Adjust code style. Adjust return to avoid dangling return leaks.
3852 
3853         * xml/dom2_rangeimpl.cpp (createContextualFragment): adjust return type.
3854 
3855         * html/html_elementimpl.h (class HTMLElementImpl): adjust return type.
3856 
3857         * dom/dom2_range.cpp (createContextualFragment): Adjust to DocumentFragment
3858         return type.
3859 
3860