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
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,
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>
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.
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.
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.
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.
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
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
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>
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
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
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>
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
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
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
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
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
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
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
1135 (RenderTableCell::paint): Added painting of the table cell's outline
1136 herein instead in RenderBlock to encompass the extra table cell top
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
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
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):
1174 * rendering/render_inline.cpp (addChildToFlow,splitFlow): ditto.
1176 * rendering/render_list.cpp (setStyle,updateMarkerLocation,RenderListMarker):
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
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
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
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
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
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
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
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):
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
1713 2004-10-15 Germain Garand <germain@ebooksfrance.org>
1715 bring z-order to QScrollView
1717 * html/html_formimpl.cpp (defaultEventHandler): propagate events to
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
1730 2004-10-15 Germain Garand <germain@ebooksfrance.org>
1732 display: compact fixes.
1734 * rendering/bidi.cpp: remove checks for display: compact,
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
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
1853 (HTMLTextAreaElementImpl::setValue): Mark element as initialized after
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
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
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
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
2004 2004-06-26 Germain Garand <germain@ebooksfrance.org>
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
2030 2004-06-22 Germain Garand <germain@ebooksfrance.org>
2032 Scope: Inline-blocks inlining. Merge Webcore improvements for
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
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
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
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,
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,
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
2100 * html/html_parser.cpp: (getElement) Made ID_MARQUEE generate an
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
2108 * rendering/render_box.{cpp,h}: Updated lowestPosition, rightmostPosition, added
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
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
2146 * xml/dom_nodeimpl.{h,cpp}: remove the toHTML and recursive_toHTML
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
2163 * html/htmltokenizer.{h,cpp}: adding the isWaitingForScripts
2165 * xml/dom_docimpl.cpp (close): On an explicit document.close()
2166 don't destroy the tokenizer if it's still waiting on external
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
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.
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
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
2274 * rendering/render_table.cpp: Added code for handling outlines.
2276 * rendering/render_text.{cpp,h}: (paint) Removed outline painting
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
2301 * rendering/render_form.cpp: (paintBorderMinusLegend) Honor new border
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
2312 (class BorderValue) Merged nonZero and isTransparent to make border
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
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
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
2377 * rendering/render_text.{cpp,h}: (RenderText::caretPos) Handle flags.
2379 * xml/dom_nodeimpl.{cpp,h}: (NodeImpl::getCaret) Handle DOM Range
2381 Remove unused NodeImpl::{prev,next}LeafNode.
2382 (NodeImpl::maxOffset) Return child node count instead of 1 for element
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
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 !=
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
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
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
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
2565 * rendering/render_container.cpp (updatePseudoChild):
2566 always regenerate :before/:after content holding
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
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 *
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
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
2662 * dom/dom_doc.cpp (createTreeWalker): implementing the
2664 * xml/dom2_traversalimpl : Implementing TreeWalkerImpl
2665 * xml/dom_docimpl (createTreeWalker): Implementing the
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
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
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
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
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,
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
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
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
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
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
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
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
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
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.
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
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
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
3163 * rendering/font.cpp (drawText): do not use DirWS to count spaces
3164 when justifying, it won't count '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
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
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
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
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
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
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
3692 * html/html_formimpl.cpp (value): return the DOM "defaultValue" when we have
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§ion=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
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
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
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.
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
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