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