Reviewed by Darin.
[WebKit-https.git] / WebCore / ChangeLog-2005-08-23
1 2003-11-06  Maciej Stachowiak  <mjs@apple.com>
2
3         Reviewed by Darin.
4
5         - fixed 3475366 - 4.5% of time spent making html event listeners on slow intel page.
6
7         6% speedup on intel page, 1% speedup on cvs-base PLT.
8         
9         * khtml/ecma/kjs_events.cpp:
10         (JSEventListener::JSEventListener): Don't add self to hashtable if imp is null (which
11         can now happen in the lazy listener case).
12         (JSEventListener::~JSEventListener): Ditto on removing.
13         (JSEventListener::listenerObj): Made this virtual.
14         (JSLazyEventListener::JSLazyEventListener): New constructor.
15         (JSLazyEventListener::handleEvent): call parseCode, then
16         superclass if it appeared to succeed.
17         (JSLazyEventListener::listenerObj): call parseCode, then superclass.
18         (JSLazyEventListener::parseCode):
19         (KJS::getNodeEventListener): Check for null listenerObjImp in case of
20         lazy listener that failed to parse.
21         * khtml/ecma/kjs_dom.cpp:
22         (DOMNode::getListener): Ditto.
23         * khtml/ecma/kjs_html.cpp:
24         (Image::getValueProperty): Ditto.
25         * khtml/ecma/kjs_events.h:
26         (KJS::JSEventListener::listenerObjImp): call listenerObj() virtual
27         method and get imp from the result.
28         * khtml/ecma/kjs_proxy.cpp:
29         (KJSProxyImpl::createHTMLEventHandler): Don't parse the code here, make a lazy
30         listener.
31         * khtml/ecma/kjs_window.cpp:
32         (Window::getJSLazyEventListener): make a new JSLazyEventListener - no need
33         to check the listeners hashtable cause a brand new lazy listener won't have
34         a function anyway.
35         * khtml/ecma/kjs_window.h: Prototype new method.
36
37 2003-11-06  Maciej Stachowiak  <mjs@apple.com>
38
39         Reviewed by Darin.
40
41         - fixed 3475397 - REGRESSION: relative URLs on page load test sometimes contain garbage, leading to missing images
42         
43         * kwq/KWQKURL.mm:
44         (KURL::KURL): When constructing from NSURL, null-terminate the raw
45         bytes since KURL::parse expects a null-terminated C string. It
46         might be even better to pass a length to parse, but this fix is
47         simple and does the job.
48
49 2003-11-05  Darin Adler  <darin@apple.com>
50
51         Reviewed by Maciej.
52
53         - fixed 3475109 -- support keyboard event object properties of altkey, ctrlKey, shiftKey
54
55         We had the DOM Level 3 KeyboardEvent class already; I just had to add JavaScript bindings.
56
57         * khtml/ecma/kjs_events.h: Added DOMKeyboardEvent class.
58         * khtml/ecma/kjs_events.cpp:
59         (KJS::getDOMEvent): Added code to make a DOMKeyboardEvent if the event is a DOM::KeyboardEvent.
60         (DOMKeyboardEvent::~DOMKeyboardEvent): Added.
61         (DOMKeyboardEvent::classInfo): Added.
62         (DOMKeyboardEvent::tryGet): Added.
63         (DOMKeyboardEvent::getValueProperty): Added.
64         (DOMKeyboardEventProtoFunc::tryCall): Added.
65
66         * khtml/dom/dom2_events.cpp:
67         (KeyboardEvent::keyIdentifier): Added.
68         (KeyboardEvent::keyLocation): Added.
69
70         * khtml/ecma/kjs_events.lut.h: Regenerated.
71
72 2003-11-05  Maciej Stachowiak  <mjs@apple.com>
73
74         Reviewed by John.
75
76         - fixed 3475092 - Notifying the bridge about duplicate images takes 13% of time on intel page
77
78         Another 15% speedup on the intel page.
79
80         This also results in a 3% speedup on cvs-base PLT! (or maybe that was my last change)
81         
82         * kwq/KWQLoader.mm:
83         (KWQServeRequest): Note that we told the bridge about the load.
84         (KWQCheckCacheObjectStatus): Don't tell the bridge about the load
85         if we have alrady; if we do tell it, then note it down.
86         * kwq/KWQKHTMLPart.h:
87         * kwq/KWQKHTMLPart.mm:
88         (KWQKHTMLPart::didTellBridgeAboutLoad): Helper method for the above.
89         (KWQKHTMLPart::haveToldBridgeAboutLoad): Ditto.
90         (KWQKHTMLPart::clear): Clear our idea of what URLs we told the bridge about.
91         * khtml/khtml_part.h: make clear() virtual.
92
93 2003-11-05  Darin Adler  <darin@apple.com>
94
95         * WebCore-combined.exp: Checked in generated file.
96
97 2003-11-05  Richard Williamson   <rjw@apple.com>
98
99         Fixed 3474957.  Changed name of image rendering method to better reflect it's actual function.
100
101         - (void)beginAnimationInRect:(NSRect)ir fromRect:(NSRect)fr;
102
103         renamed to
104
105         - (void)drawImageInRect:(NSRect)ir fromRect:(NSRect)fr;
106
107         Reviewed by Chris.
108
109         * kwq/KWQPainter.mm:
110         (QPainter::drawPixmap):
111         * kwq/WebCoreImageRenderer.h:
112
113 2003-11-05  Darin Adler  <darin@apple.com>
114
115         * WebCore-tests.exp: Added missing symbol so tests will link.
116
117 2003-11-05  Maciej Stachowiak  <mjs@apple.com>
118
119         Reviewed by Ken.
120
121         - fixed 3474756 - Creating HTML event listeners takes 5% of time on particular slow intel page
122         
123         * khtml/ecma/kjs_window.h: Make jsEventListeners a hashtable keyed
124         by listener object, not a list.
125         * khtml/ecma/kjs_window.cpp:
126         (Window::getJSEventListener): Do hashtable lookup for existing listener instead of
127         walking list.
128         * khtml/ecma/kjs_events.cpp:
129         (JSEventListener::JSEventListener): Use hashtable insert instead of list append.
130         (JSEventListener::~JSEventListener): Use hashtable remove instead of list removeRef.
131
132 2003-11-05  Darin Adler  <darin@apple.com>
133
134         Reviewed by Maciej.
135
136         - fixed 3473872 -- encode domain names for IDN when creating URLs inside WebCore
137
138         * kwq/KWQKURL.h: Added KWQIntegerPair type, a number of private functions.
139         * kwq/KWQKURL.mm:
140         (isSchemeFirstChar): Make inline function from macro.
141         (isSchemeChar): Make inline function from macro.
142         (isUserInfoChar): Make inline function from macro.
143         (isHostnameChar): Make inline function from macro.
144         (isIPv6Char): Make inline function from macro.
145         (isPathSegmentEndChar): Make inline function from macro.
146         (isBadChar): Make inline function from macro.
147         (isHexDigit): Make inline function from macro.
148         (KURL::KURL): Remove unneeded initializations of m_isValid, since parse sets it.
149         Use CFURLGetBytes in one place a FIXME asked for it. Changed non-ASCII case to use
150         a separate function instead of code in line.
151         (KURL::encodeHostnames): Added. Finds host names and encodes them.
152         (KURL::findHostnameInHierarchicalURL): Added. Finds host name in a hierarchical URL.
153         (KURL::encodeHostname): Added. Encodes one host name.
154         (KURL::findHostnamesInMailToURL): Added. Finds host names in a mailto URL.
155
156         * kwq/KWQString.h: Added new overloads for startsWith.
157         * kwq/KWQString.mm:
158         (compareIgnoringCaseForASCIIOnly): Moved these functions up in the file so they can be
159         used by more methods of QString.
160         (QString::startsWith): Added new overloads.
161
162         * WebCore.pbproj/project.pbxproj: Add libicucore.A.dylib library.
163
164 2003-11-05  Maciej Stachowiak  <mjs@apple.com>
165
166         Reviewed by Darin.
167
168         - fixed 3473906 - getElementById takes about 44% of time on particular slow intel page
169
170         I fixed this by adding a per-document id --> element hash
171         table. This speeds up my local copy of the intel page by 60% (50
172         sec to 20 sec!) and does not cause any PLT slowdown.
173         
174         * khtml/xml/dom_docimpl.h: New QDict field for id to element hash table.
175         * khtml/xml/dom_docimpl.cpp:
176         (DocumentImpl::getElementById): Just look it up in the newly
177         added hash table.
178         (DocumentImpl::addElementById): New method. Add to hash table if
179         no other element is set for that key (this lets the first element
180         of several with matching ids win).
181         (DocumentImpl::removeElementById): New method. Remove from hash
182         table only if the key and value both match.
183
184         These Element changes to keep the id --> element hashtable working
185         seem needlessly tricky, due to lack of bottlenecks in attribute
186         changing.
187         
188         * khtml/xml/dom_elementimpl.cpp:
189         (ElementImpl::updateId): New method that removes element from
190         hash table for old it
191         (ElementImpl::setAttribute): If setting id, call updateId.
192         (ElementImpl::setAttributeMap): If either the old or the new map
193         includes id, call updateId.
194         (ElementImpl::attach): If we have an id, call updateId to set it
195         after attaching.
196         (ElementImpl::detach): Newly added. If we have an id, call
197         updateId to clear it before detaching.
198         (NamedAttrMapImpl::setNamedItem): If the name is id, call updateId on
199         our element.
200         (NamedAttrMapImpl::removeNamedItem): If the name is id, call updateId on
201         our element.
202         (NamedAttrMapImpl::operator=): If old or new contents include id attribute,
203         call updateId on our element.
204         * khtml/xml/dom_elementimpl.h: Prototype new methods.
205
206 2003-11-05  Ken Kocienda  <kocienda@apple.com>
207
208         Reviewed by Maciej
209
210         Fix for these bugs:
211
212         <rdar://problem/3467558>: Cannot tab to form file input widgets
213         <rdar://problem/3473631>: WebFileButton sends notifications to communicate with WebCore
214
215         Tabbing now works for these widgets. While I was in the neighborhood,
216         I improved the communication mechanism between the WebKit and WebCore
217         sides of the file button implementation, replacing notifications
218         with a callback object.
219
220         * WebCore-combined.exp: Remove no-longer used WebCoreFileButtonClicked
221         and WebCoreFileButtonFilenameChanged notofication strings.
222         * WebCore.exp: Ditto.
223         * kwq/KWQFileButton.h: Changed declarations to match changes in
224         callback functions.
225         * kwq/KWQFileButton.mm:
226         (KWQFileButton::KWQFileButton): Now sets the view after creating
227         the delegate object.
228         (KWQFileButton::filenameChanged): Now takes a QString argument
229         which indicates the filename.
230         (KWQFileButton::focusChanged): New function. Sends DOM focus and
231         blur events.
232         (-[KWQFileButtonAdapter initWithKWQFileButton:]): No longer needs
233         to register for notifications.
234         (-[KWQFileButtonAdapter dealloc]): No longer needs to remove itself
235         from the notification center.
236         (-[KWQFileButtonAdapter filenameChanged:]): No longer a notification
237         callback. Now a WebCoreFileButtonCallback callback.
238         (-[KWQFileButtonAdapter focusChanged:]): New WebCoreFileButtonCallback
239         callback.
240         (-[KWQFileButtonAdapter clicked]): No longer a notification
241         callback. Now a WebCoreFileButtonCallback callback.
242         * kwq/KWQKHTMLPart.mm:
243         (KWQKHTMLPart::nextKeyViewInFrame): Unrelated cleanup.
244         * kwq/WebCoreBridge.h: Declared new WebCoreFileButtonDelegate protocol.
245
246 2003-11-05  Maciej Stachowiak  <mjs@apple.com>
247
248         - fixed deployment build
249         
250         * kwq/KWQKHTMLPart.mm:
251         (KWQKHTMLPart::fileWrapperForElement):
252
253 2003-11-04  Maciej Stachowiak  <mjs@apple.com>
254
255         Reviewed by Ken.
256
257         * khtml/ecma/kjs_window.cpp: Don't make event read-only, some
258         sites want to set their own top-level function named "event" and
259         will hang if they can't.
260         * khtml/ecma/kjs_window.lut.h: Regenerated.
261
262 2003-11-03  David Hyatt  <hyatt@apple.com>
263
264         Fix for 3472167, for shrink-to-fit style printing, grow the width of the initial containing block
265         to be as large as the rightmost position after doing a layout to the page width.
266         
267         Reviewed by john
268
269         * kwq/KWQKHTMLPart.mm:
270         (KWQKHTMLPart::forceLayoutForPageWidth):
271
272 2003-11-04  Chris Blumenberg  <cblu@apple.com>
273
274         Fixed:
275         <rdar://problem/3472403>: RTFD of copied text and images should use original image data not tiffs
276
277         Reviewed by john.
278
279         * kwq/KWQKHTMLPart.h:
280         * kwq/KWQKHTMLPart.mm:
281         (KWQKHTMLPart::fileWrapperForElement): call [_bridge _fileWrapperForURL:] to get cached data
282         * kwq/WebCoreBridge.h: added _fileWrapperForURL: to the bridge protocol
283         * kwq/WebCoreBridge.mm:
284         (-[WebCoreBridge selectedAttributedString]): call the instance method attributedString 
285         (-[WebCoreBridge attributedStringFrom:startOffset:to:endOffset:]): call the instance method attributedString 
286
287 2003-11-04  Maciej Stachowiak  <mjs@apple.com>
288
289         Reviewed by Chris.
290
291         - fixed 3472893 - Slow intel page takes 20% of its time in CachedObject::ref
292         
293         Speeds up loading of
294         http://www.intel.com/cd/ids/developer/asmo-na/eng/index.htm by
295         19%, no slowdown on PLT.
296         
297         * khtml/misc/loader.h: Use QPtrDict for m_clients instead of QPtrList.
298         * khtml/misc/loader.cpp:
299         (CachedObjectClientWalker::CachedObjectClientWalker): Ditto.
300         (CachedObject::ref): Ditto.
301         * kwq/KWQPtrDict.h:
302         (QPtrDict::isEmpty): Implemented.
303
304 2003-11-03  Maciej Stachowiak  <mjs@apple.com>
305
306         Reviewed by Darin.
307
308         - fixed 3370085 - new frames with javascript: URLs should be populated with the result of the JavaScript code
309         
310         * ChangeLog:
311         * khtml/html/html_baseimpl.cpp:
312         (HTMLFrameElementImpl::updateForNewURL): Skip special filtering of
313         javascript:.
314         (HTMLFrameElementImpl::attach): Ditto.
315         * khtml/khtml_part.cpp:
316         (KHTMLPart::replaceContentsWithScriptResult): New method to execute
317         script and if the result is a string, set it as the new document contents.
318         (KHTMLPart::requestFrame): Removed APPLE_CHANGES around
319         javascript: handling. Use new
320         replaceContentsWithScriptResult method. This executes the
321         JS in the new child frame, not the parent frame, as in other
322         browsers.
323         * khtml/khtml_part.h: Prototype new method.
324         * kwq/KWQKHTMLPartBrowserExtension.mm:
325         (KHTMLPartBrowserExtension::openURLRequest): Use new part method.
326
327 2003-11-03  Vicki Murley  <vicki@apple.com>
328
329         Reviewed by kocienda.
330
331         - fixed <rdar://problem/3471096>: non-B&I builds should not use order files, because they cause false "regressions" in perf.
332
333         * WebCore.pbproj/project.pbxproj: added empty SECTORDER_FLAGS variables to the Development and Deployment build styles
334
335 2003-11-03  Ken Kocienda  <kocienda@apple.com>
336
337         Reviewed by Maciej
338
339         Fix for this bug:
340
341         <rdar://problem/3470338>: onclick is not executing when you hit enter on focused links
342
343         Now when we trap return or enter when a link is focused, we send
344         a click event to the node.
345
346         * khtml/html/html_inlineimpl.cpp:
347         (HTMLAnchorElementImpl::defaultEventHandler): Swallow key event when 
348         return or enter and send a mouse event.
349         (HTMLAnchorElementImpl::performClick): New function to send simulated
350         click.
351         * khtml/html/html_inlineimpl.h: Declare performClick function.
352
353 2003-11-03  Darin Adler  <darin@apple.com>
354
355         Reviewed by John.
356
357         - fixed 3392543 -- incorrect base writing direction in RTL form controls
358         - fixed baseline for list box <select> elements
359         - moved style code from updateFromElement to setStyle
360
361         * khtml/rendering/render_form.h: Added setStyle function to RenderFormElement, RenderLineEdit,
362         RenderSelect, and RenderTextArea. Removed some unused stuff.
363         * khtml/rendering/render_form.cpp:
364         (RenderFormElement::setStyle): Set the font based on the style.
365         (RenderFormElement::updateFromElement): Remove font setting code; moved to setStyle.
366         Also ifdef'd out the color-setting code, which belongs in setStyle and is irrelevant
367         for KWQ anyway.
368         (RenderSubmitButton::setStyle): Set the writing direction based on the style.
369         (RenderSubmitButton::updateFromElement): Tiny code cleanup, using a local variable.
370         (RenderLineEdit::setStyle): Set the alignment and writing direction based on the style.
371         (RenderLineEdit::updateFromElement): Remove alignment setting code; moved to setStyle.
372         (RenderFileButton::RenderFileButton): Remove code to set m_focus, a data member that was
373         never used.
374         (RenderSelect::setWidgetWritingDirection): Added. Helper function.
375         (RenderSelect::setStyle): Call setWidgetWritingDirection.
376         (RenderSelect::updateFromElement): Call setWidgetWritingDirection if a new widget is created.
377         (RenderSelect::baselinePosition): Added a FIXME comment.
378         (RenderTextArea::setStyle): Set the alignment and writing direction based on the style.
379         (RenderTextArea::updateFromElement): Remove alignment setting code; moved to setStyle.
380
381         * kwq/KWQButton.h: Added setWritingDirection function.
382         * kwq/KWQButton.mm:
383         (+[KWQButton cellClass]): Use KWQButtonCell.
384         (-[KWQButtonCell baseWritingDirection:]): Return base writing direction.
385         (-[KWQButtonCell setBaseWritingDirection:]): Store base writing direction.
386         (-[KWQButtonCell _textAttributes]): Set the base writing direction in the paragraph
387         style if it's not already right.
388         (QButton::setWritingDirection): Call setBaseWritingDirection: on the cell and do
389         setNeedsDisplay: as needed.
390
391         * kwq/KWQComboBox.h: Added setWritingDirection function.
392         * kwq/KWQComboBox.mm:
393         (QComboBox::setWritingDirection): Call setBaseWritingDirection: on the cell and do
394         setNeedsDisplay: as needed.
395         (-[KWQPopUpButtonCell setBaseWritingDirection:]): Store base writing direction.
396         (-[KWQPopUpButtonCell baseWritingDirection:]): Return base writing direction.
397         (-[KWQPopUpButtonCell _textAttributes]): Set the base writing direction in the
398         paragraph style if it's not already right.
399
400         * kwq/KWQLineEdit.h: Added setWritingDirection function.
401         * kwq/KWQLineEdit.mm:
402         (QLineEdit::setAlignment): Tweaked to match new setWritingDirection in style.
403         (QLineEdit::setWritingDirection): Call setBaseWritingDirection: on the KWQTextField.
404
405         * kwq/KWQTextField.h: Added setBaseWritingDirection method.
406         * kwq/KWQTextField.mm:
407         (-[KWQTextField setPasswordMode:]): Set the base writing direction of the secure field's
408         cell based on the base writing direction of the parent field's cell, when creating the
409         secure field.
410         (-[KWQTextField setBaseWritingDirection:]): Added. Sets the base writing direction of
411         the field's cell and the secure field's cell, if it exists, and does setNeedsDisplay
412         as needed.
413         (-[KWQTextFieldCell setBaseWritingDirection:]): Added. Stores the base writing direction.
414         (-[KWQTextFieldCell baseWritingDirection]): Added. Returns the base writing direction.
415         (-[KWQTextFieldCell _textAttributes]): Set the base writing direction in the paragraph
416         style if it's not already right.
417         (-[KWQSecureTextFieldCell setBaseWritingDirection:]): Added. Stores the base writing
418         direction.
419         (-[KWQSecureTextFieldCell _textAttributes]): Set the base writing direction in the
420         paragraph style if it's not already right.
421
422         * kwq/KWQListBox.h: Added itemIsGroupLabel and setWritingDirection functions, and made
423         the private insertItem function take a QString instead of an NSObject.
424         (QListBox::insertItem): Changed parameter from unsigned to int to match Qt, and made it
425         use an inlne to call the private insertItem function shared with insertGroupLabel.
426         (QListBox::insertGroupLabel): Changed parameter from unsigned to int and made it use an
427         inline to call the private insertItem function.
428         * kwq/KWQListBox.mm:
429         (itemFont): Added. Returns a suitable font for individual items.
430         (groupLabelFont): Added. Returns a suitable font for group labels.
431         (paragraphStyle): Added. Returns a suitable paragraph style for a given writing direction.
432         (stringAttributes): Added. Returns a string attributes dictionary for a given writing direction for
433         either individual items or group labels.
434         (QListBox::insertItem): Use an attributed string to give the item the appropriate font and
435         writing direction, calling stringAttributes to get the attributes dictionary, and getting
436         the writing direction from the table view.
437         (QListBox::endBatchInsert): Tweak for consistency with other nearby methods.
438         (QListBox::setSelected): Add an assertion and tweak a bit.
439         (QListBox::isSelected): Add an assertion and tweak a bit.
440         (QListBox::setWritingDirection): Update the styles for all the attributed strings and call
441         reloadData if the writing direction changes. Also store the direction in the table view.
442         (QListBox::itemIsGroupLabel): Added. Returns true if a given item is a group label; works
443         by checking the font in the attributed string.
444         (-[KWQTableView initWithListBox:items:]): Use itemFont() instead of computing the font.
445         (-[KWQTableView tableView:shouldSelectRow:]): Use itemIsGroupLabel function instead of
446         checking for NSString vs. NSttributedString in the items array; we now use attributed
447         strings for all the items.
448         (-[KWQTableView setBaseWritingDirection:]): Added. Stores a base writing direction.
449         (-[KWQTableView baseWritingDirection]): Added. Returns the stored base writing direction.
450
451         * kwq/KWQTextEdit.h: Added setWritingDirection function.
452         * kwq/KWQTextEdit.mm:
453         (QTextEdit::setAlignment): Removed code to set base writing direction.
454         (QTextEdit::setWritingDirection): Added. Sets base writing direction.
455
456         * kwq/KWQTextArea.mm: (-[KWQTextArea setBaseWritingDirection:]): Call setNeedsDisplay:YES.
457
458 2003-11-03  David Hyatt  <hyatt@apple.com>
459
460         Fix 3472200, media tests fail to parse correctly.  Merging a patch to handle exotic media types
461         from the KHTML trunk.
462
463         * khtml/css/parser.cpp:
464         * khtml/css/parser.y:
465
466 2003-11-03  David Hyatt  <hyatt@apple.com>
467
468         Fix for 3471314, make sure to check the outline phase before painting backgrounds of iframes.
469         
470         Reviewed by mjs
471
472         * khtml/rendering/render_replaced.cpp:
473         (RenderReplaced::paint):
474
475 2003-11-03  David Hyatt  <hyatt@apple.com>
476
477         Fix for 3470855, links with script action stay focused when clicking.
478
479         Fix for 3470858, clicking and dragging a link and then releasing doesn't clear the glow ring.
480
481         Fix for 3472090, link should not be mouse focusable.
482         
483         Reviewed by mjs
484
485         * khtml/css/html4.css:
486         * khtml/html/html_inlineimpl.h:
487         (DOM::HTMLAnchorElementImpl::isMouseFocusable):
488
489 2003-11-03  David Hyatt  <hyatt@apple.com>
490
491         Fix for 3472030, line-height not properly reset in all cases when the font shorthand is used.
492         
493         Reviewed by mjs
494
495         * khtml/css/cssparser.cpp:
496         (CSSParser::parseFont):
497
498 2003-11-03  Maciej Stachowiak  <mjs@apple.com>
499
500         Reviewed by Darin.
501
502         - fixed 3472023 - REGRESSION: assertion on layout tests
503         
504         * kwq/KWQTextCodec.mm:
505         (KWQTextDecoder::convertUTF16): Remove assert that length is not
506         0, since we can get zero length now when flushing.
507
508 2003-11-03  Ken Kocienda  <kocienda@apple.com>
509
510         Reviewed by John
511
512         Fix for this bug:
513
514         <rdar://problem/3260780>: hitting return in a text field submits 
515         form without running onclick handler for submit button
516
517         * khtml/html/html_formimpl.cpp:
518         (HTMLFormElementImpl::performSubmitClick): Refactored this function to
519         be more generic, so that text fields can use it, too.
520         (HTMLInputElementImpl::defaultEventHandler): Removed code to check
521         for a submit button, and merged this code into new performSubmitClick.
522         (HTMLSelectElementImpl::defaultEventHandler): Ditto.
523         * khtml/html/html_formimpl.h: Removed declaration for simulateButtonClickForEvent.
524         Added declaration for performSubmitClick.
525         * khtml/rendering/render_form.cpp:
526         (RenderLineEdit::slotReturnPressed): Now calls performSubmitClick rather
527         than prepareSubmit on the form. This is the key piece for the bug fix.
528
529 2003-11-03  Ken Kocienda  <kocienda@apple.com>
530
531         Reviewed by John
532
533         Fix for this bug:
534
535         <rdar://problem/3470342>: focus rings are shown for links in
536         web pages even in non-frontmost windows
537
538         * kwq/KWQKHTMLPart.h: Add setShowsFirstResponder, showsFirstResponder functions and
539         _showsFirstResponder member variable.
540         (KWQKHTMLPart::showsFirstResponder): Added.
541         * kwq/KWQKHTMLPart.mm:
542         (KWQKHTMLPart::KWQKHTMLPart): Initialize _showsFirstResponder to true
543         (KWQKHTMLPart::setShowsFirstResponder): Sets whether the painter draws focus rings.
544         * kwq/KWQPainter.h: Add _drawsFocusRing member variable.
545         (QPainter::setDrawsFocusRing): Sets whether the painter draws focus rings.
546         * kwq/KWQPainter.mm:
547         (QPainter::QPainter): Initialize _drawsFocusRing to true.
548         (QPainter::initFocusRing): Check _drawsFocusRing flag. Return if set to false.
549         (QPainter::addFocusRingRect): Ditto.
550         (QPainter::drawFocusRing): Ditto.
551         * kwq/WebCoreBridge.h: Add setShowsFirstResponder method.
552         * kwq/WebCoreBridge.mm:
553         (-[WebCoreBridge drawRect:]): Sets the value for _drawsFocusRing on the
554         painter using _showsFirstResponder value from the part.
555         (-[WebCoreBridge setShowsFirstResponder:]): Set passed in value on the part.
556         Redraw the focus ring if flag has changed.
557
558 2003-11-03  David Hyatt  <hyatt@apple.com>
559
560         Remove unneeded style property additions for form controls.  In the KHTML trunk these moved into the UA
561         sheet, but we don't even need them there, since we don't honor any of them.
562
563         * khtml/html/html_formimpl.cpp:
564         (HTMLInputElementImpl::attach):
565         (HTMLSelectElementImpl::attach):
566         (HTMLTextAreaElementImpl::attach):
567
568 2003-11-03  David Hyatt  <hyatt@apple.com>
569
570         Patch from KHTML trunk.  Move frameset positioning reset into adjustRenderStyle so as not to
571         pollute the render tree.
572
573         * khtml/css/cssstyleselector.cpp:
574         (khtml::CSSStyleSelector::adjustRenderStyle):
575         * khtml/rendering/render_box.cpp:
576         (RenderBox::setStyle):
577
578 2003-11-03  David Hyatt  <hyatt@apple.com>
579
580         Fix for 3471609, 'transparent' should be an acceptable named color value instead of a special
581         keyword used only by background/border.
582         
583         Reviewed by kocienda
584
585         * khtml/css/cssparser.cpp:
586         (CSSParser::parseValue):
587         * khtml/css/cssstyleselector.cpp:
588         (khtml::):
589         (khtml::CSSStyleSelector::applyRule):
590         * khtml/css/cssvalues.c:
591         * khtml/css/cssvalues.h:
592         * khtml/css/cssvalues.in:
593         * khtml/rendering/render_box.cpp:
594         (RenderBox::paintBackgroundExtended):
595         * khtml/rendering/render_object.cpp:
596         (RenderObject::setStyle):
597         * khtml/rendering/render_style.h:
598         (khtml::BorderValue::BorderValue):
599         (khtml::BorderValue::isTransparent):
600         (khtml::BorderValue::operator==):
601         (khtml::CollapsedBorderValue::isTransparent):
602         (khtml::RenderStyle::setBorderLeftColor):
603         (khtml::RenderStyle::setBorderRightColor):
604         (khtml::RenderStyle::setBorderTopColor):
605         (khtml::RenderStyle::setBorderBottomColor):
606
607 2003-11-02  Maciej Stachowiak  <mjs@apple.com>
608
609         Reviewed by Darin.
610
611         - fixed 3471226 - HTML document that's less than 16 bytes comes out blank
612         
613         * kwq/KWQTextCodec.mm:
614         (KWQTextDecoder::toUnicode): When flushing, don't bail out early
615         if there are no new characters!
616
617 2003-11-02  Maciej Stachowiak  <mjs@apple.com>
618
619         Reviewed by Darin.
620
621         - don't resolve Null href or src attributes, since the distinction
622         between empty and absent attribute is important.
623
624         * khtml/dom/html_base.cpp:
625         (HTMLIFrameElement::src):
626         * khtml/dom/html_form.cpp:
627         (HTMLInputElement::src):
628         * khtml/dom/html_head.cpp:
629         (HTMLBaseElement::href):
630         (HTMLLinkElement::href):
631         (HTMLScriptElement::src):
632         * khtml/dom/html_image.cpp:
633         (HTMLAreaElement::href):
634         (HTMLImageElement::src):
635         * khtml/dom/html_inline.cpp:
636         (HTMLAnchorElement::href):
637
638 2003-11-01  David Hyatt  <hyatt@apple.com>
639
640         Fix for 3468924, an implementation of outline-offset.  We also give :focus links a built-in offset of 
641         outline-width/2  by default for the Apple Aqua style.
642
643         Fix for 3470660, input type=image excluded from tab order.
644         
645         Reviewed by darin
646
647         * khtml/css/cssparser.cpp:
648         (CSSParser::parseValue):
649         * khtml/css/cssproperties.c:
650         (hash_prop):
651         (findProp):
652         * khtml/css/cssproperties.h:
653         * khtml/css/cssproperties.in:
654         * khtml/css/cssstyleselector.cpp:
655         (khtml::CSSStyleSelector::applyRule):
656         * khtml/css/html4.css:
657         * khtml/rendering/render_box.cpp:
658         (RenderBox::getAbsoluteRepaintRect):
659         (RenderBox::computeAbsoluteRepaintRect):
660         * khtml/rendering/render_flow.cpp:
661         (RenderFlow::getAbsoluteRepaintRect):
662         * khtml/rendering/render_inline.cpp:
663         (RenderInline::paintFocusRing):
664         (RenderInline::paintOutlines):
665         (RenderInline::paintOutline):
666         * khtml/rendering/render_object.cpp:
667         (RenderObject::paintOutline):
668         * khtml/rendering/render_style.h:
669         (khtml::OutlineValue::OutlineValue):
670         (khtml::RenderStyle::outlineSize):
671         (khtml::RenderStyle::outlineOffset):
672         (khtml::RenderStyle::setOutlineOffset):
673         * khtml/rendering/render_text.cpp:
674         (RenderText::paintObject):
675         * kwq/KWQPainter.h:
676         * kwq/KWQPainter.mm:
677         (QPainterPrivate::QPainterPrivate):
678         (QPainter::initFocusRing):
679         (QPainter::addFocusRingRect):
680
681 2003-11-01  Maciej Stachowiak  <mjs@apple.com>
682
683         Reviewed by Darin.
684
685         - fixed 3469262 - REGRESSION (110-112): logitech page is very slow to load (due to style sheet updates?)
686         
687         * khtml/xml/dom_nodeimpl.cpp:
688         (NodeImpl::dispatchGenericEvent): Don't do default handling for
689         events that don't bubble. Not 100% sure why this caused the big
690         slowdown but it was a somewhat arbitrary change in my earlier
691         patch.
692
693 2003-11-01  Darin Adler  <darin@apple.com>
694
695         Reviewed by John.
696
697         - fixed 3468870 -- REGRESSION (108-109): cannot upload files (<input type=file> is broken)
698
699         * kwq/KWQFileButton.mm: (KWQFileButton::filenameChanged): Pass the filename to
700         the textChanged signal. The one without a parameter is a different signal.
701
702 2003-11-01  Darin Adler  <darin@apple.com>
703
704         Reviewed by John.
705
706         - fixed 3466714 -- page with <object> tag with text subtype and no URL causes hang
707
708         * khtml/khtml_part.cpp: (KHTMLPart::requestObject): Added a check so that an empty
709         URL string doesn't get completed, and results in an empty KURL object. Also made the
710         change to allow empty URLs unconditional, because I don't think it's a WebCore-specific
711         thing on further reflection.
712
713 2003-10-31  David Hyatt  <hyatt@apple.com>
714
715         Fix for 3470489, I just forgot to commit a piece of my patch.  This has actually even
716         been reviewed by ken already.
717
718         Reviewed by kocienda
719         
720         * khtml/rendering/render_replaced.cpp:
721         (RenderWidget::eventFilter):
722
723 2003-10-31  Darin Adler  <darin@apple.com>
724
725         Reviewed by John.
726
727         - fixed 3457875 -- text disappears from fields in forms upon certain types of scrolling
728
729         * kwq/KWQTextField.mm: (-[KWQTextField control:textShouldBeginEditing:]):
730         Call releaseGState on the field editor and its clip view to prevent undesirable caching.
731
732 2003-10-31  Ken Kocienda  <kocienda@apple.com>
733
734         Reviewed by Darin
735
736         Fix for this bug:
737
738         <rdar://problem/3440719>: Read-only text field form controls 
739         do not keyboard focus and do not take part in tabbing
740
741         * kwq/KWQTextField.mm:
742         (-[KWQTextField acceptsFirstResponder]): We want our text fields
743         to accept first responder even if not editable.
744
745         Once this is fixed, this one comes along for free:
746
747         <rdar://problem/3440710>: Read-only textarea form controls should select all text when focused
748
749 2003-10-31  Darin Adler  <darin@apple.com>
750
751         Reviewed by Ken.
752
753         - fixed 3469383 -- REGRESSION (100-111): if one line is selected on this page, too much gets copied (plain text)
754
755         * khtml/khtml_part.cpp: (KHTMLPart::text): Range check the child node indices before using them
756         to get at a child node. We don't want to set startNode or endNode to nil in any case. If the end
757         node is set to nil, we end up copying the entire remainder of the page.
758
759 2003-10-31  David Hyatt  <hyatt@apple.com>
760
761         Fix for 3470007, links don't get focus on mouse down.  Fix the focus check on mouse down to actually
762         crawl up the content tree in order to find the nearest enclosing focusable node.  Also clean up and
763         fix checks that improperly blurred the link after it got focused.
764
765         Fix for 3450335, AppKit widgets not obeying their desired focus policies.  I renamed isSelectable to
766         isFocusable and then also added isMouseFocusable and isKeyboardFocusable methods.
767         
768         Reviewed by kocienda
769
770         * khtml/css/html4.css:
771         * khtml/html/html_baseimpl.cpp:
772         (HTMLFrameElementImpl::isFocusable):
773         * khtml/html/html_baseimpl.h:
774         * khtml/html/html_formimpl.cpp:
775         (HTMLGenericFormElementImpl::isFocusable):
776         (HTMLGenericFormElementImpl::isKeyboardFocusable):
777         (HTMLGenericFormElementImpl::isMouseFocusable):
778         * khtml/html/html_formimpl.h:
779         * khtml/html/html_inlineimpl.cpp:
780         (HTMLAnchorElementImpl::isFocusable):
781         * khtml/html/html_inlineimpl.h:
782         * khtml/khtmlview.cpp:
783         (KHTMLView::dispatchMouseEvent):
784         * khtml/xml/dom_docimpl.cpp:
785         (DocumentImpl::nextFocusNode):
786         (DocumentImpl::previousFocusNode):
787         * khtml/xml/dom_nodeimpl.cpp:
788         (NodeImpl::isFocusable):
789         (NodeImpl::isKeyboardFocusable):
790         (NodeImpl::isMouseFocusable):
791         * khtml/xml/dom_nodeimpl.h:
792         * kwq/KWQKHTMLPart.mm:
793         (KWQKHTMLPart::khtmlMousePressEvent):
794
795 2003-10-31  Ken Kocienda  <kocienda@apple.com>
796
797         Reviewed by David
798
799         Fix for this bug:
800
801         <rdar://problem/3470233>: solid outlines drawing incorrectly
802
803         The problem was that when I collected the array of line boxes for
804         render inlines, I put a QRect() at the start and the end of the list.
805         However, the border calculation code expected "invalid" rectangles
806         (rects with 0 for all four dimentions) in the first and last
807         positions, and the default constructor for QRect makes rects with 1,1
808         for width/height.
809
810         * khtml/rendering/render_inline.cpp:
811         (RenderInline::paintOutlines)
812
813 2003-10-31  Darin Adler  <darin@apple.com>
814
815         Reviewed by Dave.
816
817         - fixed 3464759 -- REGRESSION (100-107): Pressing on link loses mouse-down feedback almost instantly
818
819         * khtml/khtmlview.cpp: (KHTMLView::viewportMouseMoveEvent): Pass true for the "read-only"
820         flag in prepareMoveEvent to prevent us from updating :hover and :active while the mouse is down.
821
822 2003-10-31  Ken Kocienda  <kocienda@apple.com>
823
824         Reviewed by David
825
826         <rdar://problem/3468910>: REGRESSION: other than focus rings, outlines styles are broken
827
828         Outlines now draw like they used to.
829
830         * khtml/rendering/render_inline.cpp:
831         (RenderInline::paintObject): Now branches to call focus ring or "regular" outlines.
832         (RenderInline::paintFocusRing): Broke out drawing aqua focus rings into its
833         own function.
834         (RenderInline::paintOutlines): New function to draw "regular outlines.
835         (RenderInline::paintOutline): Removed code which special-cased aqua outlines.
836         * khtml/rendering/render_inline.h: Added paintOutlines declaration.
837
838 2003-10-31  David Hyatt  <hyatt@apple.com>
839
840         Fix for 3467419, highlighted text in "search in books" Amazon feature is obscured.  The
841         site is using the CSS3 opacity property.  The CSS3 Color module is far enough along now
842         that opacity can safely be used without the "-khtml-" in front of it.
843
844         Fix for 3466542, the minimum font size bug.  I am introducing a new minimum font size pref that
845         really is a hard override.
846         
847         Reviewed by gramps (opacity) and john (min font size)
848         
849         * khtml/css/cssparser.cpp:
850         (CSSParser::parseValue):
851         * khtml/css/cssproperties.c:
852         (hash_prop):
853         (findProp):
854         * khtml/css/cssproperties.h:
855         * khtml/css/cssproperties.in:
856         * khtml/css/cssstyleselector.cpp:
857         (khtml::CSSStyleSelector::applyRule):
858
859 2003-10-31  Ken Kocienda  <kocienda@apple.com>
860
861         Reviewed by Darin
862
863         Fix for this bug:
864
865         <rdar://problem/3469088>: focus not removed from text link 
866         when user hits cmd-L or clicks in window chrome
867
868         * kwq/WebCoreBridge.h:
869         * kwq/WebCoreBridge.mm:
870         (-[WebCoreBridge deselectAll]): Now clears the focus ring as well.
871         (-[WebCoreBridge deselectText]): Just clears text selection.
872
873 2003-10-31  David Hyatt  <hyatt@apple.com>
874
875         Three simple fixes:
876         
877         (1) Fix for 3463777, crash on CSS3 box model draft.  This was just a situation where a simple null-check
878         was needed for generated content.
879
880         (2) Added a != check when the old and new hover obj are the same to avoid a little bit of extra work.
881
882         (3) Removed the m_pressed member from DOM nodes and removed the calls to setPressed, since this code
883         is dead and not used by anyone.
884         
885         * khtml/khtmlview.cpp:
886         * khtml/rendering/render_layer.cpp:
887         (RenderLayer::addChild):
888         (RenderLayer::updateHoverActiveState):
889         * khtml/xml/dom_nodeimpl.cpp:
890         (NodeImpl::NodeImpl):
891         * khtml/xml/dom_nodeimpl.h:
892         (DOM::NodeImpl::hasStyle):
893         (DOM::NodeImpl::setHasStyle):
894
895 2003-10-30  David Hyatt  <hyatt@apple.com>
896
897         Fix for 3469330, the Marquee data in RenderStyle needs a copy constructor hack like all the other
898         objects do.
899
900         * khtml/rendering/render_style.cpp:
901         (direction):
902         * khtml/rendering/render_style.h:
903
904 2003-10-30  David Hyatt  <hyatt@apple.com>
905
906         Fix for 3469206, images didn't paint outlines any more.  They were bailing early because I forgot to
907         add a check for my new PaintAction.
908         
909         Reviewed by darin
910
911         * khtml/rendering/render_replaced.cpp:
912         (RenderReplaced::paint):
913
914 2003-10-30  David Hyatt  <hyatt@apple.com>
915
916         Fixes for 3469057, outlines not drawn on aintitcool.com and also for 3469178, objects with width/height of 0
917         incorrectly excluded from tabbing.
918         
919         Reviewed by darin
920
921         * khtml/html/html_formimpl.cpp:
922         (HTMLGenericFormElementImpl::isSelectable):
923         * khtml/html/html_inlineimpl.cpp:
924         (HTMLAnchorElementImpl::isSelectable):
925         * khtml/rendering/render_flow.cpp:
926         (RenderFlow::getAbsoluteRepaintRect):
927         * khtml/rendering/render_inline.cpp:
928         (RenderInline::addFocusRingRects):
929         (RenderInline::paintOutline):
930         * khtml/rendering/render_object.cpp:
931         (RenderObject::addFocusRingRects):
932         (RenderObject::getAbsoluteRepaintRectWithOutline):
933
934 2003-10-30  Maciej Stachowiak  <mjs@apple.com>
935
936         Reviewed by Darin.
937
938         - fixed 3426081 - empty cells HTMLCollection for <tr>
939         - fixed 3367598 - "length" attribute for table row "cells" always returns 0
940         
941         * khtml/dom/html_table.cpp:
942         (HTMLTableRowElement::cells): TR_CELLS, not TABLE_ROWS.
943
944 2003-10-30  David Hyatt  <hyatt@apple.com>
945
946         Fix for 3468916, outline needs its own paint action so that focus rings don't draw under other content.
947         
948         Reviewed by kocienda
949
950         * khtml/rendering/render_block.cpp:
951         (khtml::RenderBlock::paintObject):
952         (khtml::RenderBlock::paintFloats):
953         * khtml/rendering/render_image.cpp:
954         (RenderImage::paintObject):
955         * khtml/rendering/render_inline.cpp:
956         (RenderInline::paintObject):
957         * khtml/rendering/render_layer.cpp:
958         (RenderLayer::paintLayer):
959         * khtml/rendering/render_object.h:
960
961 2003-10-30  Maciej Stachowiak  <mjs@apple.com>
962
963         Fixed Dave's fix to my fix to my fix:
964
965         * khtml/html/html_imageimpl.cpp:
966         (HTMLImageElementImpl::width): Put back m_render check, consider
967         the case of image with no width/height attributes and display:none
968         set. We don't want to crash on that.
969         (HTMLImageElementImpl::height): Ditto.
970
971 2003-10-30  Ken Kocienda  <kocienda@apple.com>
972
973         Reviewed by Hyatt
974
975         Support for tabbing to links.
976
977         Fixes these bugs
978
979         <rdar://problem/3468395>: fix full keyboard access loop for buttons
980         <rdar://problem/3468397>: paint aqua focus rings around text links
981         <rdar://problem/3468406>: focused links do not activate by hitting
982            return key
983         <rdar://problem/3468410>: paintTextOutline in RenderText objects
984            should be done at a higher level
985         <rdar://problem/3468424>: improve function to determine if a node is
986            tab selectable
987         <rdar://problem/3468427>: add bridge function to access active
988            document view for a node
989         <rdar://problem/3468429>: links do not scroll into view when focusing
990         <rdar://problem/3468435>: when tabbing out of a frame, last focused
991            node is not cleared if it is a text link
992         <rdar://problem/3468436>: focus on text link does not clear when
993            clicking mouse in document body
994         <rdar://problem/3468440>: add setRect convenience to QRect
995         <rdar://problem/3468444>: elements paint their outlines even if they
996            are not visible
997         <rdar://problem/3468448>: setting focus on a node sets focus on all
998            its siblings
999         <rdar://problem/3468456>: cannot tab to form image input elements
1000         <rdar://problem/3468461>: tab focus can seem to disappear from view on
1001            pages with dhtml menus
1002         <rdar://problem/3469021>: webcore bridge nextKeyView always starts 
1003         from the beginning of the document
1004
1005         * WebCore-combined.exp: Export WebCoreGraphicsBridge class
1006         * WebCore.exp: Ditto
1007         * WebCore.pbproj/project.pbxproj: Add WebCoreGraphicsBridge class
1008         * khtml/css/cssparser.cpp: 
1009         (CSSParser::parseValue): border style check now take apple aqua
1010         style into account
1011         * khtml/css/cssvalues.in: Add -apple-aqua border value
1012         * khtml/css/html4.css: Change focus, a:link:active, and a:visited:active
1013         to use new -apple-aqua focus rings.
1014         * khtml/html/html_formimpl.cpp:
1015         (HTMLGenericFormElementImpl::isSelectable): Improve function so
1016         that invisible elements are no longer considered selectable
1017         * khtml/html/html_inlineimpl.cpp:
1018         (HTMLAnchorElementImpl::isSelectable): Ditto.
1019         (HTMLAnchorElementImpl::defaultEventHandler): Make return key
1020         activate links as well as Enter.
1021         * khtml/html/html_inlineimpl.h: Move isSelectable function into
1022         implementation file.
1023         * khtml/rendering/render_block.cpp: 
1024         (khtml::RenderBlock::paintObject): Do not paint outlines if
1025         content is invisible.
1026         * khtml/rendering/render_flow.cpp:
1027         (RenderFlow::getAbsoluteRepaintRect): Improve function to correctly
1028         calculate repaint rects including outlines.
1029         * khtml/rendering/render_image.cpp:
1030         (RenderImage::paintObject): Do not paint outlines if
1031         content is invisible.
1032         * khtml/rendering/render_inline.cpp:
1033         (RenderInline::paintObject): Ditto.
1034         (RenderInline::addFocusRingRects): New function to gather up rects
1035         to use for painting outlines.
1036         (RenderInline::paintOutline): Added code to paint aqua focus rings.
1037         * khtml/rendering/render_inline.h:
1038         * khtml/rendering/render_object.cpp:
1039         (RenderObject::drawBorder): Add case for apple aqua border style.
1040         (RenderObject::addFocusRingRects): New function to gather up rects
1041         to use for painting outlines.
1042         (RenderObject::paintOutline): Added code to paint aqua focus rings.
1043         (RenderObject::getAbsoluteRepaintRectWithOutline): Helper function
1044         to calculate rectangle to use for repainting when an object has an
1045         outline.
1046         * khtml/rendering/render_object.h: Add addFocusRingRects declaration.
1047         * khtml/rendering/render_style.h: Add APPLEAQUA to border enum
1048         * khtml/rendering/render_text.cpp:
1049         (RenderText::paintObject): Removed code to draw outlines.
1050         * khtml/rendering/render_text.h: Ditto.
1051         * khtml/xml/dom_elementimpl.cpp: Removed redundant isSelectable check.
1052         * khtml/xml/dom_elementimpl.h: Ditto.
1053         * khtml/xml/dom_nodeimpl.cpp:
1054         (NodeImpl::isSelectable): Added.
1055         (NodeBaseImpl::setFocus): Do not set focus on siblings.
1056         * khtml/xml/dom_nodeimpl.h: Moved implementation to .cpp file.
1057         * kwq/KWQButton.mm:
1058         (-[KWQButton nextKeyView]): Send a blur before going to next
1059         key view. This prevents focus from being lost altogether.
1060         (-[KWQButton previousKeyView]): Ditto.
1061         * kwq/KWQKHTMLPart.h: Added documentViewForNode function.
1062         * kwq/KWQKHTMLPart.mm:
1063         (KWQKHTMLPart::nextKeyViewInFrame): Add check for other focusables,
1064         like text links.
1065         (KWQKHTMLPart::nextKeyViewInFrameHierarchy): Remove focus when leaving
1066         a view.
1067         (KWQKHTMLPart::documentViewForNode): Added.
1068         (KWQKHTMLPart::khtmlMousePressEvent): Remove focus when you click in
1069         a non-focusable area, like the document body.
1070         * kwq/KWQPainter.h: Added declarations.
1071         * kwq/KWQPainter.mm:
1072         (QPainterPrivate::QPainterPrivate): Modified constructor for new fields.
1073         (QPainter::initFocusRing): Added.
1074         (QPainter::addFocusRingRect): Added.
1075         (QPainter::drawFocusRing): Added.
1076         (QPainter::clearFocusRing): Added.
1077         * kwq/KWQRect.h:
1078         (QRect::setRect): Added.
1079         * kwq/WebCoreBridge.h:
1080         * kwq/WebCoreBridge.mm:
1081         (-[WebCoreBridge nextKeyView]): Start from the currently-focused node,
1082         if there is one, not unconditionally from the start of the document.
1083         (-[WebCoreBridge previousKeyView]): Ditto
1084         * kwq/WebCoreGraphicsBridge.h: Added.
1085         * kwq/WebCoreGraphicsBridge.m: Added.
1086         (+[WebCoreGraphicsBridge sharedBridge]): Added.
1087         (-[WebCoreGraphicsBridge init]): Added.
1088         (-[WebCoreGraphicsBridge setFocusRingStyle:radius:color:]): Added.
1089
1090 2003-10-30  Maciej Stachowiak  <mjs@apple.com>
1091
1092         Fix mistake in my last change that I did not mean to commit.
1093
1094         * khtml/html/html_imageimpl.cpp:
1095         (HTMLImageElementImpl::width): Remove extraneous second attempt to
1096         lay out.
1097
1098 2003-10-30  David Hyatt  <hyatt@apple.com>
1099
1100         Put paged-media changes back without the wrongful removal of the style data copy constructors (which
1101         were necessary after all).
1102         
1103         * ChangeLog:
1104         * khtml/css/cssstyleselector.cpp:
1105         (khtml::CSSStyleSelector::applyRule):
1106         * khtml/rendering/render_style.cpp:
1107         (StyleInheritedData::StyleInheritedData):
1108         (StyleInheritedData::operator==):
1109         * khtml/rendering/render_style.h:
1110         (khtml::):
1111         (khtml::RenderStyle::NonInheritedFlags::operator==):
1112         (khtml::RenderStyle::setBitDefaults):
1113         (khtml::RenderStyle::widows):
1114         (khtml::RenderStyle::orphans):
1115         (khtml::RenderStyle::pageBreakInside):
1116         (khtml::RenderStyle::pageBreakBefore):
1117         (khtml::RenderStyle::pageBreakAfter):
1118         (khtml::RenderStyle::setWidows):
1119         (khtml::RenderStyle::setOrphans):
1120         (khtml::RenderStyle::setPageBreakInside):
1121         (khtml::RenderStyle::setPageBreakBefore):
1122         (khtml::RenderStyle::setPageBreakAfter):
1123
1124 2003-10-30  Maciej Stachowiak  <mjs@apple.com>
1125
1126         Reviewed by Dave.
1127
1128         - fixed 3468129 - REGRESSION: FOUC occurs on Surfin' Safari
1129         
1130         * khtml/ecma/kjs_html.cpp:
1131         (KJS::HTMLElement::getValueProperty): Don't force layout for image
1132         width/height if you can determine it statically from the attribute.
1133         * khtml/html/html_image.cpp:
1134         (HTMLImageElementImpl::width):
1135         (HTMLImageElementImpl::height):
1136
1137 === Safari-112 ===
1138
1139 2003-10-30  Ken Kocienda  <kocienda@apple.com>
1140
1141         Reviewed by me
1142
1143         Rolling out this code since it caused a big performance 
1144         regression.
1145
1146         2003-10-29  David Hyatt  <hyatt@apple.com>
1147
1148                 Add the paged media properties to RenderStyle.  
1149                 They aren't used yet, but they should now be
1150                 parsed and interpreted correctly.
1151
1152         * khtml/css/cssstyleselector.cpp:
1153         (khtml::CSSStyleSelector::applyRule):
1154         * khtml/rendering/render_style.cpp:
1155         (StyleSurroundData::StyleSurroundData):
1156         (StyleBoxData::StyleBoxData):
1157         (StyleBoxData::operator==):
1158         (StyleVisualData::~StyleVisualData):
1159         (StyleVisualData::StyleVisualData):
1160         (StyleBackgroundData::StyleBackgroundData):
1161         (StyleFlexibleBoxData::StyleFlexibleBoxData):
1162         (opacity):
1163         (textShadow):
1164         (StyleInheritedData::StyleInheritedData):
1165         (StyleInheritedData::~StyleInheritedData):
1166         (StyleInheritedData::operator==):
1167         * khtml/rendering/render_style.h:
1168         (khtml::StyleBackgroundData::~StyleBackgroundData):
1169         (khtml::StyleFlexibleBoxData::~StyleFlexibleBoxData):
1170         (khtml::RenderStyle::NonInheritedFlags::operator==):
1171         (khtml::RenderStyle::setBitDefaults):
1172
1173 2003-10-29  David Hyatt  <hyatt@apple.com>
1174
1175         Fix for 3466628, widgets in overflow blocks don't move when the overflow block is scrolled.  This
1176         was a regression caused by my change to move widgets only during layout and not at paint time.  The
1177         problem with this is that scrolling an overflow block doesn't do a layout, just a repaint.  I patched
1178         the layer code to update widget positions on an overflow block scroll.
1179
1180         This then exposed a bug in absolutePosition, namely that the scroll offset was never factored in when
1181         computing absolutePosition.  This bug also explains why text selection and cursor display were wrong
1182         inside scrolled overflow blocks.
1183         
1184         Reviewed by mjs
1185
1186         * khtml/rendering/render_box.cpp:
1187         (RenderBox::absolutePosition):
1188         * khtml/rendering/render_layer.cpp:
1189         (RenderLayer::scrollToOffset):
1190         * khtml/rendering/render_object.cpp:
1191         (RenderObject::absolutePosition):
1192         * khtml/rendering/render_text.cpp:
1193         (RenderText::cursorPos):
1194         (RenderText::posOfChar):
1195         * khtml/rendering/render_text.h:
1196
1197 2003-10-29  Maciej Stachowiak  <mjs@apple.com>
1198
1199         Reviewed by Dave.
1200
1201         - fixed 3467499 - REGRESSION: onClick handlers on links don't work (bubbling broken)
1202         
1203         * khtml/xml/dom2_eventsimpl.cpp:
1204         (EventImpl::EventImpl): Initialize m_cancelBubble (duh).
1205
1206 2003-10-29  David Hyatt  <hyatt@apple.com>
1207
1208         Fix for 3466802.  When breaking on a newline, "pre" is determined by checking the actual object that
1209         the line broke on, and not by simply checking the "pre" status of the containing block.
1210         
1211         Reviewed by mjs
1212
1213         * khtml/rendering/bidi.cpp:
1214         (khtml::RenderBlock::layoutInlineChildren):
1215
1216 2003-10-29  David Hyatt  <hyatt@apple.com>
1217
1218         Add the paged media properties to RenderStyle.  They aren't used yet, but they should now be 
1219         parsed and interpreted correctly.
1220         
1221         Reviewed by kocienda
1222
1223         * khtml/css/cssstyleselector.cpp:
1224         (khtml::CSSStyleSelector::applyRule):
1225         * khtml/rendering/render_style.cpp:
1226         (StyleBoxData::operator==):
1227         (StyleFlexibleBoxData::StyleFlexibleBoxData):
1228         (:opacity):
1229         (:textShadow):
1230         (StyleInheritedData::StyleInheritedData):
1231         (StyleInheritedData::operator==):
1232         * khtml/rendering/render_style.h:
1233         (khtml::):
1234         (khtml::RenderStyle::NonInheritedFlags::operator==):
1235         (khtml::RenderStyle::setBitDefaults):
1236         (khtml::RenderStyle::widows):
1237         (khtml::RenderStyle::orphans):
1238         (khtml::RenderStyle::pageBreakInside):
1239         (khtml::RenderStyle::pageBreakBefore):
1240         (khtml::RenderStyle::pageBreakAfter):
1241         (khtml::RenderStyle::setWidows):
1242         (khtml::RenderStyle::setOrphans):
1243         (khtml::RenderStyle::setPageBreakInside):
1244         (khtml::RenderStyle::setPageBreakBefore):
1245         (khtml::RenderStyle::setPageBreakAfter):
1246
1247 2003-10-29  David Hyatt  <hyatt@apple.com>
1248
1249         Reviewed by NOBODY (OOPS!).
1250
1251         * khtml/css/cssstyleselector.cpp:
1252         (khtml::CSSStyleSelector::applyRule):
1253         * khtml/rendering/render_style.cpp:
1254         (StyleBoxData::operator==):
1255         (StyleFlexibleBoxData::StyleFlexibleBoxData):
1256         (:opacity):
1257         (:textShadow):
1258         (StyleInheritedData::StyleInheritedData):
1259         (StyleInheritedData::operator==):
1260         * khtml/rendering/render_style.h:
1261         (khtml::):
1262         (khtml::RenderStyle::NonInheritedFlags::operator==):
1263         (khtml::RenderStyle::setBitDefaults):
1264         (khtml::RenderStyle::widows):
1265         (khtml::RenderStyle::orphans):
1266         (khtml::RenderStyle::pageBreakInside):
1267         (khtml::RenderStyle::pageBreakBefore):
1268         (khtml::RenderStyle::pageBreakAfter):
1269         (khtml::RenderStyle::setWidows):
1270         (khtml::RenderStyle::setOrphans):
1271         (khtml::RenderStyle::setPageBreakInside):
1272         (khtml::RenderStyle::setPageBreakBefore):
1273         (khtml::RenderStyle::setPageBreakAfter):
1274
1275 2003-10-29  David Hyatt  <hyatt@apple.com>
1276
1277         Refine the fix to updateLayout.
1278         updateStyleSelector would get called over and over again when you queried for layout properties from
1279         JS.  If no stylesheets are pending, this isn't necessary (and is quite expensive, since updateStyleSelector
1280         is a slow function).
1281         
1282         Reviewed by darin
1283
1284         * khtml/xml/dom_docimpl.cpp:
1285         (DocumentImpl::updateLayout):
1286
1287 2003-10-29  David Hyatt  <hyatt@apple.com>
1288
1289         Fix crasher in border collapsing code.
1290         
1291         Reviewed by kocienda
1292
1293         * khtml/rendering/render_table.cpp:
1294         (RenderTable::cellRight):
1295
1296 2003-10-28  Maciej Stachowiak  <mjs@apple.com>
1297
1298         Reviewed by Darin.
1299
1300         - fixed 3163842 - Citibank cardmember central DHTML menus not working right in Safari
1301         
1302         * khtml/ecma/kjs_html.cpp:
1303         (KJS::HTMLElement::getValueProperty): update layout before fetching image properties
1304         that need it.
1305         * khtml/xml/dom_docimpl.cpp:
1306         (DocumentImpl::DocumentImpl): Initialize m_ignorePendingStylesheets to false.
1307         (DocumentImpl::updateLayout): Ignore pending stylesheets - when JS demands a
1308         layout, it wants a real one now.
1309         (DocumentImpl::updateStyleSelector): Go ahead with the update if we're ignoring
1310         pending stylesheets.
1311         * khtml/xml/dom_docimpl.h:
1312         (DOM::DocumentImpl::haveStylesheetsLoaded): Pretend stylesheets have loaded if
1313         we're temporarily ignoring pending stylesheets.
1314
1315 2003-10-29  David Hyatt  <hyatt@apple.com>
1316
1317         Implement support for <marquee>.  This includes support for the CSS3 specification (although modified a fair
1318         bit to actually be compatible with WinIE's version and to correct obvious errors in the draft).  All of the
1319         marquee behaviors (slide, scroll, and alternate) are supported.
1320
1321         This patch also fixes the following bugs that were discovered while testing marquee:
1322         (1) An error in the computation of scrollWidth and scrollHeight.  
1323         (2) The ability to ask for the leftmostPosition as well as the rightmostPosition of content and to
1324         be able to ask for the positions of children (via left/right/lowest) without including the parent in the
1325         computation.
1326         (3) An optimization to RenderFlow's rightmost/lowestPosition functions to avoid examining text elements since
1327         they are always fully accounted for by either overflow or by inline flow boxes.
1328         (4) A fix for RTL rendering.  A block with direction:RTL was being placed on the right, when in reality only
1329         its children should be placed on the right.
1330         (5) A fix to prevent inline blocks and tables from computing auto margins (making them just like floats in this
1331         regard).
1332         
1333         Reviewed by darin
1334
1335         * khtml/css/cssparser.cpp:
1336         (validUnit):
1337         (CSSParser::parseValue):
1338         * khtml/css/cssproperties.c:
1339         (hash_prop):
1340         (findProp):
1341         * khtml/css/cssproperties.h:
1342         * khtml/css/cssproperties.in:
1343         * khtml/css/cssstyleselector.cpp:
1344         (khtml::convertToLength):
1345         (khtml::CSSStyleSelector::applyRule):
1346         * khtml/css/cssvalues.c:
1347         (hash_val):
1348         (findValue):
1349         * khtml/css/cssvalues.h:
1350         * khtml/css/cssvalues.in:
1351         * khtml/css/html4.css:
1352         * khtml/html/html_blockimpl.cpp:
1353         (HTMLMarqueeElementImpl::HTMLMarqueeElementImpl):
1354         (HTMLMarqueeElementImpl::id):
1355         (HTMLMarqueeElementImpl::parseAttribute):
1356         * khtml/html/html_blockimpl.h:
1357         (DOM::HTMLMarqueeElementImpl::minimumDelay):
1358         * khtml/html/htmlparser.cpp:
1359         (KHTMLParser::getElement):
1360         * khtml/misc/htmlattrs.c:
1361         (hash_attr):
1362         (findAttr):
1363         * khtml/misc/htmlattrs.h:
1364         * khtml/misc/htmlattrs.in:
1365         * khtml/rendering/bidi.cpp:
1366         (khtml::RenderBlock::findNextLineBreak):
1367         * khtml/rendering/render_block.cpp:
1368         (khtml::RenderBlock::lowestPosition):
1369         (khtml::RenderBlock::rightmostPosition):
1370         (khtml::RenderBlock::leftmostPosition):
1371         * khtml/rendering/render_block.h:
1372         * khtml/rendering/render_box.cpp:
1373         (RenderBox::setStyle):
1374         (RenderBox::calcWidth):
1375         (RenderBox::calcHorizontalMargins):
1376         (RenderBox::lowestPosition):
1377         (RenderBox::rightmostPosition):
1378         (RenderBox::leftmostPosition):
1379         * khtml/rendering/render_box.h:
1380         * khtml/rendering/render_flow.cpp:
1381         (RenderFlow::lowestPosition):
1382         (RenderFlow::rightmostPosition):
1383         (RenderFlow::leftmostPosition):
1384         * khtml/rendering/render_flow.h:
1385         * khtml/rendering/render_layer.cpp:
1386         (RenderLayer::RenderLayer):
1387         (RenderLayer::~RenderLayer):
1388         (RenderLayer::updateLayerPositions):
1389         (RenderLayer::scrollToOffset):
1390         (RenderLayer::computeScrollDimensions):
1391         (RenderLayer::styleChanged):
1392         (RenderLayer::stopMarquees):
1393         (m_whiteSpace):
1394         (Marquee::marqueeSpeed):
1395         (Marquee::direction):
1396         (Marquee::isHorizontal):
1397         (Marquee::computePosition):
1398         (Marquee::start):
1399         (Marquee::stop):
1400         (Marquee::updateMarqueePosition):
1401         (Marquee::updateMarqueeStyle):
1402         (Marquee::timerEvent):
1403         * khtml/rendering/render_layer.h:
1404         (khtml::):
1405         (khtml::RenderLayer::marquee):
1406         * khtml/rendering/render_object.cpp:
1407         (RenderObject::isHTMLMarquee):
1408         (RenderObject::sizesToMaxWidth):
1409         * khtml/rendering/render_object.h:
1410         (khtml::RenderObject::lowestPosition):
1411         (khtml::RenderObject::rightmostPosition):
1412         (khtml::RenderObject::leftmostPosition):
1413         * khtml/rendering/render_style.cpp:
1414         (StyleMarqueeData::StyleMarqueeData):
1415         (StyleMarqueeData::operator==):
1416         (opacity):
1417         (marquee):
1418         (StyleCSS3NonInheritedData::operator==):
1419         (RenderStyle::RenderStyle):
1420         * khtml/rendering/render_style.h:
1421         (khtml::):
1422         (khtml::StyleMarqueeData::operator!=):
1423         (khtml::RenderStyle::marqueeIncrement):
1424         (khtml::RenderStyle::marqueeSpeed):
1425         (khtml::RenderStyle::marqueeLoopCount):
1426         (khtml::RenderStyle::marqueeBehavior):
1427         (khtml::RenderStyle::marqueeDirection):
1428         (khtml::RenderStyle::setMarqueeIncrement):
1429         (khtml::RenderStyle::setMarqueeSpeed):
1430         (khtml::RenderStyle::setMarqueeDirection):
1431         (khtml::RenderStyle::setMarqueeBehavior):
1432         (khtml::RenderStyle::setMarqueeLoopCount):
1433         * khtml/xml/dom_docimpl.cpp:
1434         (DocumentImpl::createHTMLElement):
1435         * kwq/KWQKHTMLPart.mm:
1436         (KWQKHTMLPart::clearTimers):
1437
1438 2003-10-29  David Hyatt  <hyatt@apple.com>
1439
1440         Make <button> be an inline-block.
1441         
1442         * khtml/css/html4.css:
1443
1444 2003-10-28  Maciej Stachowiak  <mjs@apple.com>
1445
1446         Reviewed by Darin.
1447
1448          - fixed 3465547 - REGRESSION (100-111)?: window.prompt does not work
1449         
1450         * kwq/KWQKHTMLPart.mm:
1451         (KWQKHTMLPart::runJavaScriptPrompt): Return the result properly
1452         instead of always returning false.
1453
1454 2003-10-28  Darin Adler  <darin@apple.com>
1455
1456         Reviewed by Maciej.
1457
1458         - fixed 3465504 -- REGRESSION (100-111): text areas with Chinese text in them are wider than ones without
1459
1460         * kwq/KWQTextArea.h: Add _font field.
1461         * kwq/KWQTextArea.mm:
1462         (-[KWQTextArea dealloc]): Release _font.
1463         (-[KWQTextArea setFont:]): Store font in _font as well as setting it in the text view.
1464         (-[KWQTextArea sizeWithColumns:rows:]): Use _font rather than asking the text view for the font.
1465
1466 2003-10-28  Darin Adler  <darin@apple.com>
1467
1468         Reviewed by Maciej.
1469
1470         - fixed 3464702 -- node.item(x) is not implemented (dynamic menus not filled out at techcu.com)
1471
1472         * khtml/ecma/kjs_dom.cpp: (DOMNodeProtoFunc::tryCall): Add implementation of item function.
1473         * khtml/ecma/kjs_dom.h: Added Item to the enum.
1474         * khtml/ecma/kjs_dom.lut.h: Regenerated.
1475
1476 2003-10-28  Maciej Stachowiak  <mjs@apple.com>
1477
1478         Reviewed by Dave,
1479
1480         - fixed 3379725 - for <a> elements with both onclick and href, Web Kit's behavior does not match other browsers
1481
1482         The fix for this was to make cancelBubble only prevent bubbling,
1483         but not stop propagation or prevent default. While I was at it, I
1484         made returnValue work right too.
1485         
1486         * khtml/ecma/kjs_events.cpp:
1487         (DOMEvent::getValueProperty): Implement cancelBubble and returnValue properties properly.
1488         (DOMEvent::putValue): Ditto.
1489         * khtml/dom/dom2_events.cpp:
1490         (Event::setCancelBubble): Call impl.
1491         (Event::setDefaultPrevented): Ditto.
1492         (Event::getCancelBubble): Ditto.
1493         (Event::defaultPrevented): Ditto.
1494         * khtml/dom/dom2_events.h:
1495         * khtml/xml/dom2_eventsimpl.h:
1496         (DOM::EventImpl::propagationStopped): Made this a const method.
1497         (DOM::EventImpl::defaultPrevented): Ditto.
1498         (DOM::EventImpl::setCancelBubble): Implemented by setting a new field.
1499         (DOM::EventImpl::getCancelBubble): Corresponding getter.
1500         (DOM::EventImpl::setDefaultPrevented): Set the already existing field for this.
1501         * khtml/xml/dom_nodeimpl.cpp:
1502         (NodeImpl::dispatchGenericEvent): Check getCancelBubble() when bubbling. Do not
1503         check bubbles() before default handling.
1504
1505 2003-10-28  Chris Blumenberg  <cblu@apple.com>
1506
1507         Fixed: <rdar://problem/3464472>: REGRESSION: New CSS cursor support breaks style="cursor:default
1508
1509         Reviewed by dave.
1510
1511         * kwq/KWQWidget.mm:
1512         (QWidget::cursor): break after we hit a view that responds to documentCursor as we do in setCursor. Without breaking we were returning the cursor of the most super HTML view which is not what we want.
1513
1514 2003-10-28  Maciej Stachowiak  <mjs@apple.com>
1515
1516         Reviewed by John.
1517
1518         - fixed 3421393 - window.open does not handle non-integral height/width (small window at saabusa.com)
1519         
1520         * khtml/ecma/kjs_window.cpp:
1521         (WindowFunc::tryCall): Parse width, height, top and left as
1522         floating point and then cast to int instead of parsing as int to
1523         match other browsers and avoid rejecting floating point numbers.
1524
1525 2003-10-28  Maciej Stachowiak  <mjs@apple.com>
1526
1527         Reviewed by John.
1528
1529         - fixed 3464528 - addEventListener does not work for buttons, text areas, or inputs
1530
1531         * khtml/rendering/render_form.cpp:
1532         (RenderFormElement::slotClicked): Send CLICK_EVENT as well as one
1533         of KHTML_CLICK_EVENT or KHTML_DOUBLE_CLICK_EVENT.
1534
1535 2003-10-28  Maciej Stachowiak  <mjs@apple.com>
1536
1537         Fixed broken build.
1538
1539         * kwq/KWQKPartsPart.mm:
1540         (KParts::ReadOnlyPart::setName): It's a ReadOnlyPart method, not a Part method.
1541
1542 2003-10-28  Maciej Stachowiak  <mjs@apple.com>
1543
1544         Reviewed by John.
1545
1546         - fixed 3427046 - href and src attributes don't always give resolved URL
1547
1548         It turns out that all href and src attributes should be resolved
1549         against the base, except for frame elements.
1550         
1551         * khtml/dom/html_base.cpp:
1552         (HTMLIFrameElement::src): Resolve against base URL.
1553         * khtml/dom/html_form.cpp:
1554         (HTMLInputElement::src): Resolve URL even when empty. Remove
1555         comment questioning resolution against base - it's definitely
1556         right.
1557         * khtml/dom/html_head.cpp:
1558         (HTMLBaseElement::href): Resolve against base URL.
1559         (HTMLLinkElement::href): Ditto.
1560         (HTMLScriptElement::src): Ditto.
1561         * khtml/dom/html_image.cpp:
1562         (HTMLAreaElement::href): Ditto.
1563         (HTMLImageElement::src): Resolve URL even when empty. Remove
1564         comment questioning resolution against base - it's definitely
1565         right.
1566         * khtml/dom/html_inline.cpp:
1567         (HTMLAnchorElement::href): Resolve against base URL.
1568
1569 2003-10-27  Maciej Stachowiak  <mjs@apple.com>
1570
1571         Reviewed by Darin.
1572
1573         - fixed 3083264 - frame names changed by JavaScript are not reflected in WebFrame at the WebKit level
1574         
1575         * kwq/KWQKHTMLPart.h:
1576         * kwq/KWQKHTMLPart.mm:
1577         (KWQKHTMLPart::setName): Make sure the name is unique. Then tell
1578         the bridge and the superclass about it.
1579         * kwq/KWQKPartsPart.h:
1580         (KParts::ReadOnlyPart::setName): Made this method virtual.
1581         * kwq/KWQKPartsPart.m: Added. Moved implementations of virtual methods here.
1582         * kwq/WebCoreBridge.h:
1583         * kwq/WebCoreBridge.mm:
1584         (-[WebCoreBridge setName:]): Call the superclass method to avid
1585         sending the name pointlessly back across the bridge.
1586
1587 2003-10-28  Darin Adler  <darin@apple.com>
1588
1589         Reviewed by John.
1590
1591         - fixed 3465063 -- REGRESSION (107-108): hang when fetching a page with an ad in a subframe (theage.com.au)
1592
1593         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::openURL): Follow the parent chain properly rather
1594         than repeatedly getting the part's own parent!
1595
1596 2003-10-27  Maciej Stachowiak  <mjs@apple.com>
1597
1598         Reviewed by Darin.
1599
1600         Improved exception blocking in the following ways:
1601
1602         - use C++ constructors and destructors so returning or breaking out of an exception block works
1603         - Remove use of volatile
1604         - Collapse the caught exception case into a single function call to reduce code size.
1605
1606         * WebCore.pbproj/project.pbxproj:
1607         * kwq/KWQButton.mm:
1608         * kwq/KWQCheckBox.mm:
1609         * kwq/KWQComboBox.mm:
1610         * kwq/KWQExceptions.h:
1611         * kwq/KWQExceptions.mm: Added.
1612         * kwq/KWQFileButton.mm:
1613         * kwq/KWQFont.mm:
1614         * kwq/KWQFrame.mm:
1615         * kwq/KWQKConfigBase.mm:
1616         * kwq/KWQKCookieJar.mm:
1617         * kwq/KWQKCursor.mm:
1618         * kwq/KWQKHTMLPart.mm:
1619         * kwq/KWQKHTMLPartBrowserExtension.mm:
1620         * kwq/KWQKHistoryProvider.mm:
1621         * kwq/KWQKJavaAppletWidget.mm:
1622         * kwq/KWQKJobClasses.mm:
1623         * kwq/KWQKLocale.mm:
1624         * kwq/KWQKPartsBrowserInterface.mm:
1625         * kwq/KWQLineEdit.mm:
1626         * kwq/KWQListBox.mm:
1627         * kwq/KWQLoader.mm:
1628         * kwq/KWQPainter.mm:
1629         * kwq/KWQPushButton.mm:
1630         * kwq/KWQRadioButton.mm:
1631         * kwq/KWQScrollBar.mm:
1632         * kwq/KWQScrollView.mm:
1633         * kwq/KWQTextEdit.mm:
1634         * kwq/KWQWidget.mm:
1635         
1636 2003-10-26  Darin Adler  <darin@apple.com>
1637
1638         * khtml/khtml_part.cpp: (findWordBoundary): Fix small mistake from NULL check-in earlier.
1639
1640 2003-10-26  Darin Adler  <darin@apple.com>
1641
1642         * kwq/KWQLoader.mm: (KWQResponseMIMEType): Removed an excess volatile.
1643
1644 2003-10-26  Darin Adler  <darin@apple.com>
1645
1646         Reviewed by Maciej.
1647
1648         - fixed 3463624 -- page at cinemakorea.com shows up blank due to kTECBufferBelowMinimumSizeErr from TEC
1649
1650         * kwq/KWQTextCodec.mm: (KWQTextDecoder::convertOneChunkUsingTEC): To work around the bug
1651         I found in the decoder (Radar 3351093), change kTECBufferBelowMinimumSizeErr to
1652         kTECOutputBufferFullStatus in cases where bytes were actually converted.
1653
1654 2003-10-26  Darin Adler  <darin@apple.com>
1655
1656         Reviewed by Maciej.
1657
1658         - fixed 3463586 -- WebCore does not compile with new definition of NULL
1659
1660         * khtml/khtml_part.cpp: (findWordBoundary): Changed NULL to 0 and did a little code
1661         cleanup of the surrounding code.
1662         * khtml/rendering/break_lines.cpp: (khtml::isBreakable): Changed NULL to 0 and did
1663         a tiny bit of cleanup.
1664
1665         * WebCorePrefix.h: Add a definition of NULL here that takes advantage of the GNU
1666         __null feature even if the system C library doesn't.
1667
1668 2003-10-26  Darin Adler  <darin@apple.com>
1669
1670         Reviewed by Maciej.
1671
1672         - fixed 3457831 -- REGRESSION: copying particular text and pasting (plain) produces lots of extra text
1673
1674         * khtml/khtml_part.cpp: (KHTMLPart::text): Check for the end node when following a
1675         link to the parent node, not just when following a link to the next child node.
1676         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::attributedString): Ditto.
1677
1678 == Rolled over to ChangeLog-2003-10-25 ==