fix selection in redirected sub-frames.
[kdelibs.git] / khtml / ChangeLog
blob94661cd6986a2b551396e9d1886cfd4432194be1
1 2007-10-13  Allan Sandfeld Jensen <kde@carewolf.com>
3         Update HTML-Parser to parse more HTML5 like, and allow custom HTML tags.
5         * html/dtd.{h,cpp}: Make all block elements more equal, treat custom tags like <SPAN>
6         * html/htmlparser.{h,cpp}: Treat actual close-tags differently than implicit close.
7         * html/htmltokenizer.cpp: Parse custom HTML tag
9 2007-10-09  Allan Sandfeld Jensen <kde@carewolf.com>
11         Optimize the case of double descendant selectors "a b c",
12         to avoid O(n^2) run-time where n is the depth of the DOM tree.
14         * css/cssstyleselector.h: Define new early termination value for checkSelector
15         * css/cssstyleselector.cpp: Bail-out when the selector-chain can't possibly match
17 2007-01-21  Allan Sandfeld Jensen <kde@carewolf.com>
19         Handle dynamic updates of default non-inherited properties that are inherited explicitly
21         * rendering/render_style.h: Add inheritedNoninherited flag
22         * xml/dom_nodeimpl.{h,cpp}: virtual function affectedByNoInherit
23         * xml/dom_textimpl.h: affectedByNoInherit is always true for text-nodes
24         * xml/dom_elementimpl.cpp: NoInherit changes descends into children like Inherit changes,
25         when affectedByNoInherit is true for the child node.
26         * css/cssstyleselector.cpp: Set inheritedNoninherit whenever inherit is handled in a NonInherited property.
28 2006-11-14  Allan Sandfeld Jensen <kde@carewolf.com>
30         Implement overflow-x and overflow-y
32         * css/*.*: New properties
33         * rendering/render_style.{h,cpp}: New properties
34         * rendering/render_object.h: New functions scrollsOverflowX() and scrollsOverflowY
35         * rendering/render_layer.h: Remove depricated function moveScrollbarsAside()
36         * rendering/render_layer.cpp: More fine grained creation of scrollbars
37         * khtmlview.cpp: More fine grained creation of scrollbars
38         * rendering/render_block.cpp: Use new functions
39         * rendering/render_box.cpp: Use new functions
40         * rendering/bidi.cpp: Use new functions
42 2006-11-13  Allan Sandfeld Jensen <kde@carewolf.com>
44         Merge text-overflow:ellipis from WebCore
46         * css/*.*: New property and values
47         * rendering/render_style.{h,cpp}: New property and values
48         * rendering/render_line.{h,cpp}: New line-box for ellipsis
49         * rendering/bidi.cpp: Two functions to remove and create ellipsis boxes
50         * rendering/render_text.{h,cpp}: Add the ability to truncate text at a certain point.
52 2006-06-28  Germain Garand  <germain@ebooksfrance.org>
54         make updating of addRule/removeRule/insertRule work
55         cf. http://www.quirksmode.org/dom/w3c_css.html#change
57         * css/css_stylesheetimpl.cpp
58             (insertRule/deleteRule): shallow update of styleselector.
59         * xml/dom_docimpl.{h,cpp}
60             (updateStyleSelector): new boolean argument for shallow recalculation, when all sheets are known.
61             (DocumentImpl::recalcStyleSelector): split.
62             (DocumentImpl::rebuildStyleSelector): new from split. Recreate styleselector with known sheets.
64 2006-06-27  Germain Garand  <germain@ebooksfrance.org>
66         . Correct drawing of borders on iframes and objects (#118277/#56109)
67         . Frameborder attribute for iframes (http://www.w3.org/TR/html401/present/frames.html#adef-frameborder)
68         . Fix widget counter-mask not being updated in time, thus sometimes missing a repaint (e.g: http://lequipe.fr)
70         * html/html_baseimpl.{h,cpp} (HTMLIFrameElementImpl::parseAttribute): parse frameborder attribute. Defaults to true as per specification.
71         (HTMLIFrameElementImpl::updateFrame/attach): apply/remove frameborder style at attachment time.
72         * khtmlview.cpp (drawContents): fix counter-mask problem. Widget geometry is not accurate before painting, so we must
73         use the RenderObject's.
74         * rendering/render_frames.h (paddingTop/paddingBottom/paddingLeft/paddingRight): reimplement. Frames have no padding.
75         (RenderPartObject::canHaveBorder): reimplement. True.
76         * rendering/render_object.cpp (RenderObject::updateWidgetMasks): clip mask to correct width/height, though it doesn't matter much on X11.
77         * rendering/render_replaced.h (RenderWidget::borderTop/borderBottom/borderLeft/borderRight): percolated down from RenderForm.
78         Frames/Iframes also need that reimplementation.
80 2006-06-22  Germain Garand  <germain@ebooksfrance.org>
82         Implement floating auto-width table quirk
84         * rendering/render_block.cpp (positionNewFloats): in quirkmode, floated auto-width
85         tables try to fit within remaining linewidth, so look for minWidth, and relayout if
86         position found ends up being narrower than current table width.
88 2006-06-20  Germain Garand  <germain@ebooksfrance.org>
90         Don't let a float serie grow an object's maxwidth beyond the available width
92         * rendering/render_block.cpp (calcInlineMinMaxWidth/calcBlockMinMaxWidth): lazzily check available width
93         so floats don't overflow it if they can break line.
94         * rendering/render_box.{h,cpp} (availableWidth{,Using}): new. Like availableHeight{,Using}
95         * rendering/render_canvas.cpp (RenderCanvas::layout): set m_viewportWidth before recalculating minmax, as
96         availableWidth needs it.
98 2006-06-15  Allan Sandfeld Jensen <kde@carewolf.com>
100         Merge CSS3 properties background-size, background-origin and background-clip from WebCore
102         * rendering/render_style.{h,cpp}: New properties
103         * rendering/render_box.cpp: Handle the values in paintBackgroundExtended.
104         * dom/css_value.h: Add CSS_PAIR primitive value
105         * css/css_valueimpl.{h,cpp}: Add PairImpl primitive value
106         * css/cssstyleselector.cpp: New properties
107         * css/cssvalues.in: New values
108         * css/cssproperties.in: New properties
109         * css/cssparser.{h,cpp}: Clean-up short-hand parsing WC style
111 2006-06-14  Allan Sandfeld Jensen <kde@carewolf.com>
113         Implement replaced CSS(3) content, and fix various details in generated pseudo elements for CSS 2.1
115         * rendering/render_style.{h,cpp}: Add REPLACED and MARKER pseudo styles
116         * rendering/render_container.{h,cpp}:
117             (updatePseudoChild) Allow display: block as per CSS 2.1 standard
118             (updateReplacedContent) Handle changes in Replaced content.
119             (childrenAllowed) forbid children when generated content is used, this prevents
120                  their render-objects from being attached.
121         * rendering/render_block.cpp: Postpone updatePseudoChilden to attachment because block
122             children might need the elements parents.
123         * rendering/render_inline.cpp: ditto
124         * rendering/render_generated.{h,cpp}: Add new class RenderGlyph to render list-style glyphs (square, disc, etc.)
125         * xml/dom_nodeimpl.cpp:
126             (NodeImpl::diff) detect changes in content and return Detach
127         * css/css_base.{h,cpp}: Add marker and replaced pseudo-styles
128         * css/cssstyleselector.cpp:
129             (checkOneSelector) Allow content on more elements
130             (precomputeAttributeDependencies) Track attributes inside :not elements as well
132 2006-06-08  George Staikos <staikos@kde.org>
134         Fix <a><label><img not in a form not being clickable
136         * html/html_formimpl.cpp: let the event bubble
138 2006-05-31  Allan Sandfeld Jensen <kde@carewolf.com>
140         Merge WC bug-fixes and clean-up for positioned box-model
142         * rendering/Render_box.{h,cpp}:
143             (RenderBox::calcAbsoluteHorizontal):
144             (RenderBox::calcAbsoluteHorizontalValues):
145             (RenderBox::calcAbsoluteVertical):
146             (RenderBox::calcAbsoluteVerticalValues):
147             (RenderBox::calcAbsoluteHorizontalReplaced): Handle replaced case separately.
148             (RenderBox::calcAbsoluteVerticalReplaced): ditto.
150 2006-04-20  Allan Sandfeld Jensen <kde@carewolf.com>
152         Implement full support for CSS updates on dynamic DOM and user-interaction
154         * misc/multimap.h: NEW: A "fast on insert" map with multiple values per key
155         * xml/dom_restyler.{h,cpp}: NEW: The dynamic DOM restyler keeps track of changes and issues restyles
156         * xml/dom_docimpl.h:
157                 Remove obsolete usesDescendencyRules.
158                 Add a dynamicDomRestyler to the document.
159         * xml/dom_nodeimpl.{h,cpp}: Add dynamic DOM restyler hooks.
160         * xml/dom_elementimpl.{h,cpp}:
161                 Remove obsolete usesDescendencyRules logic.
162                 Remove obsolete laterestyle logic.
163                 Implement DOM restyler hooks.
164         * css/cssstyleselector.{h,cpp}:
165                 Clean-up checkSelector, removing obsolete and redundant arguments
166                 Fix :link and :visited selector.
167                 Setup all dynamic dependencies in checkOneSelector.
168         * css/cssparser.{h,cpp}: Remove defaultNamespace
169         * css/css_stylesheetimpl.{h,cpp}: Add defaultNamespace
170         * css/parser.{y,cpp}:
171                 Remove calls to usesDescendencyRules.
172                 Use defaultNamespace from stylesheet rather than parser.
173         * rendering/render_style.h: Remove obsolete affectedByHoverRules and affectedByActiveRules
174         * rendering/render_layer.cpp: Use dynamic DOM restyler to restyle :hover and :active nodes.
175         * html/html_formimpl.cpp: Call dynamic restyler for changes to disabled state
177 2006-04-09  Allan Sandfeld Jensen <kde@carewolf.com>
179         Distinguish between having no determined namespace, and determined to have no namespace
181         * xml/dom_nodeimpl.h: Split noNamespace into defaultNamespace and emptyNamespace
182         * css/cssstyleselector.cpp: Change HTML-hack to only trigger on undetermined namespace.
184 2006-04-04  Allan Sandfeld Jensen <kde@carewolf.com>
186         Make so-called nondeterministic CSS matching work
188         * css/cssstyleselector.{h,cpp} (checkSubSelector/checkOneSelector):
189             Extract combinator matching from checkSelector and make it a recursive function. Clean-up checkOneSelector.
191 2006-03-25  Germain Garand  <germain@ebooksfrance.org>
193         Scope: fix handling of nested/external scripts in the tokenizer (#91701)
195         * misc/stringit.h (TokenizerQueue): a LIFO stack of TokenizerStrings
196         * html/htmltokenizer.{h,cpp} (scriptHandler/write/notifyFinished): use a TokenizerQueue to store
197         postponed fragments while executing/loading scripts.
198         (fixUpChar): unrelated - fill in missing unicode replacements.
200 2006-03-20  Dirk Mueller <mueller@kde.org>
202         * misc/loader.cpp: fix pixmap leak in tiled_pixmap()
204 2006-03-20  Allan Sandfeld Jensen <kde@carewolf.com>
206         Improve the CSS :lang() selector to match clarified specification
208         * khtml_part.cpp: parse HTTP content-language
209         * xml/dom_docimpl.cpp: parse HTTP-EQUIV content-language
210         * css/cssstyleselector.cpp: match :lang() against parents and ultimately the document
212 2006-03-07  Germain Garand  <germain@ebooksfrance.org>
214         Scope: relayout/repaint/widget masks fixes. Refine stacking context exploration. Optimise.
216         * khtmlview.cpp (drawContents): use widget geometry rather than the RenderWidget's rect (fixes widget borders not being updated)
217         Check if widget is in the dirty rect before doing any work.
219         * rendering/render_block.cpp (layoutBlockChildren): I meant !child->isPositioned() here, not isPositioned(). No need to
220         dirty positioned children as this is handled by the containing block chain through layoutPositionedObjects
221         (layoutPositionedObjects): always relayout fixed objects.
223         * rendering/render_canvas.cpp (layout): check canvas dimensions and call layoutBlock directly with relayoutChildren boolean.
225         * rendering/render_layer.{h,cpp} (paintedRegion): constrain our shape to the visibleRect. Use convertToLayerCoords to get a correct
226         visibleFlowRegion (updateWidgetMasks): don't forget to update the mask if it reverts to none at all.
228         * rendering/render_object.{h,cpp} (containingBlock): for relpos inlines, return the nearest block (skipping to next containingBlock gives
229         stalled layout flags problems - #121653). (updateWidgetMasks): mask the content box, not the border box.
230         (enclosingStackingContext) new. Returns the layer defining current stacking context.
232         * rendering/render_replaced.{h,cpp} (isKHTMLWidget): new flag for KHTML-proxied widgets.
233         (detach/resizeWidget/setQWidget/layout/updateFromElement/slotWidgetDestructed/setStyle/paint): use the flag insead of strcmp's
234         Only allow !khtml widgets to register in the view (only those need masking).
236 2006-03-05  Charles Samuels  <charles@kde.org>
237         * link not accessable with negative text-indent (#96275)
238         * Wrong :hover effect with negative text-indent (#90510)
239         * text not selectable if it has a negative text-indent
241 2006-03-05  Charles Samuels  <charles@kde.org>
242         * javascript timeouts that cross a midnight boundary shall not occur early
244 2006-03-03  Germain Garand  <germain@ebooksfrance.org>
246         get iframes, objects and some other overlaid widgets to obey their stacking context (#31121)
248         * khtmlview.cpp: mask widgets more precisely (i.e. allow layers to paint over overlaid widgets,
249         when they ought to).
251         * rendering/render_canvas.{cpp,h}: update widget masks after pos child layout/positioning;
252         set a boolean m_needsWidgetMasks to optimise for common case (where we have no such widgets).
254         * rendering/render_layer.{cpp,h} (updateWidgetMasks/paintedRegion):  build a rough mask for the positive Z order
255         childs. We'll apply that mask later to widgets that are under our aegis.
257         * rendering/render_object.{cpp,h} (visibleFlowRegion): helper for calculation of broad region we want to mask in flows.
258         (updateWidgetMasks): walk our children looking for widgets suitable to masking. Apply our enclosingLayer's mask,
259         transformis transformandi.
261         * rendering/render_replaced.cpp: overlaid widgets must advertise their existence to the enclosing layer.
263 2006-03-01  Germain Garand  <germain@ebooksfrance.org>
265         Improve selectorText
267         * css/css_base.cpp (extractPseudoType): don't reset 'value' after parsing the pseudo-style, we need it for selectorText.
268           (selectorText): - correctly handle CSS3 pseudo selectors,
269                           - merge some improvements from WebCore (Mitz Pettel sub-selector patch + fix ::Set handling)
270         * css/css_ruleimpl.cpp (selectorText): handle of multiple, comma-separated selectors
272 2006-02-28  Germain Garand  <germain@ebooksfrance.org>
274         Common-case style selection optimisation inspired from WebCore.
276         * css/css_base.cpp/.h: add 'Class' to possible matching modes
277         * css/cssstyleselector.cpp: treat 'Class' extra, not anymore as an ordinary List.
278         * css/parser.cpp/y: use 'Class' matching mode
279         * html/html_elementimpl.cpp: when parsing ATTR_CLASS, set a boolean to remember if it is or not a class list.
280         * xml/dom_elementimpl.{cpp,h}: add m_hasClassList boolean + setter/getter
282 2006-02-28  Germain Garand  <germain@ebooksfrance.org>
284         * rendering/render_block.cpp (layoutBlockChildren): be more efficient with regard to positioned objects relayout.
285         Merge WC margin-collapse regression fix (WC/#3508).
286         (layoutPositionedObjects) Objects with staticX() need a relayout too.
287         * rendering/render_canvas.cpp (layout): no need to relayout positioned objects here. This would mark entire branches of the tree
288         as needing a layout, thus stalling update requests in those branches (#116626)
290 2006-01-14  Allan Sandfeld Jensen <kde@carewolf.com>
292         * rendering/render_image.cpp (calcReplacedWidth,calcReplacedHeight):
293         Respect both min/max sizes and aspect-ratio when resizing.
295 2006-01-03  Allan Sandfeld Jensen <kde@carewolf.com>
297         * css/cssparser.cpp: Allow content: normal | none
298         * css/cssstyleselector.cpp: Handle content: normal | none
300 2005-12-09  Germain Garand  <germain@ebooksfrance.org>
302         implement quirky HTML alignment ; introduce special float values
303         -khtml-left/-khtml-right to this effect.
305         * css/cssparser.cpp: ditto. Fix memory leak from Function struct deletion also.
306         * css/cssstyleselector.cpp: ditto.
307         * css/html4.css: set as default style for table[align="left/right"]
308         * html/html_tableimpl.cpp (parseAttribute): remove setting of float property
309         * rendering/render_block{h,cpp}: quirky HTML alignment never clears, and never cause fafs to clear.
310           Only examine the last floating object on line, so as to match MSIE behaviour.
311         * rendering/render_style.h: extra float enumeration values
312         * css/css_renderstyledeclarationimpl.cpp (getPropertyCSSValue): adjust
314 2005-12-06  Dirk Mueller  <mueller@kde.org>
316         * html/htmltokenizer.cpp: don't treat <!---> specially.
317         fixes bug 93799.
319 2005-12-02  Charles Samuels  <charles@kde.org>
320         rendering/bidi.cpp: don't sometimes take text far past the end
321         of the block's margin on justified text.  bug #106081
323 2005-11-08  Germain Garand  <germain@ebooksfrance.org>
325         sizing of percent objects within table cells
327         * rendering/render_box.cpp (calcPercentageHeight): transfer most of the logic for table cells in render_table as
328         it was partly redundant here. Don't apply the table cell sizing hacks in strict mode - no other engine does that.
329         Don't forget anonymous blocks - those must not stop recursion obviously.
330         Move substraction of the border/padding after calculation (spotted in WC)
332         * rendering/render_table.{cpp,h}:
333         had member booleans to hold whether flexing of cells in a row is
334         needed, and in the affirmative, whether we need to mark our anonymous childs for relayout (hence go one level deeper).
335         Part of line 1394 comes from WebCore.
336         Also: don't allow negative offset in vertical alignment when content overflows ; matches MSIE better.
338 2005-10-28  Germain Garand  <germain@ebooksfrance.org>
340         * rendering/table_layout.cpp (calcEffectiveWidth): do proportional distribution of overflowing minwidth
341         when all cols are percent (#104156)
343 2005-10-21  Germain Garand  <germain@ebooksfrance.org>
345         * rendering/bidi.cpp (findNextLineBreak): implement needed quirk for line breaking of
346         replaced elements within table cells.
347         * rendering/render_block.cpp (calcInlineMinMaxWidth): ditto.
348         Bugs #93745, #72457
350 2005-10-20  Dawit Alemayehu <adawit@kde.org>
351        * ecma/xmlhttprequest.cpp:
352        -Add support for default HTTP referer header. Fixes bug# 113962.
353        - Sanitize all setRequestHeader calls:
354          - We now use a BANNED_HTTP_HEADERS list to filter out
355            potentially problematic headers.
356          - We always call open on "get" and "post" requests set
357            through this function.
358          - We sanitize any attempts to set the "referer" field.
360 2005-10-15  Dawit Alemayehu <adawit@kde.org>
361         * ecma/xmlhttprequest.cpp: Handle HTTP response headers case insensitively.
362         Fix for bug 110768.
364 2005-10-14  Lubos Lunak <l.lunak@kde.org>
366         * khtmlview.cpp: show accesskeys for all frames
368 2005-10-13  Allan Sandfeld Jensen <kde@carewolf.com>
370         WebCore merge: correct name on IFrames
372         * html/html_baseimpl.cpp: copied FrameElementImpl behavior for initializing name
374 2005-10-13  Allan Sandfeld Jensen <kde@carewolf.com>
376         WebCore merge: blur and focus on buttons
378         * html/html_formimpl.{cpp.h}: Add form and blur
379         * dom/html_form.{cpp,h}: ditto
380         * ecma/kjs_html.{cpp,h}: ditto
382 2005-10-08  Germain Garand  <germain@ebooksfrance.org>
384         Port soft-hyphen support from WebCore
386         * rendering/bidi.cpp (findNextLineBreak): main skipping/breaking logic
388         * rendering/render_text.{cpp,h} (calcMinMaxWidth): account for soft hyphen
390 2005-10-08  Dawit Alemayehu <adawit@kde.org>
391         * ecma/xmlhttprequest.cpp: Do not append NULL character to end of posted
392         data. Fix for bug 113393.
394 2005-10-08  Germain Garand  <germain@ebooksfrance.org>
396         Follow Mozilla/Opera in considering the Window object as an implementation of the AbstractView/ViewCSS
397         DOM2 interfaces. Return the Window object when available ; an AbstractView if not.
399         * ecma/kjs_dom.cpp (DefaultView): return the view's Window object if available.
401         * ecma/kjs_window.{cpp,h} (GetComputedStyle): implement, as in AbstractView.
403 2005-10-07  Germain Garand  <germain@ebooksfrance.org>
405         * rendering/bidi.cpp (findNextLineBreak): integrate all positioned inlines in the lineboxes to get a correct static position
406         in initial whitespace. Use some midpoints voodoo to take care of whitespace.
408         cf. unsorted/113527.html
410 2005-10-03  Germain Garand  <germain@ebooksfrance.org>
412         let the initial containing block be the Canvas, as mandated by latest
413         draft of CSS 2.1 10.1.1
415         * rendering/render_object.cpp (containingBlock, container): don't special case the Root, it's no more
416         an initial containing block.
418         * rendering/render_block.{cpp,h} (*AbsolutePosition): separate calculation
419         of positioned objects' contribution to the object's rightmost/lower/leftmost position.
421         * rendering/render_box.cpp (setStyle, containingBlockWidth): checking for isCanvas where applicable.
423         * rendering/render_canvas.cpp (docWidth, docHeight):
424         take into account absolutely positioned objects from the canvas itself.
426 2005-09-18  Allan Sandfeld Jensen <kde@carewolf.com>
428         Implementation of real page-breaking algorithm respecting the CSS 2.1 specification.
430         * khtmlview.cpp:
431         Do layout for page-breaks before printing.
432         Use screen resolution as default instead of 72DPI.
433         * css/html4.css: Add the print media default styles
434         * rendering/render_style.*: Add RenderPageStyle as the style for the page-context. Not yet used.
435         * rendering/render_canvas.*:
436         Separate paged and static properties of printing.
437         Use rootHeight as pageHeight.
438         Add RenderPage as the page-context(@page). Not yet used.
439         * rendering/render_flow.*:
440         (deleteLastLineBox) new function to remove the last line (in order to redo it).
441         * rendering/render_line.*:
442         (removeFromLine) ditto
443         * rendering/bidi.cpp: New algorithm in layoutInlineChildren for doing page-breaks at layout-time,
444         and respecting orphans/widows CSS settings.
445         * rendering/render_block.cpp:
446         (makePageBreakAvoidBlocks) Function for collecting runs of page-break-after/before: avoid blocks, so
447         they can be moved across page-breaks collectively.
448         (layoutBlockChildren) New algorithm for doing page-breaks at layout time,
449         and respecting page-break-after/before/inside
450         * rendering/render_table.cpp: Force page-breaks to happen inside cells and not between rows.
451         (RenderTableSection::addSpaceAt) moves later table-rows down when one cell expands to handle a
452         page-break.
453         * rendering/render_list.cpp: Remove truncation logic from paint
454         * rendering/render_text.cpp: ditto
456 2005-08-18 Lu� Pedro Coelho <luis@luispedro.org>
457         * rendering/render_image.cpp:  Scale images correctly (adjust both height and width)
458           when max-width is used.
460 2005-08-10  Dawit Alemayehu <adawit@kde.org>
461         * ecma/xmlhttprequest.cpp: Convert a 304 (Not Modified) HTTP response in
462           XMLHttpRequest to a 200 (OK) response to make KHTML conform to IE's and
463           Mozilla's behavior. BUG: 110272
465         * ecma/xmlhttprequest.cpp: Factored out the HTTP status line parsing code
466           into a single function.
468 2005-08-02  Allan Sandfeld Jensen <kde@carewolf.com>
470         Imported background parsing and painting from WebCore.
472         * css/cssparser.{h,cpp}: New short-hand parser for background
473         * css/cssstyleselector.{h,cpp}:
474         * rendering/render_style.{h,cpp}: Support multiple backgrounds using BackgroundLayer
475         * rendering/render_box.{h,cpp}: Use paingBackgrounds to paint multiple backgrounds
476         * rendering/render_line.{h,cpp}: ditto
477         * rendering/render_object.{h,cpp}: ditto
478         * rendering/render_form.cpp:
479         * khtml/rendering/render_table.cpp:
481 2005-08-02  Allan Sandfeld Jensen <kde@carewolf.com>
483         * rendering/render_block.{h,cpp}: Split layoutBlockChildren into several auxilary functions.
485 2005-07-26  Andreas Kling <kling@impul.se>
487         * html/htmlparser.cpp: Block <input type="image"> elements if SRC attribute is ad-filtered.
488         * khtml_part.cpp: Include <input type="image"> elements in AdBlocK filter runs.
490 2005-07-25  Dawit Alemayehu <adawit@kde.org>
491         * ecma/xmlhttprequest.cpp: Use the charset provided by the remote host through the HTTP headers.
493 2005-07-25  Andreas Kling <kling@impul.se>
495         Make new ad filters have instant effect (either hide affected elements
496         replace them with the "blocked" pixmap.)
498         * khtml_part.{cpp,h}: Added runAdFilters() function which is called from reparseConfiguration()
499         * khtml_ext.cpp: Call KHTMLPart::reparseConfiguration() after adding new filters.
500         * misc/loader.cpp: Create blockedPixmap in Cache::init() instead of the CachedImage constructor.
502 2005-07-19  Allan Sandfeld Jensen <kde@carewolf.com>
504         * rendering/render_box.{h,cpp}: Make sure we get content-sizes when reading fixed length values.
506 2005-07-19  Andreas Kling  <kling@impul.se>
508         * xml/dom_docimpl.cpp (isURLAllowed): Match ad filters against fully
509                 expanded URL.
511 2005-07-18  Andreas Kling  <kling@impul.se>
513         "Block IFrame..." context menu option
515         * khtml_ext.{cpp,h}: Added "blockiframe" to context popup menu
516         * khtml_popupmenu.rc: Same
517         * khtml_part.h: added KHTMLPopupGUIClient to friend classes
519 2005-07-08  Germain Garand  <germain@ebooksfrance.org>
521         vertical-align fixes
523         * rendering/render_object.cpp (getVerticalPosition): block level
524         elements must ignore vertical alignment (#92118). For Length values, check the parent
525         too. Don't use the parent's position if it's top/bottom - it's waiting for
526         our subtree's to complete! (cf. css/vertical-align.html)
528         * rendering/render_list.cpp (calcMinMaxWidth): if the marker is the error image,
529         avoid calculating bogus values.
531 2005-07-07  Allan Sandfeld Jensen <kde@carewolf.com>
533         There is nothing KHTML specific about keypress events. They might not be DOM2 or 3,
534         but MSIE, Mozilla and Safari all handles them as a valid event class.
536         * xml/dom2_eventsimpl.{h,cpp}: Allow KEYPRESS as a valid event type
537         * ./.: Rename KHTML_KEYPRESS_EVENT to KEYPRESS_EVENT
539 2005-07-05  Allan Sandfeld Jensen <kde@carewolf.com>
541         * html/htmlparser.cpp(insertElement): Do not create DLs for stray DT and DD
542                              (popBlock): Reopen residual tags
543         * html/dtd.cpp: Allow more elements under DL
545 2005-06-29  Allan Sandfeld Jensen <kde@carewolf.com>
547         * html/htmltokenizer.cpp: Reset discard when encountering tags or entities
549 2005-06-28  Allan Sandfeld Jensen <kde@carewolf.com>
551         * html/html_tableimpl.cpp (appendChild): Always add TBody to XHTML rows
552         * xml/xml_tokenizer.cpp (startElement): Remove hack for adding TBody to any row
554 2005-06-27  Stephan Kulow  <coolo@kde.org>
556         * html/html_formimpl.cpp (parseAttribute): Fix ignoring of align
557         attribute on form elements !image (patch by OpenDarwing #3360)
559 2005-06-25  David Faure  <faure@kde.org>
561         * html/htmlparser.cpp (insertNode): Fix parsing of <table><tr><caption>,
562         with code from WebCore, http://www.cs.cornell.edu/~maksim/WC/changesets/3747.html
564 2005-06-23  David Faure  <faure@kde.org>
566         * html/html_tableimpl.cpp (appendChild): Improve fix for bug #105586 to avoid
567         side effects with tfoot.
569         * khtml_run.cpp (foundMimeType): Mark child object (e.g. <embed>) as completed
570         after saving, running in external viewer, or cancelling, so that e.g. scheduled redirects
571         can happen. Patch by Andreas Kling <kling@impul.se>.
573 2005-06-20  Allan Sandfeld Jensen <kde@carewolf.com>
575         * ecma/kjs_events.cpp: Respect the DOM for MouseEvent::Button atleast when simulating Mozilla
577 2005-06-20  David Faure  <faure@kde.org>
579         * ecma/kjs_window.cpp (openWindow):  Treat empty string the same
580         as missing for third argument of window.open().
582 2005-06-20  Allan Sandfeld Jensen <kde@carewolf.com>
584         Merge handling of dynamically inserted scripts.
586         * html/html_headimpl.{h,cpp}: Load and execute dynamic scripts
587         * html/htmlparser.cpp: Set a createdByParser to not execute scripts twice.
588         * xml/xml_tokenizer.cpp: Ditto.
590 2005-06-19  George Staikos <staikos@kde.org>
591         * css/css_renderstyledeclarationimpl.{h,cpp}: Merge crash fix from
592         webcore (See bug #107460).
593         * css/css_valueimpl.{h,cpp}: Make m_node SharedPtr<>.
595 2005-06-18  Harri Porten  <porten@kde.org>
597         * ecma/kjs_window.cpp (openWindow): patch by Andreas Kling that
598         adds support for "scrollbars" option to window.open().
600 2005-06-14  Allan Sandfeld Jensen <kde@carewolf.com>
602         * rendering/render_style.{h,cpp}: Remove the quotes as counters hack
603         * css/cssstyleselectors.cpp: ditto
604         * rendering/render_container.{h,cpp} (updatePseudoChild): Clean and simplify
605         * rendering/render_generated.{h,cpp}: Split quotes from counters and
606         create new base class RenderCounterBase.
607         * rendering/render_object.cpp: Count quotes correctly
609 2005-06-14  Dirk Mueller <mueller@kde.org>
610         * ecma/domparser.{h,cpp}: Unbreak compilation.
612 2005-06-13  George Staikos <staikos@kde.org>
613         * ecma/xmlhttprequest.{h,cpp}: Disallow duplicated headers, and always
614                                        disallow Content-Length setting.
616 2005-06-09  Allan Sandfeld Jensen <kde@carewolf.com>
618         Implementing Mozilla extension DOMParser
620         * ecma/domparser.{h,cpp}: Implementation
621         * ecma/kjs_window.{h,cpp}: Exposing DOMParser
622         * misc/shared.h: khtml::SharedPtr<>
624 2005-06-08  Allan Sandfeld Jensen <kde@carewolf.com>
626         * html/html_tableimpl.{h,cpp}: Implement FRAME attribute
628 2005-06-03  Harri Porten  <porten@kde.org>
630         * ecma/kjs_window.cpp (put): don't crash on attempts to set a
631         property on a deleted window (bug #106697).
633 2005-06-03  George Staikos <staikos@kde.org>
634         * ecma/kjs_window.cpp: Escape HTML in message boxes like window.alert()
636 2005-06-02  Allan Sandfeld Jensen <kde@carewolf.com>
638         * rendering/render_block: Merge margin collapsing improvement from WebCore-146
640 2005-06-01  Harri Porten  <porten@kde.org>
642         * ecma/kjs_window.cpp: fixed prototype property lookup order of
643         global window object. Fixes endless loop on maps.google.com
644         (bug #98979).
646 2005-05-28  Allan Sandfeld Jensen <kde@carewolf.com>
648         Implement ideographic enumeration including the CSS 2.1 cjk-ideographic and several from CSS 3 List (working draft).
649         Also add three more numeric: (Lao, Thai and Tibetan)
651         * css/cssvalues.in: Add new CSS3 values with -khtml-
652         * rendering/render_style.h: Add new enums
653         * rendering/enumerate.cpp: Implement the ideographic algorithm.
655 2005-05-24  David Faure  <faure@kde.org>
657         * html/html_tableimpl.cpp (appendChild): Allow javascript to insert
658         a TR directly into a TABLE, creating a TBODY section if needed (bug #105586).
660 2005-05-21  Harri Porten  <porten@kde.org>
662         * html/html_documentimpl.cpp: emit onload event even if the
663         document has no body element (bug #105798).
665 2005-05-20  Allan Sandfeld Jensen <kde@carewolf.com>
667         Implement/fix CSS namespace selector and other XHTML fixes.
669         * css/css_base.h: Merge CSSNamespace from WebCore
670         * css/css_stylesheetimpl.{h,cpp}: Port determineNamespace and addNamespace from WC
671         * css/parser.y: Parse namespaces better
672         * xml/dom_docimpl.cpp: Add noNamespace to namespace functions
673         * xml/dom_nodeimpl.h: Add constants for any, no and xhtml namespaces
674         * xml/xml_tokenizer.cpp: Parse white space.
676 2005-05-18  Harri Porten  <porten@kde.org>
678         * xml/dom2_eventsimpl.cpp: recognize "dblclick" type in
679         addEventListener() calls (bug #98994).
681 2005-05-16  Harri Porten  <porten@kde.org>
683         * ecma/*.cpp: removed usage of deprecated KJS::Value::isNull()
685         * ecma/kjs_dom.cpp: reverted "null" change from previous day
686         until the compatibility to other browsers is investigated.
688 2005-05-15  Harri Porten  <porten@kde.org>
690         * ecma/kjs_dom.cpp: return "null" from getAttribute() and
691         getAttributeNS() if the attribute isn't set.
693         * html/html_elementimpl.cpp: always return a non-null string
694         from innerHTML() and innerText()
696 2005-05-14  Ivor Hewitt <ivor@ivor.org>
697         * khtml_settings.cc: Support full wildcard expressions in AdblocK
699 2005-05-12  Luciano Montanaro <mikelima@cirulla.net>
700         * html/html_formimpl.cpp: Make a return keypress activate form
701         buttons. Matches Mozilla.
703         * html/html_inlineimpl.cpp: make onclick() work for links too.
705 2005-05-12  David Faure  <faure@kde.org>
707         * khtmlview.cpp (dispatchKeyEvent): Don't send DOM keypress if
708         the DOM keydown that precedes it was blocked by javascript, as in IE.
710         * rendering/render_replaced.cpp (handleEvent): send Qt::KeyPress to the
711         widget for DOM keypress and not DOM keydown to allow sites to block a key
712         with onkeypress, #99749.
714 2005-05-11  Allan Sandfeld Jensen <kde@carewolf.com>
716         * html/html_objectimpl.cpp: Extract service-type from "data:" url and create
717         renderer for all images
719 2005-05-09  Allan Sandfeld Jensen <kde@carewolf.com>
721         Speed-up white-space collapsing by only allocating once.
723         * renderer/render_table.cpp: Remove static function cleanString
724         * xml/dom_stringimpl.cpp: Add collapseWhiteSpace function
726 2005-05-07  Harri Porten  <porten@kde.org>
728         * html/html_tableimpl.cpp (cellIndex): return meaningful values
729         using patch suggested by Rob in bug report #7690.
731         * ecma/kjs_window.cpp: allow setting location.href on foreign
732         windows opened by window.open() again (bug #101178).
734 2005-05-06  Ivor Hewitt <ivor@ivor.org>
736         fix #15848: First implementation of AdBlocK.
738         * khtml_ext.{cpp,h}: Add Blockimage to context popup menu
739         * khtml_popupmenu.rc: ditto
740         * khtml_settings.{cc,h}: Add adFilter settings and helper functions
741         * html/htmlparser.cpp: Strip blocked IMG tags
742         * misc/loader.{cpp,h}: Return replacement blocked images and refuse to load blocked scripts.
743         * misc/blocked_icon.{cpp,png}: Image for above
744         * xml/dom_docimpl.cpp: isURLAllowed returns false for blocked URL's
746 2005-05-02  David Faure  <faure@kde.org>
748         * ecma/kjs_html.cpp (HTMLCollectionProtoFunc::tryCall): Support for
749         non-standard item('<name>').
751 2005-05-02  David Faure  <faure@kde.org>
753         Propagate correct DOM exception code from checkAddChild to setInnerHTML.
754         * html/html_elementimpl.cpp (setInnerHTML, setInnerText)
755         * dom/html_element.cpp (setInnerHTML, setInnerText)
757 2005-05-01  Allan Sandfeld Jensen <kde@carewolf.com>
759         The mergeable of Daves Acid2 patches.
761         * renderer/render_block.cpp:
762             - Make sure that percentages that go to auto don't mess up the self-collapsing block check.
763             - Fix floats to not grow if child floats overhang but the height of the outer float is auto.
764         * renderer/render_box.{h,cpp}:
765             - Add support for min/max-width/height for positioned elements.
766             - Make sure percentage min-height goes to 0 and not auto when the percentage does not apply.
767         * renderer/render_table.cpp:
768             - Make sure empty tables honor CSS-specified height in strict mode.
769             - Fix baseline alignment within table cells to use the bottom of empty blocks.
771 2005-04-30  Harri Porten  <porten@kde.org>
773         * ecma/kjs_window.cpp: unbreak calling close() on other
774         windows. It has it own set of security checks.
776 2005-04-24  Harri Porten  <porten@kde.org>
778         * html/html_formimpl.cpp (value): never return a null string from
779         the value() function of input elements.
781 2005-04-18  David Faure  <faure@kde.org>
783         Special scope entries for event handlers are based on the DOM node on
784         which the handler is an attribute, not the event target, which also
785         allows to set it up at the time the event handler is created, not at
786         the time it fires (Safari merge).
788         Many files touched to simply pass the NodeImpl around.
790         Testcase events/eventhandlerscope.{html,js}
792 2005-04-15  Lubos Lunak <l.lunak@kde.org>
794         * khtmlview.{h,cpp}: Assign unused accesskeys automatically to elements
795         without accesskeys.
797 2005-04-06  Lubos Lunak <l.lunak@kde.org>
799         * khtmlview.{h,cpp}: Use KActions for type ahead find.
800         * khtml_part.{h,cpp}: ditto.
801         * khtml_part.{h,cpp}: Add Find Previous action.
802         * khtml_part.cpp (findTextNext): Fix changing direction while searching text.
804 2005-04-05  Lubos Lunak <l.lunak@kde.org>
806         * misc/loader_jpeg.cpp: Fix loading of progressive JPEGs.
808 2005-04-04  Lubos Lunak <l.lunak@kde.org>
810         * khtmlview.cpp: Don't use keyboard grab for type-ahead find.
812 2005-04-03  Allan Sandfeld Jensen <kde@carewolf.com>
814         * ecma/kjs_html.{h,cpp}: Implement frame and iframe .contentWindow
815         * ecma/kjs_window.{h,cpp}: Implement window.frameElement
817 2005-03-30  Allan Sandfeld Jensen <kde@carewolf.com>
819         * html/htmlparser.{h,cpp}: Merge WebCore handling of residual styles.
821 2005-03-29  Germain Garand  <germain@ebooksfrance.org>
823         Layer related fixes.
825         * ecma/kjs_dom.cpp (putValueProperty): scrollLeft/scrollTop need an
826         up-to-date rendering.
828         * rendering/render_box.cpp (repaintRectangle): apply scroll offset
829         to the repaint rectangle (overflow != visible objects).
831         * rendering/render_layer.{h,cpp} (repaint): rename markForRepaint to
832         less equivocal repaint.
833         (updateLayerPositions): small fixes.
834         (scrollToOffset): update our child layers (#102235)
836         * rendering/render_object.cpp (setStyle/repaintDuringLayout): rename ditto.
838 2005-03-29  Germain Garand  <germain@ebooksfrance.org>
840         offsetLeft/Top/width/Height/Parent improvements
842         * rendering/render_object.cpp (offsetLeft/offsetTop/offsetParent):
843         match IE behaviour in strict mode.
845         * rendering/render_table.{h,cpp} (RenderTableRow::offsetLeft/offsetTop/offsetHeight/offsetWidth):
846         reimplemented to return meaningful values (#102127)
848 2005-03-22  Allan Sandfeld Jensen <kde@carewolf.com>
850         * css/parser.y: Parse pseudo-elements and pseudo-classes separately.
851         * css/css_base.{h,cpp}: Treat pseudoElements and pseudoClass as differing match-types and
852         add compatibility transform from pseudoClass to pseudoElement for CSS2 pseudo-elements.
854 2005-03-22  Allan Sandfeld Jensen <kde@carewolf.com>
856         * html/htmltokenizer.cpp: Implement SGML attribute-value white-space parsing rules.
858 2005-03-22  Allan Sandfeld Jensen <kde@carewolf.com>
860         * html/htmlblockimpl.cpp: When a NS-layer gets DIV layer children. The NS layer should
861         let the DIV layer control position.
863 2005-03-22  Allan Sandfeld Jensen <kde@carewolf.com>
865         * misc/loader.cpp: Do not override existing charset with an empty one.
867 2005-03-21  Allan Sandfeld Jensen <kde@carewolf.com>
869         * html/htmltokenizer.cpp:
870             - Only skip first LF if immediately after PRE tag.
871             - Set prePos to 0 after BR tag
873 2005-03-18  Allan Sandfeld Jensen <kde@carewolf.com>
875         * xml/dom_docimpl.h: Add dictionary of CounterNodes
876         * rendering/render_object.{h,cpp}: Save 8 bytes overhead by moving counternodes to document
877         * rendering/render_list.cpp: Do not calculate counter value for unordered lists
879 2005-03-18  Germain Garand  <germain@ebooksfrance.org>
881         * xml/dom_nodeimpl.cpp (traverseNextNode): fix broken algorithm for stayWithin
882         case (#101711)
884 2005-03-18  Germain Garand  <germain@ebooksfrance.org>
886         make disabling of CSSheets via DOM actually do something.
888         * css/css_stylesheetimpl.{cpp,h} (setDisabled): update style selector.
890         * css/cssstyleselector.cpp (CSSStyleSelector): do not append rules
891         from disabled sheets.
893 2005-03-17  Leo Savernik  <l.savernik@aon.at>
895         * rendering/render_flow.cpp (repaint): Calculate height, do not simply
896         use the bottom overflow of the root line box.
898 2005-03-16  George Staikos  <staikos@kde.org>
900         * rendering/render_frames.cpp: some sites put width and height on <embed>
901         inside <object> instead of on <object>, so push that attribute up to
902         <object> and report it to the plugin
904 2005-03-14  Germain Garand  <germain@ebooksfrance.org>
906         * css/html4.css: horizontal rules are centered by default (HTML-4.01 15.3)
908 2005-03-12  Germain Garand  <germain@ebooksfrance.org>
910         * ecma/kjs_window.{cpp,h}: implement JS 1.2's window.atob/btoa (base-64 codec interface)
912 2005-03-10  David Faure  <faure@kde.org>
914         * ecma/kjs_events.cpp (handleEvent): Move "pushing element/form/doc onto the scope"
915         from JSEventListener::handleEvent to JSLazyEventListener::handleEvent so that
916         it only happens with listeners set from html attributes, not from JS - in which
917         case the function already got a correct scope when created.
918         Testcase events/eventhandlerscope.{html,js}
920 2005-03-04  Allan Sandfeld Jensen <kde@carewolf.com>
922         Merge table padding from WebCore
924         * html/html_tableimpl.cpp: CELLPADDING should not set normal padding
925         * rendering/render_table.cpp: Respect padding
926         * rendering/render_table.h: bordersAndSpacing() -> bordersPaddingAndSpacing()
928 2005-03-04  Germain Garand  <germain@ebooksfrance.org>
930         * rendering/render_block.cpp (layoutBlockChildren): percent width
931         children behaves like fixed width children with regard to float
932         clearing. In both cases we need to check if current line as enough width to
933         hold the (flowing-around-float) child. If not, we need to clear.
935 2005-03-04  Germain Garand  <germain@ebooksfrance.org>
937         * rendering/render_table.cpp (calcWidth): always use lineWidth for
938         table margins calculation (#89900)
940 2005-03-03  Germain Garand  <germain@ebooksfrance.org>
942         * ecma/kjs_dom.cpp (getValueProperty/putValueProperty):
943         Mozilla/IE strict compatibility: document.documentElement.scroll{Top,Left}
944         concern the canvas, not the root block.
945         Cf. http://www.quirksmode.org/viewport/compatibility.html
947 2005-03-01  Allan Sandfeld Jensen <kde@carewolf.com>
949         * html/html_formimpl.cpp: Report content position rather than viewport position in "image" forms
951 2005-03-01  David Faure  <faure@kde.org>
953         * html/html_formimpl.cpp (setType): Implemented, to make it possible
954         to set the type of an input element created with createElement.
955         Partially inspired by WebCore's setType(), but for getAttribute("type")
956         to work, setType() must set ATTR_TYPE. So parseAttribute() has to call
957         another method which doesn't do that, which is now parseType(), to
958         avoid an infinite recursion. Testcase forms/input_setType.html
960 2005-02-28  Harri Porten  <porten@kde.org>
962         * xml/dom2_eventsimpl.cpp: always return a non-zero keyCode()
963         value even if it is Qt::Key_unknown as it is the case with the
964         AltGr key for example.
966 2005-02-28  David Faure  <faure@kde.org>
968         * html/html_formimpl.cpp (setName): Also set ATTR_NAME so that
969         form.foo finds the input element. Testcase forms/input_setName.html.
971 2005-02-27  Leo Savernik  <l.savernik@aon.at>
973         * rendering/font.cpp (drawText): Only pass text from inline text box to
974         QPainter::drawText, not the whole RenderText's text.
976 2005-02-27  Harri Porten  <porten@kde.org>
978         * ecma/kjs_events.cpp: bind keyboard modifier properties like ctrlKey
980         * xml/dom2_eventsimpl.cpp: returning meaningful keyCode() values
981         for "special" keys
983         * dom/dom2_events.cpp: make which() equivalent to keyCode()
985 2005-02-20  Germain Garand  <germain@ebooksfrance.org>
987         * html/html_formimpl.cpp (FocusHandleWidget::focusNextPrev): TextEdit
988         needs to use QWidget::focusNextPrevChild.
989         (defaultEventHandler): only handle key tab if it wasn't accepted by the widget (#58247)
991         * rendering/render_replaced.cpp (RenderWidget::handleEvent): return
992         something meaningful.
994 2005-02-18  Germain Garand  <germain@ebooksfrance.org>
996         scope: table percentage height, replaced element height calculation.
998         * rendering/render_body.cpp (layout): pre-calculate our margins in
999         quirk mode, to be able to compute calcPercentageHeight in a const way.
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).
1009         * rendering/render_table.cpp (layoutRows): fix vertical alignment within
1010         percentage driven cells. Subtract the cell's PB from cellPercentageHeight.
1012 2005-02-18  Leo Savernik  <l.savernik@aon.at>
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.
1018 2005-02-16  Leo Savernik  <l.savernik@aon.at>
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).
1024 2005-02-16  Germain Garand  <germain@ebooksfrance.org>
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.
1031         * html/htmltokenizer.{h,cpp} (setAutoClose/timerEvent/...): add timer driven auto-close mode for
1032           e.g cross-frame scripts.
1034         * khtml_part.{h,cpp} (resetFromScript): reset the part to a sane state before reopening
1035           a closed document.
1037         * xml/dom_docimpl.cpp (write): ditto.
1038          (close): Check for isExecutingScript before deciding to delete the tokenizer.
1040         * xml/xml_tokenizer.h (setAutoClose/isExecutingScript): ditto.
1042 2005-02-15  Leo Savernik  <l.savernik@aon.at>
1044         * rendering/render_table.{cpp,h} (RenderCell::nodeAtPoint):
1045         Including top and bottom extra space in hit testing.
1047 2005-02-15  Allan Sandfeld Jensen <kde@carewolf.com>
1049         Implement genererated content: counter and quotes
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
1059 2005-02-14  Leo Savernik  <l.savernik@aon.at>
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.
1065 2005-02-14  David Faure  <faure@kde.org>
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.
1071 2005-02-13  Leo Savernik  <l.savernik@aon.at>
1073         * rendering/render_block.{cpp,h} (paintObject): Added parameter to only
1074         paint the block's outline on demand.
1076         * rendering/render_flow.cpp (repaint): Fix repaint rectangle to also
1077         encompass the top and bottom overflow of the root inline box.
1079         * rendering/render_line.{cpp,h} (InlineBox::root): Ported over from
1080         WebCore. Returns the root inline box of this box.
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.
1089 2005-02-13  Harri Porten  <porten@kde.org>
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.
1095 2005-02-12  David Faure  <faure@kde.org>
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.
1104 2005-02-12  Germain Garand  <germain@ebooksfrance.org>
1106         fix inline formatting model
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
1111         * rendering/render_text.cpp (paintSelection): use the linebox's height, not the line-height anymore.
1113         * rendering/render_inline.cpp (collectVerticalBoxCoordinates): previous linebox's bottomPosition
1114         might now be lower than current linebox's topPosition. Adjust outline algorithm.
1116 2005-02-08  David Faure  <faure@kde.org>
1118         * khtml_part.cpp (executeScript): Handle immediate redirects, scheduled
1119         by JS with e.g. location='foo', as soon as the current script finishes.
1121 2005-02-07  Leo Savernik  <l.savernik@aon.at>
1123         * rendering/render_image.cpp (paint): Regard inline offset when
1124         painting outline.
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.
1139 2005-02-07  Germain Garand  <germain@ebooksfrance.org>
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.
1146         * rendering/render_block.cpp (layoutBlock): make flowAroundFloats encompass their own floats
1147         (#85984).
1149 2005-02-02  Leo Savernik  <l.savernik@aon.at>
1151         * dom/dom_doc.{cpp,h}: Added Document::addStyleSheet/removeStyleSheet
1152         interface methods for programmatically adding/removing style sheets.
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.
1160 2005-02-01  Germain Garand  <germain@ebooksfrance.org>
1162         clearly separate full blown anonymous blocks (isAnonymousBlock) from
1163         pseudo-elements (isPseudoAnonymous). #74595, #92910.
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()
1171         * rendering/render_container.cpp (updatePseudoChild,insertChildNode,removeLeftoverAnonymousBoxes):
1172         ditto.
1174         * rendering/render_inline.cpp (addChildToFlow,splitFlow): ditto.
1176         * rendering/render_list.cpp (setStyle,updateMarkerLocation,RenderListMarker):
1177         ditto.
1179         * rendering/render_object.cpp
1180         (RenderObject::information): highlight the pseudo-element to originating element relationship in output.
1181         (RenderObject::dump): ditto.
1183         * rendering/render_object.h (requiresLayer): add missing hasOverflowClip condition
1184         (isAnonymousBlock): ditto.
1185         (isPseudoAnonymous): ditto.
1187 2005-01-25  Germain Garand  <germain@ebooksfrance.org>
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).
1192 2005-01-25  Germain Garand  <germain@ebooksfrance.org>
1194         fix #95704: float double-painting bug.  Most of the work done by Charles Samuels.
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
1199         * rendering/render_block.cpp (addOverHangingFloats): use/update said flag.
1201 2005-01-19  Allan Sandfeld Jensen <kde@carewolf.com>
1203         * css/*: Parse opacity and outline-offset
1204         * rendering/*: Implement outline-offset
1206 2005-01-12  Allan Sandfeld Jensen <kde@carewolf.com>
1208         * css/cssstyleselector.cpp: Match :contains() against innerText on HTMLElements
1210 2005-01-11  Leo Savernik  <l.savernik@aon.at>
1212         * rendering/render_text.cpp (caretPos): Calculate absolute position
1213         beginning from the RenderText, not from the containing block.
1215 2005-01-07  David Faure  <faure@kde.org>
1217         * ecma/kjs_html.cpp: Support for document.body.onload.
1219 2005-01-06  Allan Sandfeld Jensen <kde@carewolf.com>
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.
1225 2004-12-29  Allan Sandfeld Jensen <kde@carewolf.com>
1227         Implement CSS 2.1 white-space: pre, pre-line and pre-wrap
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
1239 2004-12-29  Germain Garand  <germain@ebooksfrance.org>
1241         merge bug fix for suboptimal updating of layer hierarchy
1243         * rendering/render_container.cpp (appendChildNode/insertChildNode): optimize for common case
1245         * rendering/render_object.{h,cpp} (addLayers): merge optimization
1247 2004-12-29  Germain Garand  <germain@ebooksfrance.org>
1249         memory allocation fixes
1251         * khtml_factory.cpp: cleanup the global Arena freelist after the last khtml part gets unloaded
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
1259 2004-12-24  Stephan Kulow  <coolo@kde.org>
1261         * css/cssparser.cpp: fixing keyword background-positions that have an implicit center for the
1262         other cordinate
1264 2004-12-19  Allan Sandfeld Jensen <kde@carewolf.com>
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.
1270 2004-12-18  Allan Sandfeld Jensen <kde@carewolf.com>
1272         Fix structural pseudo-classes :empty, :last-*, :only-* and :nth-last-* by introducing a late restyling
1273         run when needed.
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
1283 2004-12-13  Allan Sandfeld Jensen <kde@carewolf.com>
1285         Be more IE-compatible in IE-compatible key-event extension
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.
1291 2004-12-12  Germain Garand  <germain@ebooksfrance.org>
1293         Pragmatic incremental repaints: be accurate on layered objects, conservative on
1294         objects in normal flow. Fix performance issues on repeated relayouts (#53114)
1296         * khtmlview.{cpp,h}: add needsFullRepaint flag, mostly similar to WebCore's.
1297         (layout): don't repaint the canvas systematically anymore.
1299         * rendering/bidi.cpp (layoutInlineChildren): schedule a repaint on
1300         old rectangle and future rectangle, if marked dirty.
1302         * rendering/render_block.cpp (layoutBlock/layoutBlockChildren/layoutPositionedObjects): ditto.
1304         * rendering/render_table.cpp (layout): ditto.
1306         * rendering/render_box.cpp (calcAbsoluteHorizontal): no more updateLayerPosition() here.
1307         Layers positioning now happen in a separate pass.
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.
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.
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.
1327 2004-12-12  Germain Garand  <germain@ebooksfrance.org>
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).
1333         * khtml_part.cpp (restoreURL/openURL/slotData/restoreState): ditto.
1334         (checkCompleted): don't setContentsPos here
1336         * khtml_part.h: remove private gotoAnchor slot
1338         * khtmlpart_p.h: add boolean to record whether we need to restore a
1339         stored scroll offset or honour an anchor
1341 2004-12-09  Allan Sandfeld Jensen <kde@carewolf.com>
1343         Add :enabled and :disabled pseudo-classes
1345         * css/css_base.{h,cpp}: Parse new pseudoclases
1346         * css/cssstyleselector.cpp: Implement new selectors
1348 2004-12-08  Allan Sandfeld Jensen <kde@carewolf.com>
1350         Merge encoding detection from WebCore
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
1355 2004-12-08  Allan Sandfeld Jensen <kde@carewolf.com>
1357         Merge :target pseudo-class from WebCore
1359         * css/cssstyleselector.cpp: Uncomment :target handling
1360         * xml/dom_docimpl.{h,cpp}: Add (set)cssTarget.
1361         * khtml_part.cpp: Call setCssTarget on anchors
1363 2004-12-07  Allan Sandfeld Jensen <kde@carewolf.com>
1365         Implement/merge CSS2-3 text-shadow property
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
1371 2004-12-06  Allan Sandfeld Jensen <kde@carewolf.com>
1373         * rendering/bidi.cpp: Layout arabic numbers with a separator correctly.
1375 2004-12-02  Allan Sandfeld Jensen <kde@carewolf.com>
1377         Implement remaining CSS2 list-style-types and a few CSS3
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
1386 2004-11-30  Germain Garand  <germain@ebooksfrance.org>
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.
1392         * css/html4.css: made <big>/<small> use font-size: bigger/smaller (#82657)
1394 2004-11-29  Allan Sandfeld Jensen <kde@carewolf.com>
1396         * css/cssstyleselector.cpp: Handle :lang selector
1398 2004-11-27  Germain Garand  <germain@ebooksfrance.org>
1400         merge WebCore differences in logic for Auto table layout
1402         * rendering/table_layout.cpp (calcEffectiveWidth/layout):
1403         distribute remaining width starting with fixed rather than percent (#88104).
1405 2004-11-26  Germain Garand  <germain@ebooksfrance.org>
1407         merge zero deep-copy TokenizerString class from WebCore
1409         * html/htmltokenizer.{cpp,h}
1410         * misc/stringit.{cpp,h}
1411         * xml/xml_tokenizer.{cpp,h}
1413 2004-11-23  Allan Sandfeld Jensen <kde@carewolf.com>
1415         Implement the structual pseudo-selectors of CSS3.
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
1425 2004-11-22  Germain Garand  <germain@ebooksfrance.org>
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).
1431         * rendering/render_block.cpp (layoutBlock/layoutBlockChildren): ditto.
1433         * rendering/render_box.cpp (contentWidth/contentHeight): subtract scrollbars
1434         height/width when applicable.
1436 2004-11-22  Allan Sandfeld Jensen <kde@carewolf.com>
1438         Implement CSS border on form-widgets
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
1448 2004-11-21  Germain Garand  <germain@ebooksfrance.org>
1450         float and flowAroundFloat fixes.
1452         * css/html4.css: make fieldset -khtml-around-floats (#92979)
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
1466         * rendering/render_box.cpp (calcWidth): use containingBlockWidth
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.
1472         * rendering/render_table.cpp (calcWidth): style()->flowAroundFloats => flowAroundFloats()
1474 2004-11-19  Stephan Kulow  <coolo@kde.org>
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
1479 2004-11-17  Allan Sandfeld Jensen <kde@carewolf.com>
1481         * render/render_table.{h,cpp}: Improve distribution of excess height
1483 2004-11-17  Allan Sandfeld Jensen <kde@carewolf.com>
1485         * render/render_table.cpp: Respect margins when calculating width to be distributed.
1487 2004-11-16  Germain Garand  <germain@ebooksfrance.org>
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.
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.
1499 2004-11-16  Stephan Kulow  <coolo@kde.org>
1501         * rendering/break_lines.cpp (khtml): adding patch by Otto Pattara to support
1502         libthai for correct line breaks
1504 2004-11-15  Allan Sandfeld Jensen <kde@carewolf.com>
1506         Fix odd spacing in gmail-composer and zeg-shop.de
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.
1512 2004-11-09  Germain Garand  <germain@ebooksfrance.org>
1514         fix globeandmail.com famlily of crashes (#65715)
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.
1522         * rendering/render_flow.cpp (createAnonymousBlock): moved.
1524         * rendering/render_inline.cpp (splitInlines): use addChildToFlow
1525         rather than appendChildNode
1527         * rendering/render_line.cpp: display COMPACT cleanups
1529         * rendering/render_object.cpp: ditto.
1531 2004-11-06  Allan Sandfeld Jensen <kde@carewolf.com>
1533         Implement CSS3 property box-sizing to match MacIE, Opera and Mozilla
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
1542 2004-11-05  Germain Garand  <germain@ebooksfrance.org>
1544         * khtml_part.cpp (closeURL/slotData/restoreState): avoid triggering
1545         full repaints of the view before the first layout is done.
1547 2004-11-05  Germain Garand  <germain@ebooksfrance.com>
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>)
1553 2004-11-04  Stephan Kulow  <coolo@kde.org>
1555         * rendering/bidi.cpp (bidiReorderLine): applying patch by Mitz Pettel
1556         to fix neutral types at beginning of context
1558 2004-11-03  Germain Garand  <germain@ebooksfrance.com>
1560         * khtmlview.cpp (slotScrollBarMoved): make sure we are layouted before
1561         scrolling if we are still loading (#51473)
1563 2004-11-02  Stephan Kulow  <coolo@kde.org>
1565         * rendering/render_replaced.cpp (setStyle): set hidden widgets to invisible
1567         * xml/dom_docimpl.cpp (recalcStyleSelector): avoid invalid casts on XML documents
1569 2004-11-02  Germain Garand  <germain@ebooksfrance.com>
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.
1575 2004-11-01  Sandro Giessl <sandro@giessl.com>
1577         * rendering/render_replaced.cpp (copyWidget): don't fill the
1578         background of QFrames. they paint their own background now
1580 2004-10-30  Stephan Kulow  <coolo@kde.org>
1582         * html/html_formimpl.cpp (parseAttribute): ignore height element
1583         for input elements that are not image
1585 2004-10-28  Stephan Kulow  <coolo@kde.org>
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
1591 2004-10-27  Germain Garand  <germain@ebooksfrance.com>
1593         make font-sizes CSS2.1 compliant.
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).
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
1602 2004-10-27  Stephan Kulow  <coolo@kde.org>
1604         * css/cssstyleselector.cpp (checkOneSelector): match exact matches case sensitive
1605         only in XHTML - HTML attributes are all case insensitive
1607 2004-10-26  Stephan Kulow  <coolo@kde.org>
1609         * html/html_elementimpl.cpp (addCSSProperty): don't add all css properties in
1610         lower case but select those those where it matters
1612 2004-10-26  Allan Sandfeld Jensen <kde@carewolf.com>
1614         * rendering/bidi.{h,cpp}: Merge bidi-changes from WebCore
1616 2004-10-26  David Faure  <faure@kde.org>
1618         * khtml_part.cpp (urlSelected): Only call recursiveFrameRequest if target is
1619         different from _self, _top, _blank and _parent. See tests/frames/target/*.
1621 2004-10-25  David Faure  <faure@kde.org>
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>
1627 2004-10-25  Stephan Kulow  <coolo@kde.org>
1629         * html/html_elementimpl.cpp (addCSSProperty): add css properties parsed from
1630         attributes as lower case
1632 2004-10-25  George Staikos  <staikos@kde.org>
1634         * rendering/render_image.cpp: Pass through the CachedObject so we can
1635         use the suggested filename possibly provided by the HTTP headers.
1637         * khtml_ext.cpp: Make use of the suggested filename for images.
1639 2004-10-24  David Faure  <faure@kde.org>
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}
1645 2004-10-22  Stephan Kulow  <coolo@kde.org>
1647         * ecma/kjs_window.cpp (tryCall): merging handling of event handlers
1649         * css/cssparser.cpp (parseValue): implementing CSS 2.1 compliant parsing
1650         of background-position (#91572)
1652 2004-10-21  Allan Sandfeld Jensen <kde@carewolf.com>
1654         Implement limited DHTML capabilities to the layer implementation
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
1662 2004-10-19  Allan Sandfeld Jensen <kde@carewolf.com>
1664         * rendering/render_box.{h,cpp}: Merge min,max-height fixes
1666 2004-10-19  Germain Garand  <germain@ebooksfrance.org>
1668         finish merge of static position for positioned objects
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
1675         * rendering/render_block.cpp (layoutBlockChildren): ditto.
1677         * rendering/render_box.cpp (containingBlockWidth): use usesLineWidth
1678         (position): activate static position logic
1679         (calcAbsoluteHorizontal): replace static position calculation
1680         (calcAbsoluteVertical): ditto.
1682         * rendering/render_object.cpp (removeChild): fix typo
1683         (usesLineWidth): merge usesLineWidth from WebCore
1685         * rendering/render_style.h (NonInheritedFlags::): originalDisplay member
1686         (setBitDefaults): initialize the above
1687         (originalDisplay/setOriginalDisplay): accessors
1688         (isDisplayReplacedType/isDisplayInlineType/isOriginalDisplayInlineType):
1689         helpers
1691 2004-10-18  Allan Sandfeld Jensen <kde@carewolf.com>
1693         * rendering/render_table.cpp: Merge layout fixes from Webcore
1695 2004-10-17  Stephan Kulow  <coolo@kde.org>
1697         * ecma/kjs_dom.cpp: adding patch by Richard Lärkäng to support IE
1698         extension insertAdjacentHTML (#33968)
1700 2004-10-16  Allan Sandfeld Jensen <kde@carewolf.com>
1702         * html/html_formimpl.cpp: Escape otherwise unencodable characters.
1703         Matches the behavior of Gecko.
1705 2004-10-15  Stephan Kulow  <coolo@kde.org>
1707         * rendering/render_form.cpp (updateFromElement): don't set assume <select>
1708         got items when we calculate a height for items (#87466)
1710         * css/html4.css: changing default horizontal margins for H1-H6 from
1711         auto to 0 (#91327)
1713 2004-10-15  Germain Garand  <germain@ebooksfrance.org>
1715         bring z-order to QScrollView
1717         * html/html_formimpl.cpp (defaultEventHandler): propagate events to
1718         QScrollView
1720         * khtmlview.{cpp,h}: QScrollview needs fast repaints. Fix
1721         background color of QFrames.
1723         * rendering/render_form.cpp (createListBox/TextAreaWidget):
1724         make those widgets z-ordered as well.
1726         * rendering/render_replaced.cpp (paintWidget): optimize painting by
1727         avoiding unnecessary background repaints and by using a shared
1728         paint buffer.
1730 2004-10-15  Germain Garand  <germain@ebooksfrance.org>
1732         display: compact fixes.
1734         * rendering/bidi.cpp: remove checks for display: compact,
1735         not needed anymore.
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.
1742         * rendering/render_object.{cpp,h} (getVerticalPosition): add
1743         ability to compute vertical position with respect to other
1744         RenderObjects than parent.
1746 2004-10-14  David Faure  <faure@kde.org>
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.
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)
1755 2004-10-14  Allan Sandfeld Jensen <kde@carewolf.com>
1756         * rendering/*.*: WebCore merge/port of layouted->needsLayout
1758 2004-10-11  David Faure  <faure@kde.org>
1760         * xml/dom_nodeimpl.cpp (dispatchGenericEvent): Fixed stopPropagation
1761         when called from the target node itself (#90750).
1763 2004-10-11  Harri Porten  <porten@kde.org>
1765         * ecma/*.cpp: return an empty string (instead of null) when
1766         querying unset string properties
1768         * ecma/kjs_html.cpp: use full url for Image.src.
1770 2004-10-08  David Faure  <faure@kde.org>
1772         * ecma/kjs_html.cpp (KJS::HTMLCollection::tryGet):
1773         return Undefined instead of Null for out-of-range indices.
1775 2004-10-07  Germain Garand  <germain@ebooksfrance.org>
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
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.
1798 2004-10-07  David Faure  <faure@kde.org>
1800         * xml/dom_nodeimpl.cpp (dispatchWindowEvent): Emit load event for frames
1801         from there, to avoid bubbling (safari merge)
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).
1807 2004-10-05  David Faure  <faure@kde.org>
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).
1815         * ecma/kjs_html.cpp (getValueProperty):
1816         Don't return null when innerText or innerHTML is empty.
1818 2004-10-04  David Faure  <faure@kde.org>
1820         * khtml_part.cpp (processObjectRequest):
1821         Fixed showing of iframe hidden with display=none (#84332).
1823 2004-09-16  Leo Savernik  <l.savernik@aon.at>
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.
1842 2004-09-11  David Faure  <faure@kde.org>
1844         * khtml_part.cpp (defaultEncoding, encoding, createDecoder):
1845         Make default charset latin1 over HTTP, keep default to locale on other protocols.
1847 2004-09-02  Leo Savernik  <l.savernik@aon.at>
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.
1859 2004-08-27  Germain Garand  <germain@ebooksfrance.org>
1861         scope: - more accurate completed() signal.
1862                - anchor jumps (#57360)
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.
1869         (checkCompleted): entrust the view to emit completed on our behalf
1870         after any pending layout/repaint is done.
1872         * khtmlview.{cpp,h}: ditto
1874         * xml/dom_nodeimpl.cpp (getUpperLeftCorner/getLowerRightCorner):
1875         use inlineYPos for text objects (#57360 c.#17).
1877 2004-08-27  Leo Savernik  <l.savernik@aon.at>
1879         * html/html_tableimpl.cpp (HTMLTableCellElementImpl::attach):
1880         Fixed explicit setting of border to 0 width.
1882 2004-08-24  Leo Savernik  <l.savernik@aon.at>
1884         * ecma/kjs_html.{cpp,h} (HTMLDocument):
1885         Added Javascript-support for HTMLDocument.compatMode.
1887 2004-08-23  Leo Savernik  <l.savernik@aon.at>
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.
1894 2004-08-19  Germain Garand  <germain@ebooksfrance.org>
1896         * rendering/render_body.cpp (setStyle): only disallow fixed positioning
1897         on body, not relative/absolute (#77048, #76982).
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).
1902 2004-08-18  Leo Savernik  <l.savernik@aon.at>
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.
1909         * rendering/render_box.cpp (repaint): Removed superfluous null ptr check.
1910         Use effectiveWidth/Height instead of overflowWidth/Height.
1912         * rendering/render_canvas.cpp (docHeight): Fixed superfluous vertical
1913         scrollbars on clipped children.
1914         (docWidth): Fixed superfluous horizontal scrollbars on clipped children.
1916         * rendering/render_flow.cpp (repaint):
1917         Use effectiveWidth/Height instead of overflowWidth/Height.
1919         * rendering/render_object.h: Added effectiveWidth/Height.
1920         Made hasClip and hasOverflowClip const.
1922 2004-08-05  Germain Garand  <germain@ebooksfrance.org>
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.
1929         * rendering/render_object.h (collapsedMarginTop/Bottom): don't avoid max(Top|Bottom)Margin,
1930         they are virtuals reimplemented for RenderBlock.
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.
1936         * xml/dom_elementimpl.cpp (attach): ditto
1938 2004-08-04  Germain Garand <germain@ebooksfrance.org>
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).
1944         * rendering/render_canvas.cpp (layout): remove scrollbar flickering turnarounds.
1945         instead, account for a scrollbar hysteresis level when sizing the content (#61730).
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.
1951 2004-07-28  Stephan Kulow  <coolo@kde.org>
1953         * html/html_miscimpl.cpp (getNamedItem): more investigation on tags returned
1954         by name attribute in document.all
1956 2004-07-28  Leo Savernik  <l.savernik@aon.at>
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.
1969 2004-07-20  Stephan Kulow  <coolo@kde.org>
1971         * css/parser.y: catching imports that come between rules.
1972         They have to be ignored (css1/test11.htm)
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).
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
1982 2004-07-12 Germain Garand <germain@ebooksfrance.org>
1984         * ecma/kjs_navigator.{h,cpp} (getValueProperty):
1985         implement navigator.productSub. Fixes most
1986         instances of #68271
1988 2004-07-10 Germain Garand <germain@ebooksfrance.org>
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).
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.
2004 2004-06-26  Germain Garand  <germain@ebooksfrance.org>
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.
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.
2017         * rendering/render_table.h (position): remove empty reimplementation:
2018         inline-tables need positioning. cf.webcore/fast/inline-block/001.html
2020         * rendering/render_box.cpp (calcAbsoluteHorizontal): subtract p/b width
2021         when shrinking-to-fit, otherwise it gets accounted for twice.
2023 2004-06-22  Zack Rusin  <zack@kde.org>
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
2030 2004-06-22  Germain Garand  <germain@ebooksfrance.org>
2032         Scope: Inline-blocks inlining. Merge Webcore improvements for
2033         Fieldset/Legend
2035         * css/html4.css: Legend => display: block.
2037         * html/html_formimpl.{cpp,h} (addChild): remove.
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.
2046         * rendering/render_box.cpp:
2047         (calcWidth): fix logic. cf.css1/test43.htm
2048         (calcHeight): fix logic
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
2056 2004-06-22  Germain Garand  <germain@ebooksfrance.org>
2058         Scope: avoid leaking placeholder InlineBoxes. Cleanups.
2060         * rendering/bidi.cpp (Bidinext): simplified logic. Do not return each
2061         InlineFlow twice.
2062         (layoutInlineChildren): clear InlineBoxes on relayout.
2064         * rendering/render_object.{cpp,h}:
2065         (deleteInlineBoxes): new virtual method.
2067         * rendering/render_box.{cpp,h}: added m_placeHolderBox member.
2068         (createInlineBox/deleteInlineBoxes): reimplemented.
2070         * rendering/render_flow.{cpp,h}:
2071         (createInlineBox/deleteInlineBoxes): ditto.
2073         * rendering/render_replaced.cpp (detach): call deleteLineBoxes
2075         * rendering/render_text.{cpp,h} (deleteInlineBoxes): reimplemented, replacing
2076         deleteTextBoxes
2077         (~RenderText): no need to clear lineboxes twice.
2079 2004-06-13  Leo Savernik  <l.savernik@aon.at>
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.
2137 2004-06-10  Zack Rusin  <zack@kde.org>
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,
2149 2004-06-09  Zack Rusin  <zack@kde.org>
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
2157 2004-06-09  Zack Rusin  <zack@kde.org>
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
2169 2004-06-09  Zack Rusin  <zack@kde.org>
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,
2183 2004-06-08  Zack Rusin  <zack@kde.org>
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
2189 2004-06-06  Zack Rusin  <zack@kde.org>
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
2194         * xml/dom_docimpl.h (hasPendingSheets): adding function returning true,
2195         if stylesheets are currently loading for document.
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.
2202 2004-06-02  Zack Rusin  <zack@kde.org>
2204         * xml/dom_xmlimpl.cpp: Correctly handle stylesheet loading in
2205         XML documents (try to avoid FOUC)
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.
2212 2004-05-28  Leo Savernik  <l.savernik@aon.at>
2214         * rendering/render_object.cpp: (drawBorder) Make use of Mozilla's
2215         border-bevel coloring algorithm.
2217 2004-05-14  Leo Savernik  <l.savernik@aon.at>
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.
2223 2004-05-13  Leo Savernik  <l.savernik@aon.at>
2225         * rendering/font.cpp: (drawDecoration)
2226         rendering/render_line.cpp: (InlineFlowBox::paintDecoration)
2227         Increased width of text decoration by one.
2229 2004-05-12  Leo Savernik  <l.savernik@aon.at>
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.
2235 2004-05-09  Leo Savernik  <l.savernik@aon.at>
2237         * rendering/font.cpp: (drawDecoration) Honored line thickness.
2238         Used fillRect instead of drawLine.
2240         * rendering/render_layer.cpp: (paintLayer) Added invokation of
2241         PaintActionSelection phase when there is a selection.
2243         * rendering/render_line.cpp: (InlineFlowBox::paintDecorations)
2244         Honored line thickness. Used fillRect instead of drawLine.
2245         Actually use it.
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.
2251 2004-05-09  Leo Savernik  <l.savernik@aon.at>
2253         * rendering/render_block.cpp: (paint, paintObject, paintFloat)
2254         Introduced maximalOutlineSize, PaintActionOutline phase.
2256         * rendering/render_box.cpp: (setStyle) Updating maximumOutlineSize.
2258         * rendering/render_canvas.{cpp,h}: Added maximumOutlineSize
2259         member, setter, and getter.
2261         * rendering/render_image.cpp: (paint) Added handling new
2262         PaintActionOutline phase.
2264         * rendering/render_inline.{cpp,h}: Moved paintOutline{s,} from RenderText
2265         to RenderInline.
2266         (paint) Handled PaintActionOutline phase.
2268         * rendering/render_layer.cpp: (paintLayer) Added invokation of
2269         PaintActionOutline phase.
2271         * rendering/render_object.{cpp,h}: Added PaintActionOutline phase and
2272         maximumOutlineSize.
2274         * rendering/render_table.cpp: Added code for handling outlines.
2276         * rendering/render_text.{cpp,h}: (paint) Removed outline painting
2277         code from there.
2278         Moved paintOutline{s,} to RenderInline.
2280         * xml/dom_nodeimpl.cpp: (NodeBaseImpl::setFocus) Fixed recursive
2281         application of focus to child elements now that outline correctly
2282         handles block elements.
2284 2004-05-06  Tobias Anton  <anton@stud.fbi.fh-darmstadt.de>
2286         * html/htmlparser.cpp (class KHTMLParser): use setCurrent() after reset()
2287         to avoid a memleak whenever the parser is used on a DocumentFragment.
2289 2004-05-04  Leo Savernik  <l.savernik@aon.at>
2291         * css/cssparser.cpp: (parseValue) Updated order of border values to
2292         accomodate border precedence.
2293         Made all colors accept transparent.
2295         * css/cssstyleselector.cpp: (applyRule) Fixed recognition of transparent
2296         colors so that BorderValue::isTransparent returns true for border colors.
2298         * css/cssvalues.in:  Updated order of border values to accomodate border
2299         precedence.
2301         * rendering/render_form.cpp: (paintBorderMinusLegend) Honor new border
2302         precedence.
2304         * rendering/render_object.cpp: (drawBorder) Inserted forgotten break.
2305         (paintBorder) Make border-color: transparent work like in WebCore.
2306         Honor new border precedence.
2308         * rendering/render_object.h: Introduced PaintActionCollapsedTableBorders.
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).
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.
2326         * rendering/render_table.h: Added prototypes/member variables.
2328 2004-04-18  Leo Savernik  <l.savernik@aon.at>
2330         * khtml_part.cpp: (extendSelectionTo): Fixed deselection of whole
2331         word/line at line boundaries in ExtendByWord/ExtendByLine mode.
2333 2004-04-18  Leo Savernik  <l.savernik@aon.at>
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.
2344         * khtmlpart_p.h: added m_initialNode, m_initialOffset and
2345         m_extendMode.
2347         * khtmlview.cpp (extendSelection): Initialize all relevant fields for selection.
2349         * rendering/render_text.h: Merged inlineTextBoxes function, needed by
2350         firstRunAt, lastRunAt.
2351         (findInlineTextBox): Make it public.
2353 2004-04-15  Leo Savernik  <l.savernik@aon.at>
2355         * khtml_caret{.cpp,_p.h}: Vast changes.
2356         Added classes CaretBox, CaretBoxLine, CaretBoxIterator,
2357         EditableCaretBoxIterator. Changed every other class.
2359         * khtmlview.[cpp,h}: (class KHTMLView) Adapt to khtml_caret* changes.
2360         (KHTMLToolTip::maybeTip) Save tooltip position instead of recalculating it.
2362         * rendering/render_{inline,box}.{cpp,h}: (Render{Box,Inline}::caretPos)
2363         Handle outside caret positions.
2365         * rendering/render_{image,br}.{cpp,h}: Remove superfluous
2366         Render{Image,BR}::caretPos.
2368         * rendering/render_line.h: (InlineBox::maxOffset) Return 0 instead of 1.
2370         * rendering/render_object.{cpp,h}: (RenderObject::caretPos) Introduce
2371         flags to denote outside positions.
2372         Add RenderObject::isRenderReplaced.
2374         * rendering/render_replaced.h: Add RenderReplaced::isRenderReplaced
2375         returning true.
2377         * rendering/render_text.{cpp,h}: (RenderText::caretPos) Handle flags.
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.
2386 2004-04-02  Dirk Mueller  <mueller@kde.org>
2388         * misc/loader.cpp (slotFinished): store suggestedfilename for later.
2389         (movieResize): start with the notify. Experimental.
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.
2395 2004-03-23  Dirk Mueller  <mueller@kde.org>
2397         * khtml_part.cpp (checkLinkSecurity): Be stricter.
2399         * rendering/render_frames.cpp (updateWidget): readd the recursion protection.
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.
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.
2409 2004-03-20  Arend van Beelen jr. <arend@auton.nl>
2410         * khtml_part.cpp/.h: finished new searching API.
2412         * khtmlview.cpp/.h: implemented type-ahead find (#51259).
2414 2004-03-21  Dirk Mueller  <mueller@kde.org>
2416         * html/html_formimpl.cpp (encoding): fix submission of forms
2417         without file upload (#77382).
2419         * css/css_renderstyledeclarationimpl.cpp (getPropertyCSSValue): fix crash (#77324).
2421 2004-03-20  Dirk Mueller  <mueller@kde.org>
2423         * xml/dom_docimpl.cpp (processHttpEquiv): improve refresh handling for negative and
2424         slightly malformed delays (#78049)
2426 2004-03-18  Lubos Lunak <l.lunak@kde.org>
2428         * khtmlview.cpp, xml/dom_docimpl.cpp: accesskey attribute support
2430 2004-03-03  Dirk Mueller  <mueller@kde.org>
2432         * html/htmlparser.cpp (getElement): try to avoid nesting <nobr> and <wbr>,
2433         but don't forbit it.
2435 2004-03-01  Dirk Mueller  <mueller@kde.org>
2437         * rendering/render_text.cpp (calcMinMaxWidth): some more hacks for white-space !=
2438         normal.
2440         * rendering/render_object.cpp (drawBorder): use drawPixel directly.
2441         turns out to be more reliable and equally fast (#62296).
2443 2004-02-29  Dirk Mueller  <mueller@kde.org>
2445         * html/html_documentimpl.cpp (determineParseMode): treat xhtml transitional
2446         that way (#76449).
2448         * rendering/bidi.cpp (findNextLineBreak): make sure we move
2449         replaced elements, that don't fit on a line below the floats (#74609).
2451         * rendering/render_replaced.cpp (calcMinMaxWidth): respect
2452         padding and borders (#65788).
2454         * rendering/render_form.h (RenderFormElement): make sure we never
2455         end up getting a border or padding for form elements.
2457         * rendering/render_frames.cpp (partLoadingErrorNotify): don't trigger
2458         slotPartLoadingErrorNotify twice.
2460         (slotPartLoadingErrorNotify): avoid KMessageBox deletion race.
2462         * misc/loader_jpeg.cpp: fix incredibly rare lockup in jpeg decoder.
2464 2004-02-28  Germain Garand  <germain@ebooksfrance.org>
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.
2471 2004-02-25  Dirk Mueller  <mueller@kde.org>
2473         * rendering/render_text.h (class InlineTextBox): rename width(int)
2474         to widthFromStart(int), since it otherwise clashes with upcoming
2475         Safari merges.
2477         * rendering/render_image.cpp (notifyFinished): forward the
2478         notifyFinished call to the inherited class.
2480         * rendering/render_inline.h (class RenderInline):
2481         constructor/destructor cleanup.
2483         * misc/htmlattrs.h: don't export getAttrName symbol.
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.
2489         * khtml_settings.cc (init)/html4.css: MediumFontSize up to 12. Form elements
2490         get font-size: small instead.
2492 2004-02-24  Dirk Mueller  <mueller@kde.org>
2494         * ecma/xmlhttprequest.h/cpp: Implement asynchronous interface
2495         enough to pass the tests on http://www.mozilla.org/xmlextras/tests.html
2497         * xml/dom2_eventsimpl.h (EventImpl): rename KHTML_KEYUP/DOWN_EVENT
2498         to KEYUP/DOWN_EVENT. Add events needed for XMLHttpRequest.
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.
2505 2004-02-23  Stephan Kulow  <coolo@kde.org>
2507         * rendering/render_inline.cpp: check if the containingBlock is displayed
2508         as block before using it as continuation (#73573)
2510 2004-02-22  Frerich Raabe  <raabe@kde.org>
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.
2519 2004-02-20  Germain Garand  <germain@ebooksfrance.org>
2521         * rendering/bidi.cpp (operator ++): skip empty RenderText.
2522         Remove unused forcedMinWidth cruft.
2524         * rendering/render_block.cpp (addChildToFlow): keep the refcount
2525         high for first-letter affected text while we manipulate it.
2527         * rendering/render_text.cpp: remove unused forcedMinWidth cruft.
2529 2004-02-20  Frerich Raabe  <raabe@kde.org>
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)
2543 2004-02-17  Germain Garand  <germain@ebooksfrance.org>
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).
2549 2004-02-16  Germain Garand  <germain@ebooksfrance.org>
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.
2557 2004-02-16  Germain Garand  <germain@ebooksfrance.org>
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.
2565         * rendering/render_container.cpp (updatePseudoChild):
2566         always regenerate :before/:after content holding
2567         :first-letter.
2569         * rendering/render_style.cpp (addPseudoStyle): don't use
2570         RenderStyle's copy constructor for pseudo-elements.
2572 2004-02-16  Stephan Kulow  <coolo@kde.org>
2574         * rendering/render_container.cpp (updatePseudoChild): merge more
2575         code for content generated elements
2577 2004-02-15  Zack Rusin  <zack@kde.org>
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
2587 2004-02-15  Dirk Mueller  <mueller@kde.org>
2589         * css/css_base.cpp (specificity): fix detection of the *
2590         selector (#73214).
2592 2004-02-13  Zack Rusin  <zack@kde.org>
2594         * xml/xml_tokenizer (XMLIncrementalSource): implementing
2595         incremental XML parsing
2597         * xml/dom_nodeimpl.h : removing superfluous semi-colons
2599 2004-02-11  Germain Garand  <germain@ebooksfrance.org>
2601         Activate merged alternate code path for inline boxes
2602         construction/painting. Whitespace count consistency.
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
2611         * rendering/font.cpp (drawText, width): whitespace handling
2613         * rendering/render_box.cpp (position): partial merge
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
2621         * rendering/render_object.cpp (offsetLeft/offsetTop): adjust
2622         (hasStaticX/hasStaticY): merged non-virtual methods
2624         * rendering/render_replaced.cpp (position): do not add margin anymore
2626         * rendering/render_text.cpp: whitespace handling. No more p/b/m.
2628 2004-02-10  Dirk Mueller  <mueller@kde.org>
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).
2633         * dom/dom2_events.cpp (pageX/Y): add bindings.
2635         * html/htmlparser.cpp (insertNode): argh. regression fix (http://www.cygwin.com) (#74329).
2637 2004-02-09  David Faure  <faure@kde.org>
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.
2643 2004-02-09  Stephan Kulow  <coolo@kde.org>
2645         * css/html4.css: use text-align: left for all input elements
2647 2004-02-09  David Faure  <faure@kde.org>
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
2652 2004-02-07  Harri Porten  <porten@kde.org>
2654         * rendering/render_layer.cpp (sortByZOrder): compile fix for non-gcc
2655         compilers
2657 2004-02-04  Zack Rusin  <zack@kde.org>
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
2668 2004-02-04  Stephan Kulow  <coolo@kde.org>
2670         * html/html_tableimpl.cpp (insertRow): append to tbody if
2671         there is no tfood for insertRow(numRows) (#74125)
2673 2004-01-29  Germain Garand  <germain@ebooksfrance.org>
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.
2679 2004-01-29  David Faure  <faure@kde.org>
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)
2684 2004-01-29  Dirk Mueller  <mueller@kde.org>
2686         * html/html_inlineimpl.cpp (parseAttribute): restore KDE 3.1 behavior
2687         of <font size=-1> (#73500).
2689 2004-01-26  David Faure  <faure@kde.org>
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
2695 2004-01-26  Dirk Mueller  <mueller@kde.org>
2697         * html/html_inlineimpl.cpp (defaultEventHandler): use content, not
2698         viewport coordinates for server side image maps (#59701).
2700         * rendering/bidi.cpp (computeVerticalPositionsForLine): update
2701         overflowWidth, otherwise a lot of things go wrong (#59701).
2703         * misc/loader.cpp (data): correctly emit notifyFinished(), otherwise our
2704         state machine goes out of sync.
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.
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).
2714 2004-01-25  Dirk Mueller  <mueller@kde.org>
2716         * rendering/render_object (offsetLeft/offsetTop): fix Heirmenus which expect to get the
2717         <body> offset when the offsetParent is the <body> itself.
2719         * misc/loader.cpp (class ImageSource): by default, we're rewindable.
2721         * rendering/render_block.cpp (positionNewFloats): when somebody says
2722         clear: both;, he usually means it (#68068).
2724         * html/html_objectimpl.cpp (renderAlternative): give the alternative rendering
2725         some time to avoid ugly deletion races.
2727         * rendering/render_canvas.cpp (layout): don't recurse when printing (#72775).
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).
2733 2004-01-23  Lubos Lunak  <l.lunak@kde.org>
2735         * html_inlineimpl.cpp (defaultEventHandler): make HTMLAnchorElementImpl
2736         react also on DOMActivate event
2738 2004-01-23  David Faure  <faure@kde.org>
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.
2744         * xml/dom_docimpl.cpp (hasFeature): Updated to current state.
2745         (createEvent): Allow to create events with eventType="Events"
2747 2004-01-22  David Faure  <faure@kde.org>
2749         * xml/dom_nodeimpl.cpp (GenericRONamedNodeMapImpl): Implementation of
2750         node map for entities and notations, required by some DOMTS Core 1 tests.
2752 2004-01-22  Waldo Bastian  <bastian@kde.org>
2754         * html/htmlparser.cpp (class HTMLStackElem): ref and unref the nodes to avoid them beeing removed below us (#73112)
2756 2004-01-22  Lubos Lunak <l.lunak@kde.org>
2758         * khtmlview.cpp: make Ctrl only temporary suspend Shift+Down scrolling
2760 2004-01-22  David Faure  <faure@kde.org>
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.
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
2771         * xml/dom_elementimpl.cpp (setNamedItem): if attribute exists already,
2772         return it, to fix DOMTS-Core-level1 test hc_elementreplaceattributewithself
2774 2004-01-21  Leo Savernik <l.savernik@aon.at>
2776         * khtml_part.cpp (checkCompleted): do not explicitly set focus to
2777         the document if m_focusNodeNumber is not set (fixes dict.leo.org)
2779 2004-01-21  Stephan Kulow  <coolo@kde.org>
2781         * html/html_formimpl.h: handle malformed forms different than
2782         wellformed
2784 2004-01-21  Germain Garand  <germain@ebooksfrance.org>
2786         * rendering/render_block.cpp (layoutBlockChildren): use maxTopMargin
2787         again, for correct margin-top determination (#67527)
2789 2004-01-20  Dirk Mueller  <mueller@kde.org>
2791         * css/cssstyleselector.cpp (applyRule): Implement handling of
2792         empty-cells.
2794          * css/cssstyleselector.cpp (applyRule): remove superfluous setZIndex(0)
2795         after setHasAutoZIndex, which breaks auto.
2797 2004-01-19  Dirk Mueller  <mueller@kde.org>
2799        * rendering/render_object.cpp (getVerticalPosition): improve
2800        logic (#65121).
2802 2004-01-19  Stephan Kulow  <coolo@kde.org>
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)
2809        * css/cssstyleselector.cpp (parseValue): unify handling
2810        of inherited css properties (based on safari patch)
2812 2004-01-18  Dirk Mueller  <mueller@kde.org>
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.
2818         * rendering/render_container.cpp (addChild): make sure
2819         that a RenderTableCol object is correctly nested inside
2820         a table (#59766).
2822         * xml/dom_elementimpl.cpp (recalcStyle): fix tree corruption
2823         when recalcStyle() happens to be invoked in the wrong moment.
2825         * html/html_baseimpl.cpp (setLocation): fix KURL() casting issue.
2827 2004-01-16  Dirk Mueller  <mueller@kde.org>
2829         * rendering/render_image.cpp: remove some asserts that
2830         noone needs anyway (#72739).
2832 2004-01-16  Stephan Kulow  <coolo@kde.org>
2834         * html/htmltokenizer.cpp: fixing <pre> parsing (#58584)
2836 2004-01-15  Dirk Mueller  <mueller@kde.org>
2838         * misc/loader.cpp (ref): ok, there are cases where an image
2839         gets refed twice from the same client. *sigh*.
2841 2004-01-15  Lars Knoll <knoll@kde.org>
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.
2848 2004-01-14  Dirk Mueller  <mueller@kde.org>
2850         * misc/loader.cpp: Fix uncachable image leak (#72197).
2852 2004-01-13  Dirk Mueller  <mueller@kde.org>
2854         * css/css_ruleimpl.cpp (CSSMediaRuleImpl): set parent to 0
2855         to avoid leak (#70731).
2857 2004-01-13  Germain Garand  <germain@ebooksfrance.org>
2859         * rendering/render_canvas.cpp (layout):
2860         force scrollbar visibility status while layouting
2861         to avoid endless cycles (#69613)
2863 2004-01-13  Dirk Mueller  <mueller@kde.org>
2865         * ecma/kjs_events.cpp (JSEventListener): store them in a dictionary,
2866         not a linked list.
2868         * css/parser.y: fix rect() parsing problem (#72458).
2870 2004-01-12  Dirk Mueller  <mueller@kde.org>
2872         * rendering/render_block.cpp (left/rightRelOffset): recursion protection
2873         (#70608).
2875         * rendering/render_image.cpp (updateFromElement): add tracking of
2876         an oldimage, to avoid a "shoot out" effect on hovering expired images.
2878 2004-01-11  Germain Garand  <germain@ebooksfrance.org>
2880         * rendering/render_text.cpp (paintBoxDecorations):
2881         make background images on inlines obbey the full CSS
2882         spec (#59600)
2884         * rendering/render_text.h (paintBoxDecorations): changed prototype
2886         * rendering/render_line.cpp (paintDecorations): disable for now.
2888 2004-01-11  Dirk Mueller  <mueller@kde.org>
2890         * html/htmlparser.cpp (insertNode): fix <p><dl> handling (#68167).
2892         * css/css_base.cpp (extractPseudoType): make it case-insensitive (#72159).
2894 2004-01-11  Germain Garand  <germain@ebooksfrance.org>
2896         border/padding/margin issues on inlines (#68394)
2898         * rendering/bidi.cpp (computeVerticalPositionsForLine):
2899         add the correct width offset for text objects
2901         * rendering/render_line.cpp (paintBackgroundAndBorder):
2902         guard against invalid width values
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
2911 2004-01-10  Dirk Mueller  <mueller@kde.org>
2913         * css/html4.css: fix default font/fontsize of input,select and textarea
2914         (#67851).
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)
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.
2924         * rendering/render_image.cpp/.h: Reduce X-server pressure with large images (#39693).
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.
2930 2004-01-09  Dirk Mueller  <mueller@kde.org>
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)
2936 2004-01-02  Dirk Mueller  <mueller@kde.org>
2938         * html/htmltokenizer.cpp (notifyFinished): fix null pointer dereference
2939         in rare cases.
2941         * css/cssstyleselector.cpp (reparseConfiguration): implement.
2943         * khtml_part.cpp (reparseConfiguration): call CSSStyleSelector::reparseConfiguration
2944         instead of ::clear(). much less crashy. (#68141)
2946 2003-12-27  Simon Perreault  <nomis80@nomis80.org>
2948         * khtml_part.cpp: Remove unused zoom actions. Assign CTRL + Key_Plus to
2949         zooming in and CTRL + Key_Minus to zooming out.
2951 2003-12-27  Luis Pedro Coelho <luis@luispedro.org>
2953         * misc/loader.cpp : Discard items from cache if they have the wrong type (#68181)
2955 2003-12-20  Koos Vriezen  <koos.vriezen@xs4all.nl>
2957         * html_objectimpl.cpp (attach): Check KImageIO::typeForMime first if RenderImage
2958         supports the image format
2960 2003-12-11  Stephan Kulow  <coolo@kde.org>
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
2966 2003-12-10  Germain Garand  <germain@ebooksfrance.org>
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.
2972 2003-12-10  Dirk Mueller  <mueller@kde.org>
2974         * rendering/render_list.cpp: fix toLetter, based on Safari patch.
2976 2003-12-09  Dirk Mueller  <mueller@kde.org>
2978         * html/html_formimpl.cpp (submit): don't ask over and over again the same question.
2980 2003-12-08  Zack Rusin  <zack@kde.org>
2982         * khtmlview.*, html/html_formimpl.cpp (submit):  Fixing 67179 -
2983         Possibility to avoid saving form data for certain sites.
2985 2003-12-05  David Faure  <faure@kde.org>
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
2997 2003-12-05  Stephan Kulow  <coolo@kde.org>
2999         * css/cssparser.cpp (parseValue): Do not accept negative values for padding (#59557)
3001 2003-12-05  Lubos Lunak  <l.lunak@kde.org>
3003         * khtmlview.cpp, xml/dom2_eventsimpl.*, xml/dom_nodeimpl.*, rendering/render_replaced.cpp :
3004             fix mapping between Qt and DOM key events
3006 2003-12-05  Germain Garand  <germain@ebooksfrance.org>
3008         * rendering/render_object.cpp (nodeAtPoint): don't offset
3009         relatively positioned objects coordinates. They already are (#68716/#60453)
3011         * rendering/render_text.cpp (nodeAtPoint): no need to include borders and padding
3012         in the matching region anymore (#69345)
3014 2003-12-05  Germain Garand  <germain@ebooksfrance.org>
3016         * rendering/render_box.cpp (paintRootBoxDecorations): use the full canvas's height
3017         when painting the root's background (#55065)
3019 2003-12-03  Stephan Kulow  <coolo@kde.org>
3021         * css/html4.css: define default text-alignments for input fields to avoid
3022         problems with inherited attributes
3024 2003-12-02  Stephan Kulow  <coolo@kde.org>
3026         * html/htmltokenizer.cpp: do not discard any line feed from parsing textareas
3028 2003-11-29  Dirk Mueller  <mueller@kde.org>
3030         * css/cssstyleselector.cpp: add indigo/crimson colorhandling as it is not in X11's rgb
3031         names list.
3033         * misc/loader.cpp (CachedCSSStyleSheet/CachedScript::data): add some utf8/utf16 encoding
3034         handling. Workaround Qt bugs (#69115). Initial investigation and patch by Harri.
3036 2003-11-29  Stephan Kulow  <coolo@kde.org>
3038         * html/html_elementimpl.cpp (addHTMLAlignment): readding floating for input type="image"
3040         * rendering/render_form.cpp (setStyle): respect text-align style on input elements
3041         (#65610)
3043         * html/html_formimpl.cpp (HTMLInputElementImpl): don't make input elements
3044         floating, but only care for the text alignment
3046 2003-11-28  Harri Porten  <porten@kde.org>
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.
3052 2003-11-28  Germain Garand  <germain@ebooksfrance.org>
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)
3058         * html/html_headimpl.h (HTMLLinkElementImpl::setDisabled)
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.
3064 2003-11-26  Lubos Lunak  <l.lunak@kde.org>
3066         * khtmlview.cpp, xml/dom2_eventsimpl.cpp : generate correctly keydown,keypress and keyup events
3068 2003-11-26  Dirk Mueller  <mueller@kde.org>
3070         * html/htmlparser.cpp (parseToken): ignore flat on <select>. maybe
3071         we should only do this in compat mode though (#69017).
3073 2003-11-25  Dirk Mueller  <mueller@kde.org>
3075         * html/html_formimpl.cpp (defaultEventHandler): ignore stale keyup events
3076         on space too.
3078         * css/html4.css: Set quirky margins on elements that need it (#66490).
3080 2003-11-25  Stephan Kulow  <coolo@kde.org>
3082         * rendering/render_container.cpp (updatePseudoChild): fix handling of
3083         images in :content (#67373)
3085         * html/html_baseimpl.cpp (parseAttribute): fix parsing of body attributes (safari merge)
3087         * rendering/render_box.cpp (calcAbsoluteVertical): basically reverting commit 1.218
3088         for height calculation. It broke floating images (#67839)
3090 2003-11-25  David Faure  <faure@kde.org>
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)
3095 2003-11-25  Germain Garand  <germain@ebooksfrance.org>
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.
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).
3106 2003-11-24  Dirk Mueller  <mueller@kde.org>
3108         * html/html_formimpl.cpp (defaultEventHandler): ignore stale keyup events.
3109         Only react when we saw a matching keydown before.
3111 2003-11-24  David Faure  <faure@kde.org>
3113         * html/htmlparser.cpp (popInlineBlocks): Fixed infinite loop due to
3114         popOneBlock returning immediately if blockStack==0. #68034.
3116         * rendering/bidi.cpp: Fixed infinite loop with <nobr> due to findNextLineBreak
3117         going back (wrong variable used). #66867, #68598, #59230 and their duplicates.
3119 2003-11-24  Stephan Kulow  <coolo@kde.org>
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
3127 2003-11-24  David Faure  <faure@kde.org>
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*
3133         * html/html_headimpl.cpp (childrenChanged): Set title immediately, like
3134         other browsers do.
3136 2003-11-23  Germain Garand <germain@ebooksfrance.org>
3138         * html/html_imageimpl.cpp (attach): don't create a renderer if our parent doesn't
3139         allow childs. e.g: a RenderPartObject (#66793)
3141 2003-11-23  Stephan Kulow  <coolo@kde.org>
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)
3147 2003-11-22  Stephan Kulow  <coolo@kde.org>
3149         * rendering/render_line.cpp (paintDecorations): avoid underlining elements that
3150         have no dimension in itself (#68728)
3152 2003-11-22  Koos Vriezen  <koos.vriezen@xs4all.nl>
3154         * html_miscimpl.cpp (HTMLCollectionImpl): Make
3155         window.xxx == document.xxx for APPLET/OBJECT/EMBED elements, using
3156         ID or NAME attributes, behave alike
3158 2003-11-22  Germain Garand  <germain@ebooksfrance.org>
3160         * dom/css_value.cpp (getPropertyPriority): const version was declared
3161         but not implemented
3163         * rendering/font.cpp (drawText): do not use DirWS to count spaces
3164         when justifying, it won't count &nbsp;'s (#65903)
3166         * rendering/render_text.cpp (class InlineTextBox): ditto.
3168 2003-11-19  Dirk Mueller  <mueller@kde.org>
3170         * html/html_baseimpl.cpp (attach): respect display: NONE on <frame>, since
3171         it is used to indicate the FOUC prevention code path now.
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.
3177         * css/cssstyleselector.cpp (adjustRenderStyle): add check to avoid that
3178         <FRAME> gets a display != BLOCK assigned (#63640).
3180 2003-11-18  Harri Porten  <porten@kde.org>
3182         * ecma/kjs_html.cpp: limit collection length to >= 0 (Maciej)
3184 2003-11-18  David Faure  <faure@kde.org>
3186         * css/css_valueimpl.* (cssText): cssText implementation from Maciej Stachowiak.
3188 2003-11-17  David Faure  <faure@kde.org>
3190         * khtml_part.cpp (processObjectRequest):
3191         Stop the spinning wheel on <frame src="">.
3192         Testcase: webcore's fast/frames/empty-frame-src.html
3194 2003-11-17  Stephan Kulow  <coolo@kde.org>
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
3201 2003-11-15  Zack Rusin  <zack@kde.org>
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)
3207 2003-11-14  Germain Garand  <germain@ebooksfrance.org>
3209         fix "overflow: scroll" layout/painting issues
3211         * rendering/render_box.cpp (getOverflowClipRect): substract
3212         scrollbars width/height if any. Merged from WebCore.
3214         * rendering/render_layer.cpp (horizontalScrollbarHeight,
3215         verticalScrollbarWidth): use pixelMetric instead of width()/height().
3217 2003-11-13  Zack Rusin  <zack@kde.org>
3219         * rendering/render_box.cpp (calcAbsoluteVertical): fix the
3220         computation  of the height for the percentage positioned elements
3221         contained in the root
3223 2003-11-11  Dirk Mueller  <mueller@kde.org>
3225         * rendering/render_style.h (StyleBoxData>): fix SunProCC
3226         compatibility problem.
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().
3233         * misc/loader.cpp (CachedCSSStyleSheet): add "*/*;q=0.1" to the
3234         accept header (#67803).
3236 2003-11-10  David Faure  <faure@kde.org>
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.
3243 2003-11-07  Stephan Kulow  <coolo@kde.org>
3245         * css/cssparser.cpp (parseValue): set the background-* properties
3246         to their initial value before expanding (#64743)
3248 2003-11-07  Dirk Mueller  <mueller@kde.org>
3250         * css/css_valueimpl.cpp (cssText): wrap uri's into url().
3251         Stephan Kulow noted that other browsers do that.
3253         * rendering/render_list.h (class RenderListItem): another
3254         SunCC incompatibility fixed. Only applies to HEAD (*phew*).
3256 2003-11-05  Germain Garand  <germain@ebooksfrance.org>
3258         Refinement of namespace handling for Attributes,
3259         following David's patch of 2003-10-25.
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
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...
3269 2003-11-05  Dirk Mueller  <mueller@kde.org>
3271         * html/htmltokenizer.cpp (parseEntity): fix annoying entity parsing problem
3272         that caused stale ';''s popping up everywhere.
3274 2003-11-04  Leo Savernik <l.savernik@aon.at>
3276         * khtml_part.{cpp,h} (selection): Added new overloaded function to
3277         return selection boundaries.
3279 2003-11-04  Dirk Mueller  <mueller@kde.org>
3281         * html/html_baseimpl.cpp (attach): fix assertion failure thanks
3282         to the FOUC patch.
3284 2003-11-04  David Faure  <faure@kde.org>
3286         * html/html_documentimpl.cpp (close): Ensure setTitle is called
3287         at least once, with an empty string if there's no title tag.
3289         * xml/dom_docimpl.cpp (setTitle): Skip equality test if passing an
3290         empty title, since m_title is initially empty.
3292 2003-11-03  Dirk Mueller  <mueller@kde.org>
3294         * misc/loader.cpp (buildAcceptHeader): add */* to Accept-Header
3295         for image requests with low priority to fix www.tweakers.net (#53515).
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.
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).
3306         * html/html_formimpl.cpp (defaultEventHandler): react on space too
3307         (#64200).
3309         * dom/html_base.cpp (src): return the completeURL.
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.
3316 2003-11-02  Dirk Mueller  <mueller@kde.org>
3318         * rendering/render_form.cpp (setStyle): check for direction (#57626)
3319         on RenderLineEdit and RenderTextArea.
3321         * khtmlview.cpp (viewportWheelEvent): toggle Font zooming orientation (#61862).
3323         * rendering/render_box.cpp (paintBackgroundExtended): implement. needed
3324         for inline elements background drawing somewhen.
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.
3332         * rendering/render_replaced.cpp: remove baselinePosition/lineHeight. its in
3333         RenderObject now.
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).
3341 2003-11-02  Stephan Kulow  <coolo@kde.org>
3343         * rendering/render_form.cpp (updateFromElement): invalidate the size hint
3344         of comboboxes as they are cached in QComboBox (#64229)
3346 2003-11-01  Dirk Mueller  <mueller@kde.org>
3348         * css/cssstyleselector.cpp (applyRule): handle clear: none (#57676)
3350 2003-10-31  David Faure  <faure@kde.org>
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).
3356 2003-10-30  Dirk Mueller  <mueller@kde.org>
3358         * xml/dom_docimpl.cpp (open): do a full detach()/attach(),
3359         otherwise we're corrupting the rendertree (#66590).
3361 2003-10-29  Stephan Kulow  <coolo@kde.org>
3363         * html/htmltokenizer.cpp (processListing): fixing textarea regression
3365 2003-10-29  David Faure  <faure@kde.org>
3367         * ecma/kjs_dom.cpp: Patch from Darin Adler to implement Node.item.
3369 2003-10-29  Leo Savernik <l.savernik@aon.at>
3371         * khtml_part.cpp (khtmlMousePressEvent): Fixed occasional selection
3372         of image on which a drag had been initiated.
3374 2003-10-29  David Faure  <faure@kde.org>
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)
3379 2003-10-28  David Faure  <faure@kde.org>
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.
3386         * xml/dom2_eventsimpl.*: Added m_isDoubleClick bool for the reason above.
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.
3393 2003-10-28  Stephan Kulow  <coolo@kde.org>
3395        * khtml_part.cpp (reparseConfiguration): clear the style selector
3397 2003-10-28  Leo Savernik  <l.savernik@aon.at>
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.
3404 2003-10-28  David Faure  <faure@kde.org>
3406         * ecma/kjs_window.cpp (goURL): Compare the URLs without the ref, fixes
3407         wrong reload when opening a tree-like structure (#54358).
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.
3413         * html/html_elementimpl.cpp (innerText): Fix for empty elements.
3415 2003-10-27  David Faure  <faure@kde.org>
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.
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)
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.
3432         * xml/dom_nodeimpl.cpp (handleLocalEvents): fixed crash when a mouse event
3433         is dispatched via the DOM API, with initMouseEvent, dispatchEvent.
3435 2003-10-26  David Faure  <faure@kde.org>
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.
3441 2003-10-25  Dirk Mueller  <mueller@kde.org>
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! :)
3447         right now <input type=file> has severe rendering errors which I blame
3448         on the widget painting code from Lars.
3450 2003-10-25  David Faure  <faure@kde.org>
3452         Make use of the ID scheme much more for elements, getting rid of
3453         m_localName and m_tagName strings in XMLElementImpl.
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.
3474         * xml/dom_docimpl.cpp (DOMImplementationImpl::createDocument):
3475         DOM3 now says a null qualifiedName is allowed in createDocument.
3477 2003-10-24  Dirk Mueller  <mueller@kde.org>
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).
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
3487         * rendering/render_form.cpp (updateFromElement): Fix coolo's commit (#61347)
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.
3502         * css/cssstyleselector.cpp: change getId calls
3504         * css/parser.y: ditto
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
3513         * dom/dom_element.cpp: change getId/implementation method calls
3515         * dom/dom_node.cpp: ditto
3517         * html/html_documentimpl.cpp:
3518         (HTMLDocumentImpl::createElement): check DOM exceptions
3520         * html/html_documentimpl.h: ditto
3522         * html/html_elementimpl.cpp: use m_xhtml bool flag to distinguish HTML/XHTML elements
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
3529         * html/htmlparser.cpp: change getValue/setValue syntax
3531         * html/htmltokenizer.h: change getId calls
3533         * rendering/render_frames.cpp: ditto
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
3542         * xml/dom_docimpl.h: IdNameMapping change
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
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
3556         * xml/dom_nodeimpl.h:
3557         (DOM::NodeImpl::): enum IdType for (ElementId, AttributeId, NamespaceId)
3559         * xml/xml_tokenizer.cpp:
3560         (XMLHandler::startElement): use the qualifiedName instead of the localName
3561             in order to know the prefix if any.
3563 2003-10-24  Stephan Kulow  <coolo@kde.org>
3565         * rendering/render_form.cpp (updateFromElement): support disabled attribute
3566         select option (#61347)
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
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).
3579 2003-10-24  Lars Knoll <knoll@kde.org>
3580         * Hopefully fixed most repainting problems.
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.
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
3593 2003-10-23  Stephan Kulow  <coolo@kde.org>
3595         * html/htmltokenizer.cpp (processListing): do not discard all white space
3596            in textareas (#62076)
3598         * css/cssstyleselector.cpp (applyRule): if the first font isn't found,
3599                 continue looking (#60556)
3601 2003-10-22  Dirk Mueller  <mueller@kde.org>
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
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).
3614 2003-10-21  Dirk Mueller  <mueller@kde.org>
3616         * rendering/render_list.cpp (calcListValue): skip anonymous block while searching
3617         for the <ol> block. Thanks to the Maksim regression testengine.
3619         * rendering/render_object.cpp (setOverhangingContents): refine assert to avoid
3620         crash on bananalotto.com. Adjust to changed containingBlock() behavior.
3622         * html/html_listimpl.cpp (attach): fix thinko. Revert Safari merge which
3623         broke <ul><p><li>. Thanks to Maksim for noticing.
3625         * rendering/render_list.cpp (calcListValue): handle <ul><p><li> again.
3627         * rendering/render_box.cpp (repaint): revert commit which introduced another
3628         4 bytes overhead. No need to waste memory here.
3630         * rendering/render_object.cpp (setStyle): schedule repaint on old object
3631         when the new outline is going to be thinner.
3633         * rendering/render_form.cpp (RenderCustomButton): Remove.
3635         * rendering/render_replaced.cpp (RenderReplaced::checkSelectionPoint): Remove.
3636         RenderObject/RenderBox'es implementation *must* work. No need to add useless code.
3638         * rendering/render_replaced.cpp (RenderReplacedBlock): Remove.
3640         * html/html_formimpl.cpp (HTMLButtonElement::attach): Remove.
3642         * rendering/render_box.cpp (calcWidth): implement CSS min-width/max-width
3643         support (#12994).
3645         * rendering/render_block.cpp (renderName): don't crash when style() is 0L.
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).
3651         * rendering/render_object.cpp (createObject): create RenderBlock for INLINE_BLOCK.
3653         * css/html4.css (BUTTON/LEGEND): set display: inline-block.
3655         * css/cssstyleselector.cpp (styleForElement): handle COMPACT/RUN_IN/INLINE_BLOCK
3656         (applyRule): handle INLINE_BLOCK.
3658         * css/makeprop: don't export getPropertyName. declare it.
3660         * xml/dom_nodeimpl.cpp (replaceChild/appendChild/removeChild):
3661         Reverting patch which invalidated layout on child when it was attached.
3663 2003-10-20  Lars Knoll <knoll@kde.org>
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()
3671 2003-10-20  Dirk Mueller  <mueller@kde.org>
3673         * css/html4.css (UL,MENU,DIR,OL): don't set flow-around-floats (#53429).
3675 2003-10-20  David Faure  <faure@kde.org>
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).
3681 2003-10-20  Dirk Mueller  <mueller@kde.org>
3683         * rendering/render_form.cpp (layout): set IE-CSS-extension style palette
3684         on <textarea> scrollbars (#56532).
3686         * rendering/render_layer.cpp (showScrollbar): set IE-CSS-extension styled
3687         palette on the overflow=scroll/auto scrollbars.
3689         * rendering/render_frames.cpp (close): reorder. updateWidget() might
3690         delete this.
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)
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).
3700         * split up borderSpacing into a horizontal and vertical border spacing so that
3701         tables can have assymmetric spacing.
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.
3707         * rendering/render_list.cpp: ListItems are no longer floats.
3709 2003-10-19  Dirk Mueller  <mueller@kde.org>
3711         * html/html_headimpl.cpp (childrenChanged): make sure that we respect the media
3712         attribute of <style> (#47786).
3714 2003-10-19  Harri Porten  <porten@kde.org>
3716         * html/html_documentimpl.cpp (setCookie): use latin1 encoding to
3717         have a 1:1 translation of the lowest Unicode row.
3719 2003-10-19  Dirk Mueller  <mueller@kde.org>
3721         * html/htmltokenizer.cpp (parseEntity): when entity is terminated and result
3722         is not-ascii, require ending ';'. khtmltests/html/parser/obscure_entity_tokenizing.html
3724 2003-10-18  Dirk Mueller  <mueller@kde.org>
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.
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">
3733         * html/htmlparser.cpp (insertNode): fix typo (#66200).
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).
3739 2003-10-14  David Faure  <faure@kde.org>
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.
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
3749 2003-10-14  David Faure  <faure@kde.org>
3751         * xml/dom_nodeimpl.cpp (handleLocalEvents): Fixed infinite loop in
3752         NodeImpl::handleLocalEvents due to braindead QPtrList behavior. #61623.
3754 2003-10-10  Harri Porten  <porten@kde.org>
3756         * ecma/kjs_html.cpp: title and alt attributes should never be null
3758         * ecma/kjs_html.cpp (toString): make use of alt attribute if set
3760 2003-10-09  Dirk Mueller  <mueller@kde.org>
3762         * ecma/kjs_dom.cpp (putValueProperty): don't scroll layer when there is is nothing
3763         to scroll. (David Hyatt)
3765         * rendering/render_object.cpp (scrollHeight): return overflowHeight() not contentHeight()
3766         by default. (David Hyatt)
3768         * rendering/render_object.cpp (scrollWidth): return overflowWidth() not contentWidth()
3769         by default. (David Hyatt)
3771         * html/htmltokenizer.cpp (parseEntity): Improve tokenizing of unterminated
3772         entities.
3774 2003-10-09  Leo Savernik  <l.savernik@aon.at>
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
3783         * rendering/render_text.{cpp,h} (InlineTextBox::paintDecoration),
3784         rendering/font.{cpp,h} (drawText, drawDecoration):
3785         fixed drawing of text decoration within selected text
3787         * rendering/render_text.cpp (paintObject),
3788         rendering/font.{cpp,h} (drawText):
3789          fixed overspilling of selection with unusual line-height configurations
3791 2003-10-07 Germain Garand <germain@ebooksfrance.org>
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)
3797         * rendering/render_replaced.cpp (handleEvent):
3798         map MOUSEOUT/MOUSEOVER DOM events to Enter/Leave events. Honours stacking
3799         while mouse buttons are pressed.
3801         * html/html_formimpl.cpp (defaultEventHandler): forward MOUSEOUT/MOUSEOVER
3802         to handleEvent
3804 2003-10-06  Daniel Molkentin  <molkentin@kde.org>
3806         * ecma/kjs_window.cpp: added window.open targets _self and replace
3808 2003-10-06  David Faure  <faure@kde.org>
3810         * ecma/kjs_html.cpp: Fixed crash due to onload=null in the onload event
3811         handler (#57195).
3813 2003-10-06  Dirk Mueller  <mueller@kde.org>
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
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.
3824         * khtml_ext.cpp (KHTMLPopupGUIClient): pass QObject parent
3826 2003-10-05  Dirk Mueller  <mueller@kde.org>
3828         * ecma/kjs_css.cpp (tryPut): Fix CSSValue refcounting error causing major
3829         memory leak.
3831         * dom/css_value.cpp/h (class CSSStyleDeclaration): make accessors const. Add
3832         binary compatibility wrappers.
3834 2003-10-04 Germain Garand <germain@ebooksfrance.org>
3836         * rendering/render_replaced.cpp (baselinePosition): use setPos to adjust
3837         layer position if needed. Fix relatively positioned widgets not being painted.
3839 2003-10-04  Dirk Mueller  <mueller@kde.org>
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
3846 2003-10-04  Dirk Mueller  <mueller@kde.org>
3848         * khtml_settings.cc (init): change default for JS debugger to off.
3850         * html/html_elementimpl.cpp (createContextualFragment): Fix memory
3851         leaks. Adjust code style. Adjust return to avoid dangling return leaks.
3853         * xml/dom2_rangeimpl.cpp (createContextualFragment): adjust return type.
3855         * html/html_elementimpl.h (class HTMLElementImpl): adjust return type.
3857         * dom/dom2_range.cpp (createContextualFragment): Adjust to DocumentFragment
3858         return type.