i Implemented rendering of diacriticals.
[WebKit-https.git] / WebCore / ChangeLog-2005-08-23
1 2002-11-01  Richard Williamson   <rjw@apple.com>
2
3         Removed old implementation.
4         
5         * kwq/KWQChar.mm:
6         (QChar::direction):
7         
8         Renamed JoiningCenter -> JoiningCausing.
9         
10         * kwq/WebCoreUnicode.h:
11
12 2002-11-01  Darin Adler  <darin@apple.com>
13
14         - fixed 3062598 -- meta refresh of 0.1s fails
15
16         KHTML was using an integer for the delay.
17
18         * khtml/khtml_part.h: Make scheduleRedirection take a double.
19         * khtml/khtmlpart_p.h: Make m_delayRedirect be a double.
20         * khtml/khtml_part.cpp:
21         (KHTMLPart::slotData): Use a double when parsing meta refresh.
22         (KHTMLPart::checkCompleted): Cast to int when passing to timer start.
23         (KHTMLPart::scheduleRedirection): Cast to int when passing to timer
24         start; also check for absurd values and do nothing.
25         (KHTMLPart::slotParentCompleted): Cast to int when passing to timer start.
26
27         * khtml/xml/dom_docimpl.cpp: (DocumentImpl::processHttpEquiv):
28         Use a double when parsing meta refresh.
29
30         * kwq/KWQKDebug.h: Add overloads for unsigned int and double to keep us
31         compiling now that we use a double in one place.
32
33 2002-11-01  Darin Adler  <darin@apple.com>
34
35         - fixed 3090249 -- random crash on page load
36         - fixed 3090286 -- assert _job in KWQResourceLoader cancel
37
38         * kwq/KWQResourceLoader.mm: (-[KWQResourceLoader cancel]):
39         This function needs to handle the case where the load is already cancelled.
40         I think this also caused Avie's crash.
41
42 2002-10-31  Darin Adler  <darin@apple.com>
43
44         - fixed huge leak when doing page load test
45
46         * khtml/ecma/kjs_binding.h:
47         * khtml/ecma/kjs_binding.cpp: Remove ScriptInterpreter::mark().
48         We don't want to mark the elements of m_domObjects, because we don't want
49         to keep them around the entire lifetime of the interpreter. This is fine
50         because we already have forgetDOMObject(), which takes care of when they
51         are deallocated.
52
53         * khtml/ecma/kjs_dom.cpp:
54         * khtml/ecma/kjs_dom.h:
55         * khtml/ecma/kjs_html.cpp:
56         * khtml/ecma/kjs_html.h:
57         Changed lots of parameters to pass by const reference for a bit of a code
58         size and performance gain.
59
60 2002-10-31  Richard Williamson  <rjw@apple.com>
61
62         Turned on use of lookup tables.
63         
64         * kwq/KWQChar.mm:
65         (QChar::direction):
66         (QChar::mirrored):
67         (QChar::mirroredChar):
68
69 2002-10-31  Maciej Stachowiak  <mjs@apple.com>
70
71         - fixed 3075803 - yahoo customize layout - delete, ordering of items doesn't work
72         
73         * khtml/html/html_formimpl.h:
74         * khtml/html/html_formimpl.cpp:
75         (HTMLSelectElementImpl::recalcStyle): New method to insure the
76         select element updates if the contents of the option subelements
77         are changed.
78
79 === Alexander-30 ===
80
81 2002-10-30  Maciej Stachowiak  <mjs@apple.com>
82
83         - fixed 3049853 - Javascript: setInterval incorrectly acts as single shot
84         
85         * kwq/KWQObject.mm:
86         (QObject::startTimer): Set a recurring timer instead of
87         single-shot, to match QObject semantics.
88
89 2002-10-30  Richard Williamson  <rjw@apple.com>
90
91         More work on bidi and contextual forms.
92         Table lookup code is up in WebKit. Function
93         pointers are used to isolate WebCore from private
94         implementation in WebKit.  Needs to be fast, so
95         the usual ObjC abstraction won't work.
96         
97         * WebCore.exp:
98         * WebCore.pbproj/project.pbxproj:
99         * kwq/KWQChar.mm:
100         (QChar::direction):
101         * kwq/KWQString.h:
102         * kwq/WebCoreUnicode.cpp: Added.
103         * kwq/WebCoreUnicode.h: Added.
104
105 2002-10-30  Darin Adler  <darin@apple.com>
106
107         - fixed crash when you open an empty window and just hit tab, tab, tab
108
109         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::nextKeyViewInFrame): Check for nil.
110
111 2002-10-30  Darin Adler  <darin@apple.com>
112
113         - fixed 3083982 -- Logging into AOL gives null view, crash
114
115         I fixed the crash part. Not the "gives null view" part.
116         The key was to disentangle the references and lifetimes of the transfer job class,
117         and the resource loader object that KWQ uses to connect it with WebKit.
118
119         * kwq/KWQKJobClasses.h: Change the job to keep a loader reference, not a
120         handle reference. The job needs to inform the loader when it's being deallocated.
121         * kwq/KWQKJobClasses.mm: Use jobWillBeDeallocated instead of cancel when the
122         job is deallocated.
123
124         * kwq/KWQLoader.mm: (KWQServeRequest): Use KWQResourceLoader, now with a home in
125         a separate file.
126
127         * kwq/KWQResourceLoader.h: Added.
128         * kwq/KWQResourceLoader.mm: Added.
129         * WebCore.pbproj/project.pbxproj: Added KWQResourceLoader files.
130
131 2002-10-30  Darin Adler  <darin@apple.com>
132
133         - fixed 3086564 -- REGRESSION: meta-refresh to the same page doesn't refresh
134
135         The key is to get args.reload passed through to the bridge.
136
137         * kwq/WebCoreBridge.h: Add reload parameter to loadURL:.
138
139         * kwq/KWQKHTMLPart.mm:
140         (KWQKHTMLPart::openURL): Pass NO for reload.
141         (KWQKHTMLPart::openURLRequest): Pass args.reload for reload.
142         (KWQKHTMLPart::urlSelected): Pass args.reload for reload.
143         (KWQKHTMLPart::submitForm): Pass args.reload for reload.
144         
145         - fixed a memory problem with the use of NSBrowser in KWQListBox
146         - fixed 2863040 -- multiple default items in select list not selected
147
148         Switched to use NSTableView instead of NSBrowser. This should also create
149         a measurable speedup due to other changes to this class.
150
151         * kwq/KWQListBox.h: Remove firstItem(), the insertItem() that takes a QListBoxItem
152         parameter, and deleteItems(). Add _items, _width, and _widthGood. Removed _head.
153         Removed the QListBoxItem and QListBoxText classes.
154         * kwq/KWQListBox.mm:
155         (QListBox::QListBox): Create a KWQListBoxScrollView and put an NSTableView
156         inside it. Also create an NSMutableArray to hold the items.
157         (QListBox::~QListBox): Disconnect the table view from the delegate before
158         releasing it. Also release the items array.
159         (QListBox::count): Return the array count.
160         (QListBox::clear): Do a reloadData here instead of loadColumnZero.
161         (QListBox::setSelectionMode): Update for table view.
162         (QListBox::insertItem): Update for table view.
163         (QListBox::insertGroupLabel): Just calls insertItem for now.
164         (QListBox::endBatchInsert): Update for table view.
165         (QListBox::setSelected): Update for table view, including support for multiple
166         selection.
167         (QListBox::isSelected): Update for table view.
168         (QListBox::sizeForNumberOfLines): Use the table view cell for width, and
169         cache it so we don't have to measure all the strings over and over again.
170         (-[KWQListBoxScrollView setFrameSize:]): Resize the table view column whenever
171         the entire scroll view is resized.
172         (-[KWQListBoxTableViewDelegate initWithListBox:]): Store box pointer and
173         pointer to items array.
174         (-[KWQListBoxTableViewDelegate numberOfRowsInTableView:]): Return count.
175         (-[KWQListBoxTableViewDelegate tableView:objectValueForTableColumn:row:]):
176         Get the data from the items array.
177         (-[KWQListBoxTableViewDelegate tableViewSelectionDidChange:]): Call both the
178         selection-changed signal and the clicked signal.
179
180         * khtml/rendering/render_form.cpp: (RenderSelect::updateFromElement):
181         Get rid of the one place here that gets at a list box item by calling a KWQ
182         function insertGroupLabel instead of making a QListBoxText. Also call
183         beginBatchInsert() before clear() for a slight additional speed boost.
184
185         - fixed 3067572 -- javascript: URLs typed into page address field or
186         bookmarks don't work in empty window
187
188         We needed a document for DOM, so we make a dummy one. This works for an empty
189         window, and also for a window with non-HTML content.
190
191         * kwq/KWQKHTMLPart.h: Added createDummyDocument().
192         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::createDummyDocument): Create an empty
193         DOM document if there isn't one already.
194
195         * kwq/WebCoreBridge.mm:
196         (-[WebCoreBridge stringByEvaluatingJavaScriptFromString:]): Call the new
197         createDummyDocument() instead of checking and doing nothing if there is no
198         document present when this is called.
199
200         - other stuff
201
202         * kwq/WebCoreBridge.mm: (-[WebCoreBridge DOMDocument]): Removed a stray printf.
203
204         * kwq/KWQTextArea.mm: Tweaked code a little.
205
206 2002-10-28  Darin Adler  <darin@apple.com>
207
208         * khtml/khtml_part.cpp: (KHTMLPart::checkCompleted):
209         Update so it handles nil for the view.
210
211 2002-10-28  Darin Adler  <darin@apple.com>
212
213         - fixed 3070484 -- icon rollovers are very slow on Mac OS X website
214
215         The problem was simply that the part didn't know it was complete.
216         To let it know, I hooked up some loader signals, and now it works.
217
218         * khtml/khtml_part.cpp:
219         (KHTMLPart::init): Create the KWQKHTMLPart a little earlier so we have
220         a chance to initialize the cache before it's used.
221         (KHTMLPart::slotLoaderRequestStarted): Take this out of ifdefs.
222         (KHTMLPart::slotLoaderRequestDone): Ditto.
223
224         * khtml/misc/loader.h: Add a KWQLoader pointer to the loader.
225         * khtml/misc/loader.cpp:
226         (Loader::Loader): Create a KWQLoader;
227         (Loader::~Loader): Destroy the KWQLoader.
228         (Loader::load): Take out ifdefs around code that emits requestStarted.
229
230         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::KWQKHTMLPart): Call Cache::init().
231
232         * kwq/KWQLoader.h: Add a class KWQLoader, with three signals in it.
233         * kwq/KWQLoader.mm: (KWQLoader::KWQLoader): Initialize the three signals.
234
235         * kwq/KWQSignalStubs.mm:
236         (Loader::requestDone): Emit the signal using KWQLoader.
237         (Loader::requestFailed): Ditto.
238         (Loader::requestStarted): Ditto.
239
240         * kwq/KWQSlot.h: Add an overload for slots with loader and cached object
241         parameters so we can handle the new slots.
242         * kwq/KWQSlot.mm:
243         (KWQSlot::KWQSlot): Added slotLoaderRequestDone and slotLoaderRequestStarted.
244         (KWQSlot::call): Added the new overload to handle those two signals.
245
246         * kwq/KWQSignal.h: Add an overload for signals with loader and cached object
247         parameters so we can handle the new signals.
248         * kwq/KWQSignal.mm: (KWQSignal::call): Ditto.
249
250         * kwq/KWQObject.mm: (QObject::connect): Remove the special casing that
251         prevents complaints about slotLoaderRequestDone and slotLoaderRequestStarted,
252         since we support those now.
253
254 2002-10-28  Darin Adler  <darin@apple.com>
255
256         - fixed storage leak of items in QListBox
257
258         * kwq/KWQListBox.h: Added private deleteItems method.
259         * kwq/KWQListBox.mm:
260         (QListBox::~QListBox): Call deleteItems().
261         (QListBox::deleteItems): Move the code to delete all the items
262         here from clear(), since clear() is not called on destruction.
263         (QListBox::clear): Call deleteItems().
264
265 2002-10-28  Chris Blumenberg  <cblu@apple.com>
266
267         Lowercase the text encoding name.
268
269         * kwq/KWQCharsets.mm:
270         (KWQCFStringEncodingFromIANACharsetName):
271
272 2002-10-28  Richard Williamson   <rjw@apple.com>
273     
274         Fixed 3086188 - REGRESSION: Justified text is broken
275         
276         Bogus special case for DirW(hite)S(pace).  This
277         should be correctly detected by CF, but is not.
278         Revert to explicit checking for ' ' character.  This'll
279         work most of the time.  All the more reason to do
280         our own unicode attribute database.
281         
282         * kwq/KWQChar.mm:
283         (QChar::direction):
284
285 2002-10-28  Chris Blumenberg  <cblu@apple.com>
286
287         Fixed: 3056726 - View Source window always displays the source in current system encoding
288         Fixed: 3019352 - Text encoding is not handled when viewing plain text
289
290         * kwq/WebCoreBridge.h:
291         * kwq/WebCoreBridge.mm:
292         (+[WebCoreBridge stringWithData:textEncoding:]): added, creates a string with data using the WebCore's decoding logic.
293         (+[WebCoreBridge stringWithData:textEncodingName:]): added, calls stringWithData:textEncoding: after getting the encoding for a text encoding name
294
295 2002-10-28  Don Melton  <gramps@apple.com>
296
297         * khtml/html/htmlparser.cpp:
298         (KHTMLParser::insertNode):
299         * khtml/html/htmltokenizer.cpp:
300         (HTMLTokenizer::write):
301
302         Backed our Dave's whitespace hack because it was adding newlines, i.e.
303         vertical margins, to web pages all over.
304
305 2002-10-28  Darin Adler  <darin@apple.com>
306
307         - fixed 3015800 -- bad URL error - unescaped # in URL
308
309         Actually this has to be fixed both here and in NSURLExtras.
310
311         * kwq/KWQKURL.mm: Set the "BadChar" flag for "#" so we escape any
312         "#" characters we see after the first one.
313
314 2002-10-27  Darin Adler  <darin@apple.com>
315
316         - fixed 3058845 -- <input type=file> uses hard-coded width of 200
317         pixels for filename
318
319         * khtml/rendering/render_form.cpp:
320         (RenderLineEdit::calcMinMaxWidth): Use a default of 20 "x-widths" wide, to
321         match Mozilla, rather than the 17 that is in KHTML by default.
322         (RenderFileButton::calcMinMaxWidth): Pass in a character width here, using
323         the same 20-character rule as above.
324         * kwq/KWQFileButton.h: Replace sizeHint() with sizeForCharacterWidth(int).
325         * kwq/KWQFileButton.mm:
326         (KWQFileButton::sizeForCharacterWidth): Pass character count to the WebCoreFileButton.
327         (KWQFileButton::baselinePosition): Fix baseline computation. It was computing some huge
328         negative number before and was obviously broken.
329         * kwq/KWQLineEdit.mm: (QLineEdit::sizeForCharacterWidth): Add an assertion.
330         * kwq/WebCoreViewFactory.h: Replace bestVisualFrameSize with
331         bestVisualFrameSizeForCharacterCount:.
332
333 2002-10-27  Don Melton  <gramps@apple.com>
334
335         * khtml/ecma/kjs_navigator.cpp:
336         (Navigator::getValueProperty):
337
338         Tweaked AppName, Product, and Vendor logic.
339
340 2002-10-27  Darin Adler  <darin@apple.com>
341
342         * kwq/KWQLoader.mm: (KWQServeRequest): Add a missing "delete job" for one
343         particular failure case.
344
345 2002-10-26  Darin Adler  <darin@apple.com>
346
347         - fixed a bug in the WebCore cache that caused it to not cache very much after
348         a while, and also caused a crash I saw twice on my machine
349
350         Adjust total size of items in the LRU list, when the size of one of the
351         items that's in the list is changed.
352
353         * khtml/misc/loader.h: Added a size parameter (default 0) to the CachedObject
354         constructor. Added a protected CachedObject::setSize() and made m_size private.
355         Added Cache::adjustSize() and Cache::checkLRUAndUncacheableListIntegrity().
356         * khtml/misc/loader.cpp:
357         (CachedObject::setSize): Added. This is now the only legal way to change
358         the size of a cached object, and it calls Cache::adjustSize.
359         (CachedCSSStyleSheet::CachedCSSStyleSheet): Pass the length into the base
360         class's constructor instead of setting m_size.
361         (CachedCSSStyleSheet::data): Call setSize() instead of setting m_size.
362         Also get the size back with size() rather than m_size.
363         (CachedScript::CachedScript): Pass the length into the base class's
364         constructor instead of setting m_size.
365         (CachedScript::data): Call setSize() instead of setting m_size. Also get
366         the size back with size() rather than m_size.
367         (CachedImage::CachedImage): Don't set m_size to 0, since the base class's
368         constructor does that already.
369         (CachedImage::clear): Use setSize() to set the size to 0 instead of setting
370         m_size directly.
371         (CachedImage::data): Use setSize() instead of setting m_size directly.
372         (Cache::checkLRUAndUncacheableListIntegrity): Useful debugging function.
373         Left in but ifdef'd out.
374         (Cache::adjustSize): Added. Changes the "total LRU list size" by the
375         passed-in delta, but only if the passed-in object is in the LRU list.
376
377         * kwq/KWQLineEdit.mm:
378         * kwq/KWQTextField.h:
379         * kwq/KWQTextField.mm:
380         Renamed the Objective C class KWQNSTextField to KWQTextField.
381
382 2002-10-26  Darin Adler  <darin@apple.com>
383
384         - removed forwarding headers that are not actually needed
385
386         * ForwardingHeaders/kcmdlineargs.h: Removed.
387         * ForwardingHeaders/kinstance.h: Removed.
388         * ForwardingHeaders/kio/kprinter.h: Removed.
389         * ForwardingHeaders/kio/ktrader.h: Removed.
390         * ForwardingHeaders/kio/scheduler.h: Removed.
391         * ForwardingHeaders/kparts/factory.h: Removed.
392         * ForwardingHeaders/kparts/historyprovider.h: Removed.
393         * ForwardingHeaders/kstddirs.h: Removed.
394         * ForwardingHeaders/qarray.h: Removed.
395         * ForwardingHeaders/qbrush.h: Removed.
396         * ForwardingHeaders/qbutton.h: Removed.
397         * ForwardingHeaders/qcollection.h: Removed.
398         * ForwardingHeaders/qcombobox.h: Removed.
399         * ForwardingHeaders/qframe.h: Removed.
400         * ForwardingHeaders/qglobal.h: Removed.
401         * ForwardingHeaders/qiodevice.h: Removed.
402         * ForwardingHeaders/qlineedit.h: Removed.
403         * ForwardingHeaders/qnamespace.h: Removed.
404         * ForwardingHeaders/qpen.h: Removed.
405         * ForwardingHeaders/qprinter.h: Removed.
406         * ForwardingHeaders/qsize.h: Removed.
407         * ForwardingHeaders/qstack.h: Removed.
408
409 2002-10-26  Darin Adler  <darin@apple.com>
410
411         - fixed a couple of files accidentally checked in with KWQQ names
412
413         * ForwardingHeaders/qasyncio.h: Change names.
414         * ForwardingHeaders/qstylesheet.h: Ditto.
415         * WebCore.pbproj/project.pbxproj: Ditto.
416         * kwq/KWQMovie.h: Ditto.
417
418 2002-10-26  Darin Adler  <darin@apple.com>
419
420         - changed to use #if APPLE_CHANGES and #if !APPLE_CHANGES consistently
421
422         We no longer do #ifdef APPLE_CHANGES or #ifndef APPLE_CHANGES.
423
424         * lots of files
425
426 2002-10-26  Darin Adler  <darin@apple.com>
427
428         - changed naming scheme in KWQ for files like qstring.h
429
430         Now use names like KWQString.h and a forwarding header called qstring.h.
431         
432         * tons of files
433
434 2002-10-26  Darin Adler  <darin@apple.com>
435
436         - fixed 3068404 -- eliminate all user-visible messages from WebCore
437
438         * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Use runJavaScriptPrompt
439         function instead of the more generic QInputDialog.
440
441         * khtml/html/html_formimpl.cpp: (HTMLInputElementImpl::altText): Get
442         submit alt text for input element from the view factory, rather than using
443         i18n, since we don't support that.
444         * khtml/html/htmlparser.cpp: (KHTMLParser::handleIsindex): Ditto, for the
445         intro that says "This is a searchable index".
446         * khtml/rendering/render_form.cpp:
447         (RenderSubmitButton::defaultLabel): Ditto, for "Submit".
448         (RenderResetButton::defaultLabel): Ditto, for "Reset".
449         (RenderFileButton::slotClicked): Ifdef'd out this unused code that had i18n text in it.
450
451         * khtml/xml/xml_tokenizer.cpp:
452         (XMLHandler::errorString): Put in an ifdef and a FIXME to avoid i18n.
453         (XMLHandler::fatalError): Ditto.
454         (XMLTokenizer::finish): Ditto.
455
456         * khtml/misc/decoder.cpp: (Decoder::decode): Ifdef'd the check for the first
457         language being "ja", since that's not how we're going to trigger Japanese
458         auto-detect.
459
460         * khtml/rendering/render_applet.cpp: (RenderEmptyApplet::RenderEmptyApplet):
461         Turned off the code that does the empty applet label. I don't think it worked,
462         and it used i18n. We'll have to tackle this eventually.
463
464         * kwq/KWQKHTMLPartImpl.h: Added runJavaScriptPrompt.
465         * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::runJavaScriptPrompt): Moved the code
466         here that used to be in KWQInputDialog.
467
468         * kwq/kdecore/klocale.h: Remove i18n() and KLocale::languageList(), added the functions
469         that are listed below.
470         * kwq/KWQKLocale.mm:
471         (inputElementAltText): Added specific function for getting one of the very few
472         translated strings that we need in WebCore.
473         (resetButtonDefaultLabel): Ditto.
474         (searchableIndexIntroduction): Ditto.
475         (submitButtonDefaultLabel): Ditto.
476         (KLocale::language): Use the view factory to ask for the language code, since there's no
477         public API to get it that WebCore can use.
478
479         * kwq/WebCoreViewFactory.h: Add new API for above.
480
481         * ForwardingHeaders/qinputdialog.h: Added empty file.
482
483         * kwq/qt/qinputdialog.h: Removed.
484         * kwq/KWQInputDialog.mm: Removed.
485         * WebCore.pbproj/project.pbxproj: Removed QInputDialog files.
486
487 2002-10-25  Darin Adler  <darin@apple.com>
488
489         Remove some user-visible strings. We can't have any strings that need
490         localization in WebCore, given our translation strategy.
491
492         * khtml/html/html_formimpl.cpp: (HTMLInputElementImpl::encoding):
493         Put APPLE_CHANGES around some i18n dialog code.
494         * khtml/khtml_part.cpp: (KHTMLPart::submitForm): Ditto.
495         * khtml/rendering/render_frames.cpp:
496         (RenderPartObject::slotPartLoadingErrorNotify): Ditto.
497         * khtml/ecma/kjs_window.cpp:
498         (Window::get): Ditto.
499         (Window::scheduleClose): Ditto.
500         (WindowFunc::tryCall): Put APPLE_CHANGES in to use JavaScript-specific methods
501         in the part of calling the generic ones from KMessageBox.
502
503         * ForwardingHeaders/kmessagebox.h: Added (empty file).
504
505         * kwq/KWQKHTMLPartImpl.h: Added new runJavaScript functions.
506         * kwq/KWQKHTMLPartImpl.mm:
507         (KWQKHTMLPartImpl::runJavaScriptAlert): Added.
508         (KWQKHTMLPartImpl::runJavaScriptConfirm): Added.
509
510         * kwq/WebCoreViewFactory.h: Added runJavaScriptAlertPanelWithMessage and
511         runJavaScriptConfirmPanelWithMessage.
512
513         * kwq/kdeui/kmessagebox.h: Removed.
514         * kwq/KWQKMessageBox.mm: Removed.
515         * WebCore.pbproj/project.pbxproj: Removed the KMessageBox files.
516
517 2002-10-25  Richard Williamson   <rjw@apple.com>
518
519         Removed debug logging.
520         
521         * khtml/rendering/font.cpp:
522         (Font::drawText):
523
524 2002-10-25  Richard Williamson   <rjw@apple.com>
525
526         Implemented support for bidi text layout.  WebCore
527         temporarily depends on SPI to get unicode character
528         attribute from CF.  This will change shortly.
529         
530         * khtml/rendering/font.cpp:
531         (Font::drawText):
532         * kwq/KWQChar.mm:
533         (QChar::direction):
534         * kwq/KWQPainter.mm:
535         (QPainter::drawText):
536         * kwq/WebCoreTextRenderer.h:
537         * kwq/qt/qpainter.h:
538
539 2002-10-25  Chris Blumenberg  <cblu@apple.com>
540
541         Cleaned up the frame searching shenanigans. Things are much cleaner and clearer now.
542
543         * kwq/KWQKHTMLPartBrowserExtension.mm:
544         (KHTMLPartBrowserExtension::createNewWindow): call findFrameNamed
545         * kwq/KWQKHTMLPartImpl.mm:
546         (KWQKHTMLPartImpl::bridgeForFrameName): call findOrCreateFramedNamed
547         * kwq/WebCoreBridge.h:
548
549 2002-10-25  Maciej Stachowiak  <mjs@apple.com>
550
551         - fixed 3065638 - "undefined" output to screen on empty document.write()
552         
553         * khtml/ecma/kjs_html.cpp:
554         (KJS::HTMLDocFunction::tryCall): Don;t assume there is at least
555         one argument.
556
557 2002-10-25  Maciej Stachowiak  <mjs@apple.com>
558
559         - fixed 3048031 - innerHTML is incorrectly null
560         
561         * kwq/KWQString.mm:
562         (QString::isNull): Check for NULL by comparing to
563         shared_null_handle instead of checking for 0 length, so
564         garden-variety empty strings don't show as NULL.
565         (QString::QString): Make sure that string created with a NULL char
566         * uses the shared null handle, so it's properly NULL.
567
568 2002-10-24  Richard Williamson   <rjw@apple.com>
569
570         Updated to reflect new calling parameter semantic of floatCharacterWidths(),
571         which now returns the entire array of widths up the last character requested.
572         
573         * khtml/rendering/render_text.cpp:
574         (TextSlave::checkSelectionPoint):
575
576 2002-10-24  David Hyatt  <hyatt@apple.com>
577
578         <pre>, <xmp> and <plaintext> should all have a top margin of 1em.
579         Fixes a bunch of sites that use <pre>.
580         
581         * khtml/css/html4.css:
582
583 2002-10-24  Chris Blumenberg  <cblu@apple.com>
584
585         Removed didAddSubview calls because that can easily be done in WebKit. Duh!
586
587         * khtml/rendering/render_frames.cpp:
588         (RenderPart::setWidget):
589         * kwq/KWQKHTMLPartImpl.h:
590         * kwq/KWQKHTMLPartImpl.mm:
591         * kwq/KWQKJavaAppletWidget.mm:
592         (KJavaAppletWidget::showApplet):
593         * kwq/WebCoreBridge.h:
594
595 2002-10-24  Darin Adler  <darin@apple.com>
596
597         A step in the direction of making KWQ headers much nicer.
598         Move all empty headers out of kwq, and into ForwardingHeaders.
599
600         * ForwardingHeaders/kcmdlineargs.h: Added.
601         * ForwardingHeaders/kdatastream.h: Added.
602         * ForwardingHeaders/khtml_iface.h: Added.
603         * ForwardingHeaders/khtml_printsettings.h: Added.
604         * ForwardingHeaders/khtml_run.h: Added.
605         * ForwardingHeaders/kio/kprinter.h: Added.
606         * ForwardingHeaders/kio/kprotocolmanager.h:
607         * ForwardingHeaders/kio/ktrader.h: Added.
608         * ForwardingHeaders/kio/scheduler.h: Added.
609         * ForwardingHeaders/kmultipledrag.h: Added.
610         * ForwardingHeaders/kprinter.h: Added.
611         * ForwardingHeaders/kprotocolmanager.h: Added.
612         * ForwardingHeaders/ksslcertchain.h: Added.
613         * ForwardingHeaders/ksslinfodlg.h: Added.
614         * ForwardingHeaders/kstdaction.h: Added.
615         * ForwardingHeaders/ktempfile.h: Added.
616         * ForwardingHeaders/ktrader.h: Added.
617         * ForwardingHeaders/kurldrag.h: Added.
618         * ForwardingHeaders/kxmlguifactory.h: Added.
619         * ForwardingHeaders/qasyncimageio.h: Added.
620         * ForwardingHeaders/qbitmap.h: Added.
621         * ForwardingHeaders/qclipboard.h: Added.
622         * ForwardingHeaders/qfontdatabase.h: Added.
623         * ForwardingHeaders/qglobal.h: Added.
624         * ForwardingHeaders/qhbox.h: Added.
625         * ForwardingHeaders/qintcache.h: Added.
626         * ForwardingHeaders/qintdict.h: Added.
627         * ForwardingHeaders/qmetaobject.h: Added.
628         * ForwardingHeaders/qobjectlist.h: Added.
629         * ForwardingHeaders/scheduler.h: Added.
630
631         * kwq/dcop/kdatastream.h: Removed.
632         * kwq/kdecore/kcmdlineargs.h: Removed.
633         * kwq/kdecore/kmultipledrag.h: Removed.
634         * kwq/kdecore/ktempfile.h: Removed.
635         * kwq/kdecore/kurldrag.h: Removed.
636         * kwq/kdeui/kstdaction.h: Removed.
637         * kwq/kdeui/kxmlguifactory.h: Removed.
638         * kwq/khtml/khtml_iface.h: Removed.
639         * kwq/khtml/khtml_printsettings.h: Removed.
640         * kwq/khtml/khtml_run.h: Removed.
641         * kwq/kio/kprinter.h: Removed.
642         * kwq/kio/kprotocolmanager.h: Removed.
643         * kwq/kio/kssl/ksslcertchain.h: Removed.
644         * kwq/kio/kssl/ksslinfodlg.h: Removed.
645         * kwq/kio/ktrader.h: Removed.
646         * kwq/kio/scheduler.h: Removed.
647         * kwq/qt/qasyncimageio.h: Removed.
648         * kwq/qt/qbitmap.h: Removed.
649         * kwq/qt/qclipboard.h: Removed.
650         * kwq/qt/qfontdatabase.h: Removed.
651         * kwq/qt/qglobal.h: Removed.
652         * kwq/qt/qhbox.h: Removed.
653         * kwq/qt/qintcache.h: Removed.
654         * kwq/qt/qintdict.h: Removed.
655         * kwq/qt/qmetaobject.h: Removed.
656         * kwq/qt/qobjectlist.h: Removed.
657
658         * WebCore.pbproj/project.pbxproj: Removed all the above headers from
659         the project.
660
661 2002-10-24  Darin Adler  <darin@apple.com>
662
663         * ForwardingHeaders/private/qucomextra_p.h: Emptied this out.
664         * kwq/qt/private/qucomextra_p.h: Removed.
665
666 2002-10-24  David Hyatt  <hyatt@apple.com>
667
668         Make sure that KHTML's initial layout happens after KHTML
669         fires the onload.  This means that in the case where we
670         beat the timer, we will now fire the onload before both
671         the initial layout and the initial paint.
672         
673         * khtml/html/html_documentimpl.cpp:
674         (HTMLDocumentImpl::close):
675
676 === Alexander-29 ===
677
678 2002-10-24  Chris Blumenberg  <cblu@apple.com>
679
680         Use "MIMEType" instead of "serviceType".
681
682         * kwq/KWQKHTMLPartImpl.mm:
683         (KWQKHTMLPartImpl::createPart):
684         * kwq/WebCoreBridge.h:
685
686 2002-10-24  Darin Adler  <darin@apple.com>
687
688         * kwq/KWQKLocale.mm: (i18n): Make it obvious when non-localized
689         strings from WebCore show up in the UI, but putting the string
690         "not localized: " in front.
691
692         * kwq/KWQKMessageBox.mm:
693         (KMessageBox::error): Fix use of NSRunAlertPanel so that we won't
694         accidentally try to interpret % sequences in the messages we are displaying.
695         (KMessageBox::warningYesNo): Ditto.
696         (KMessageBox::questionYesNo): Ditto.
697         (KMessageBox::sorry): Ditto.
698         (KMessageBox::information): Ditto.
699
700 2002-10-23  Chris Blumenberg  <cblu@apple.com>
701
702         WebKit now gets called when render_frame subviews are added.
703
704         * khtml/rendering/render_frames.cpp:
705         (RenderPart::setWidget): call didAddWidget on the part
706         * kwq/KWQKHTMLPartImpl.h:
707         * kwq/KWQKHTMLPartImpl.mm:
708         (KWQKHTMLPartImpl::didAddWidget): added, calls didAddSubview on the bridge
709
710 2002-10-23  Chris Blumenberg  <cblu@apple.com>
711
712         Change for plug-in package API changes.
713
714         * kwq/KWQKConfigBase.mm:
715         (KConfig::readEntry):
716         * kwq/WebCoreBridge.h: added didAddSubview, called when a render_frame's view is added as a subview of the main view.
717         * kwq/WebCoreViewFactory.h: added didAddSubview
718
719 2002-10-23  Darin Adler  <darin@apple.com>
720
721         - finished up the job of moving the file button to WebKit
722
723         I did this mainly for localization reasons.
724
725         * kwq/KWQFileButton.h: Remove filename(), add filenameChanged(),
726         make KWQFileButton be a QWidget subclass, not a QPushButton one.
727         Remove clicked() and paint() virtual functions, _filename, _icon,
728         and _label data members.
729         * kwq/KWQFileButton.mm:
730         (KWQFileButton::KWQFileButton): Just make a WebCoreFileButton.
731         (KWQFileButton::~KWQFileButton): Less to do here now.
732         (KWQFileButton::setFilename): Call the button to do the work.
733         (KWQFileButton::sizeHint): Ditto.
734         (KWQFileButton::frameGeometry): Ditto.
735         (KWQFileButton::setFrameGeometry): Ditto.
736         (KWQFileButton::baselinePosition): Ditto.
737         (KWQFileButton::filenameChanged): Added. Sends message.
738         (-[KWQFileButtonAdapter initWithKWQFileButton:]): Observe the "filename
739         changed notification".
740         (-[KWQFileButtonAdapter dealloc]): Stop observing.
741         (-[KWQFileButtonAdapter filenameChanged:]): Send a signal when the notification
742         comes in, so KHTML finds out.
743
744         * kwq/KWQSlot.mm:
745         (KWQSlot::KWQSlot): Remove handling for RenderFileButton slotReturnPressed.
746         (KWQSlot::call): Ditto.
747
748         * kwq/WebCoreViewFactory.h: Remove bestSize. Add setVisualFrame, visualFrame, and
749         bestVisualFrameSize.
750
751         * kwq/KWQInputDialog.mm: Tweaked includes. Long-term we want to use "", not <>.
752         * kwq/KWQKConfigBase.mm: Ditto.
753         * kwq/KWQKHTMLPartImpl.mm: Ditto.
754
755 2002-10-23  Chris Blumenberg  <cblu@apple.com>
756
757         Call the arguments for plug-ins "attributes" everywhere.
758
759         * kwq/KWQKHTMLPartImpl.mm:
760         (KWQKHTMLPartImpl::createPart):
761         * kwq/KWQKJavaAppletWidget.mm:
762         (KJavaAppletWidget::showApplet):
763         * kwq/WebCoreBridge.h:
764
765 2002-10-23  Chris Blumenberg  <cblu@apple.com>
766
767         For the new plug-in API, we need to pass a WebPluginContainer to the plug-in view upon creation. The is owned by the WebFrame. To make this all work, I had to move the WebCore plug-in and java view constructors to WebBridge from WebViewFactory since WebBridge has the frame. 
768
769         * khtml/khtml_part.cpp:
770         (KHTMLPart::createJavaContext): New APPLE_CHANGES around the java context constructor so we pass the part.
771         * kwq/KWQKHTMLPartImpl.mm:
772         (KWQKHTMLPartImpl::createPart): call the bridge to create the view
773         * kwq/KWQKJavaAppletWidget.mm:
774         (KJavaAppletWidget::KJavaAppletWidget): save the context
775         (KJavaAppletWidget::showApplet): call the bridge to create the view
776         * kwq/WebCoreBridge.h:
777         * kwq/WebCoreViewFactory.h:
778         * kwq/khtml/java/kjavaappletcontext.h: made constructor take the part
779         * kwq/khtml/java/kjavaappletwidget.h: ivar for the context
780
781 2002-10-23  Darin Adler  <darin@apple.com>
782
783         - fixed 3080478 -- reproducible incomplete load on apple.com
784
785         * kwq/KWQLoaderImpl.mm:
786         (-[WebCoreResourceLoader receivedResponse:]): Add an assert.
787         (-[WebCoreResourceLoader cancel]): Don't finish here, just disconnect the handle
788         from the job, and disconnect the job from the WebCoreResourceLoader, and let the
789         KHTML code finish the cleanup later. This is the bug fix.
790         (KWQCheckCacheObjectStatus): Add an assertion.
791
792         * kwq/KWQKjobclasses.mm:
793         (TransferJob::~TransferJob): Don't call kill(); do the work here instead.
794         (TransferJob::kill): Self-destruct. Need this to avoid a storage leak.
795
796         * khtml/misc/loader.cpp:
797         (CachedObject::~CachedObject): Put some Apple-specific code inside APPLE_CHANGES.
798         (CachedObject::setResponse): Streamlined this function.
799         (Loader::receivedResponse): Added assertions.
800
801         * kwq/qt/qxml.h: Add more stubs.
802         * kwq/KWQxml.mm: Ditto.
803
804         * kwq/WebCoreViewFactory.h: Add [WebCoreViewFactory fileButton], the
805         WebCoreFileButton protocol, and WebCoreFileButtonFilenameChanged.
806         * kwq/WebCoreViewFactory.m: Add WebCoreFileButtonFilenameChanged.
807         * WebCore.exp: Export _WebCoreFileButtonFilenameChanged.
808
809 2002-10-22  Maciej Stachowiak  <mjs@apple.com>
810
811         Forgot to check this in earlier:
812
813         - fixed 3077084 - debugging output when suppressing or allowing
814         pop-ups
815         
816         * khtml/ecma/kjs_window.cpp:
817         (WindowFunc::tryCall):
818         * kwq/KWQLogging.h:
819         * kwq/KWQLogging.m:
820
821 2002-10-22  David Hyatt  <hyatt@apple.com>
822
823         Get XML files closer.  An XML doc is at least made.  No
824         parsing works yet though.
825         
826         * kwq/KWQKHTMLPartImpl.mm:
827         (KWQKHTMLPartImpl::setPolicyBaseURL):
828         * kwq/WebCoreBridge.h:
829         * kwq/WebCoreBridge.mm:
830         (-[WebCoreBridge setContentType:]):
831
832 2002-10-22  Chris Blumenberg  <cblu@apple.com>
833
834         Fixed: 3023814 - contexual menus and dragging doesn't work for some images
835
836         Added a innerNonSharedNode to NodeInfo that points to the node which is not shared by another node. In this case, the innerNonSharedNode is the image node not the area node.
837
838         * khtml/rendering/render_frames.cpp:
839         (RenderFrameSet::nodeAtPoint): call setInnerNonSharedNode
840         * khtml/rendering/render_image.cpp:
841         (RenderImage::nodeAtPoint): call setInnerNonSharedNode
842         * khtml/rendering/render_object.cpp:
843         (RenderObject::nodeAtPoint): call setInnerNonSharedNode
844         * khtml/rendering/render_object.h:
845         * kwq/WebCoreBridge.mm:
846         (-[WebCoreBridge elementAtPoint:]): use the innerNonSharedNode
847
848 2002-10-22  David Hyatt  <hyatt@apple.com>
849
850         Fix slashdot.  Make sure the KONQBLOCK hack just throws away
851         margins at the tops and bottoms of kids.
852         
853         * khtml/css/html4.css:
854         * khtml/rendering/render_flow.cpp:
855         (RenderFlow::layoutBlockChildren):
856
857 2002-10-22  David Hyatt  <hyatt@apple.com>
858
859         Fix for left-hand-side of wired.com.  A disturbingly basic
860         bug.  I was applying a parent's margins to its children
861         when collapsing, even if the parent had a border/padding set
862         that should have separated it from its kids.
863         
864         * khtml/rendering/render_flow.cpp:
865         (RenderFlow::layoutBlockChildren):
866
867 2002-10-22  David Hyatt  <hyatt@apple.com>
868
869         Optimize my inline margin discarding to be smart about the
870         case when the inline has a block and its beginning or
871         end.  Fixes aintitcool.com.
872         
873         * khtml/rendering/render_flow.cpp:
874         (RenderFlow::layoutBlockChildren):
875
876 2002-10-22  David Hyatt  <hyatt@apple.com>
877
878         Removing konq's flow-around-floats hack for <blockquote> and
879         <dl>.  These objects are allowed to flow under floats.  Fixes
880         www.webreference.com's front page.
881
882         Also fixing a bug in my <td> margin collapsing quirk that
883         prevented lists (ol,ul,dl,menu,dir) from collapsing their
884         top margins into the td.
885         
886         * khtml/css/html4.css:
887         * khtml/rendering/render_flow.cpp:
888         (RenderFlow::layoutBlockChildren):
889         (RenderFlow::addChild):
890
891 2002-10-22  David Hyatt  <hyatt@apple.com>
892
893         Fix a typo in my change to the h1 rule.
894         
895         * khtml/css/html4.css:
896
897 2002-10-22  David Hyatt  <hyatt@apple.com>
898
899         Ok, this patch does a lot of stuff.  It contains a complete
900         rewrite of the WinIE quirk for handling collapsing margins
901         at the tops and bottoms of table cells.  We match WinIE's
902         behavior for all HTML4 block-level elements.
903
904         This patch also applies a bottom margin to <form> elements,
905         which is what was causing the missing space on livepage.apple.com
906         underneath the textfield on the right.  WinIE and Gecko both
907         put a bottom margin on all forms.
908
909         This patch also updates the collapsing margin code to detect
910         inlines that have been morphed into blocks by KHTML (this is 
911         so wrong, don't even get me started, you can't treat an inline
912         as a block, this code is lame, etc. etc.) and to properly ignore
913         their margins completely.  Fixing the code to not morph inlines
914         is another architectural problem that will have to be dealt
915         with (sigh).
916         
917         * khtml/css/css_valueimpl.h:
918         * khtml/css/cssparser.cpp:
919         (StyleBaseImpl::parseValue):
920         (StyleBaseImpl::parseUnit):
921         * khtml/css/cssparser.h:
922         * khtml/css/cssstyleselector.cpp:
923         * khtml/css/html4.css:
924         * khtml/misc/khtmllayout.h:
925         * khtml/rendering/render_flow.cpp:
926         (RenderFlow::RenderFlow):
927         (RenderFlow::layout):
928         (RenderFlow::layoutBlockChildren):
929         (RenderFlow::addChild):
930         * khtml/rendering/render_flow.h:
931         * khtml/rendering/render_object.h:
932
933 2002-10-21  Darin Adler  <darin@apple.com>
934
935         * kwq/KWQInputDialog.mm: (QInputDialog::getText): Call the view factory to do the
936         heavy lifting.
937
938         * kwq/WebCoreViewFactory.h: Add runJavaScriptTextInputPanelWithPrompt:defaultText:returningText:.
939         Use a protocol for the subclass responsibility.
940         * kwq/WebCoreViewFactory.m: Remove stub methods not needed because of the subclass responsibility
941         technique we are using.
942
943         * kwq/qt/qstylesheet.h: Made this inline, since it does nothing.
944         * kwq/KWQStyleSheet.mm: Removed.
945         * WebCore.pbproj/project.pbxproj: Removed KWQStyleSheet.mm.
946
947 2002-10-21  David Hyatt  <hyatt@apple.com>
948
949         Implement support for a new @-rule called @konq-quirks.  This
950         will allow us to put style rules into html4.css that only
951         apply for pages in quirks mode.
952         
953         * khtml/css/css_ruleimpl.cpp:
954         (CSSQuirksRuleImpl::CSSQuirksRuleImpl):
955         (CSSQuirksRuleImpl::~CSSQuirksRuleImpl):
956         (CSSQuirksRuleImpl::cssRules):
957         (CSSQuirksRuleImpl::appendRule):
958         (CSSQuirksRuleImpl::insertRule):
959         (CSSQuirksRuleImpl::deleteRule):
960         * khtml/css/css_ruleimpl.h:
961         * khtml/css/cssparser.cpp:
962         (StyleBaseImpl::parseAtRule):
963         * khtml/css/cssparser.h:
964         * khtml/css/cssstyleselector.cpp:
965         * khtml/css/cssstyleselector.h:
966         * khtml/dom/css_rule.h:
967
968 2002-10-21  Darin Adler  <darin@apple.com>
969
970         Remove closeEntireTree now that deferred close takes care of that case.
971
972         * khtml/html/htmlparser.cpp: (KHTMLParser::startBody):
973         * khtml/rendering/render_object.h:
974
975 2002-10-21  Darin Adler  <darin@apple.com>
976
977         - fixed 3075041 -- text larger/smaller increment too large when font-size specified as %
978
979         * khtml/css/cssstyleselector.cpp: Don't apply the zoom factor to a font size that
980         already has the zoom factor applied.
981
982 2002-10-21  Darin Adler  <darin@apple.com>
983
984         * khtml/khtmlview.cpp: (KHTMLView::clear): Default to fast scrolling.
985         I'm pretty sure this was just backwards here.
986
987 2002-10-21  David Hyatt  <hyatt@apple.com>
988
989         DLs are supposed to have margins.
990         
991         * khtml/css/html4.css:
992
993 2002-10-21  David Hyatt  <hyatt@apple.com>
994
995         Fix for margin problems on aintitcool.com.  There was a subtlety
996         to WinIE's quirk.  For <h1>-<h6> only, they don't collapse the
997         bottom margin for table cells (they still collapse the top
998         margin).  I just love emulating the odd behavior of WinIE.
999         Wheee.
1000         
1001         * khtml/rendering/render_flow.cpp:
1002         (RenderFlow::layoutBlockChildren):
1003
1004 2002-10-20  Darin Adler  <darin@apple.com>
1005
1006         Redid my fix. It was just an ordering thing. The image had to already be
1007         installed as the current image before calling ref(), because in the cached
1008         case, you get the loading complete callback right then.
1009
1010         * khtml/rendering/render_image.cpp: (RenderImage::updateFromElement):
1011         Call deref on the old image later. Basically, instead of moving the ref
1012         of the new image up, I moved the deref of the old image down.
1013
1014 2002-10-20  Darin Adler  <darin@apple.com>
1015
1016         Roll out my render_image.cpp change. It was causing a big problem
1017         getting images from the cache. I need to study further to figure out why.
1018
1019         * khtml/rendering/render_image.cpp: (RenderImage::updateFromElement):
1020         Roll back the change.
1021
1022 2002-10-20  David Hyatt  <hyatt@apple.com>
1023
1024         Rewrite the clearing code for floats.  Rewrote the
1025         collapsing margin code to really work with floating and
1026         clearing.  This fixes the right hand side of wired.com.
1027         
1028         * khtml/rendering/render_flow.cpp:
1029         (RenderFlow::layoutBlockChildren):
1030         (RenderFlow::checkClear):
1031         (RenderFlow::addChild):
1032
1033 2002-10-20  Darin Adler  <darin@apple.com>
1034
1035         - fixed 3007961 -- Crash in DOM::HTMLImageElementImpl::parseAttribute
1036
1037         * khtml/rendering/render_image.cpp: (RenderImage::updateFromElement):
1038         Be sure to call ref on the new image before calling deref on the old
1039         image. That's because deref on the old image causes a cache flush,
1040         which might cause the image to go away in certain cases.
1041
1042 2002-10-20  Chris Blumenberg  <cblu@apple.com>
1043
1044         Fixed possible build failure.
1045
1046         * kwq/KWQDOMNode.cpp:
1047         (isImage): remove unused variable.
1048
1049 2002-10-20  Chris Blumenberg  <cblu@apple.com>
1050
1051         Partial fix for:
1052         3023814 - contexual menus and dragging doesn't work for some images
1053
1054         The image map case is still broken because I need to find a way to get the RenderImage for an AREA node. Anyone know how?
1055
1056         * kwq/KWQDOMNode.cpp:
1057         (isImage): Also return true if the node is an INPUT tag with TYPE set to "image"
1058
1059 2002-10-20  Darin Adler  <darin@apple.com>
1060
1061         - fixed 3076390 -- crash in DOM::DocumentImpl::setParsing loading thread detail page
1062         at groups.apple.com
1063
1064         * khtml/khtml_part.cpp: (KHTMLPart::openURL): Don't do any redirect special case
1065         if the document is nil. Just do a normal load in that case.
1066
1067 2002-10-20  Darin Adler  <darin@apple.com>
1068
1069         - fixed 3079864 -- REGRESSION: assertion failure on any page with a form element
1070
1071         * khtml/html/html_formimpl.cpp: (HTMLGenericFormElementImpl::attach):
1072         Roll back the parent call to use NodeBaseImpl::attach. Not sure why I changed that
1073         at the last minute before my last checkin, but it was *bad*.
1074
1075         - fixed a crash I observed when clicking on an about:blank page
1076
1077         * kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): Check for nil renderer.
1078
1079 2002-10-19  Darin Adler  <darin@apple.com>
1080
1081         - fixed 3075032 -- textarea contents sometimes aren't shown
1082
1083         The root of the problem is that we weren't delivering close calls to
1084         the render objects in the case where we created them late due to our FOUC
1085         fix. I taught the DOM implementation to remember that a close call is
1086         due, and deliver it when the render object is created. We can probably
1087         replace the closeEntireTree hack with this too. I'll talk to Dave about
1088         that on Monday.
1089
1090         * khtml/xml/dom_nodeimpl.h: Add m_rendererNeedsClose and closeRenderer.
1091         * khtml/xml/dom_nodeimpl.cpp:
1092         (NodeImpl::NodeImpl): Initialize m_rendererNeedsClose to false.
1093         (NodeImpl::closeRenderer): Call close on the renderer if it's created, otherwise
1094         set m_rendererNeedsClose.
1095         (NodeImpl::attach): If the renderer is created and m_rendererNeedsClose is true
1096         call close on the renderer and set it to false.
1097
1098         * khtml/html/html_formimpl.cpp: (HTMLGenericFormElementImpl::attach):
1099         Rearrange this so that the base class attach is called before updateFromElement
1100         is called. This allows the base attach to do a close for us before we update.
1101
1102         * khtml/html/htmlparser.cpp:
1103         (KHTMLParser::insertNode): Call closeRenderer on the DOM node rather than
1104         calling close on the render node.
1105         (KHTMLParser::popOneBlock): Ditto.
1106         * khtml/xml/xml_tokenizer.cpp:
1107         (XMLHandler::endElement): Ditto.
1108         (XMLTokenizer::finish): Ditto.
1109
1110 2002-10-19  David Hyatt  <hyatt@apple.com>
1111
1112         A couple of whitespace fixes.  What's really odd about these
1113         fixes is that they *work* but only if you load the page by
1114         hitting "Back".  I suspect that I've now fixed the bugs on
1115         KHTML's end, and we have some sort of whitepsace dropping
1116         problem on our end.
1117
1118         * khtml/html/htmlparser.cpp:
1119         (KHTMLParser::insertNode):
1120         * khtml/html/htmltokenizer.cpp:
1121         (HTMLTokenizer::write):
1122
1123 2002-10-18  Richard Williamson   <rjw@apple.com>
1124
1125         Fixed khtml to ignore <title> tags after the first tag.
1126         
1127         Fixed setting document.title from JavaScript.
1128         
1129         * khtml/dom/html_document.cpp:
1130         (HTMLDocument::setTitle):
1131         * khtml/html/html_headimpl.cpp:
1132         (HTMLTitleElementImpl::insertedIntoDocument):
1133         (HTMLTitleElementImpl::childrenChanged):
1134
1135 2002-10-18  Darin Adler  <darin@apple.com>
1136
1137         - fixed 3078293 -- Implement evaluateJavaScript on WebController
1138
1139         * kwq/KWQVariant.mm: (QVariant::asString): Made this return reasonable
1140         values for types other than string. Still may be loose ends left, but
1141         this takes care of most of it.
1142
1143 2002-10-18  Darin Adler  <darin@apple.com>
1144
1145         * kwq/WebCoreBridge.h:
1146         * kwq/WebCoreBridge.mm:
1147         (-[WebCoreBridge stringByEvaluatingJavaScriptFromString:]):
1148         Changed to return a string and changed name.
1149
1150 2002-10-18  David Hyatt  <hyatt@apple.com>
1151
1152         The collapsing margin rewrite. Also fixes a bug where
1153         we stay in quirks mode for strict HTML4 dtds when we
1154         shouldn't.
1155         
1156         * khtml/html/html_documentimpl.cpp:
1157         (HTMLDocumentImpl::determineParseMode):
1158         * khtml/rendering/render_flow.cpp:
1159         (RenderFlow::layout):
1160         (RenderFlow::layoutBlockChildren):
1161         * khtml/rendering/render_flow.h:
1162         * khtml/rendering/render_object.h:
1163
1164 2002-10-18  Darin Adler  <darin@apple.com>
1165
1166         * Makefile.am: Move dependency so clean happens before build.
1167
1168 2002-10-17  Richard Williamson  <rjw@apple.com>
1169
1170         Support for drawing frame borders and frame resizing. (fixes 2982466).
1171
1172         * khtml/rendering/render_frames.cpp:
1173         (RenderFrameSet::userResize):
1174         * kwq/WebCoreBridge.h:
1175         * kwq/WebCoreBridge.mm:
1176         (-[WebCoreBridge frameBorderStyle]):
1177         * kwq/qt/qframe.h:
1178
1179 2002-10-17  Darin Adler  <darin@apple.com>
1180
1181         - fixed 2807340 -- Alex is case sensitive for anchors, but
1182         should not be in quirks mode (other browsers aren't)
1183
1184         * khtml/dom/html_misc.cpp: Touched this file to prevent us from requiring a
1185         full build. Damned header dependencies still don't work right.
1186
1187         * khtml/html/html_miscimpl.h: Add caseSensitive parameters.
1188         * khtml/html/html_miscimpl.cpp:
1189         (HTMLCollectionImpl::getNamedItem): Add caseSensitive parameter, and compare
1190         by converting both to lower case if it's false and pass it on when recursing.
1191         (HTMLCollectionImpl::namedItem): Pass along a caseSensitive parameter.
1192         (HTMLFormCollectionImpl::getNamedItem): Pass along a caseSensitive parameter.
1193         (HTMLFormCollectionImpl::getNamedFormItem): Pass along, and handle, it.
1194         (HTMLFormCollectionImpl::getNamedImgItem): Ditto.
1195         (HTMLFormCollectionImpl::nextNamedItemInternal): Pass true for caseSensitive.
1196
1197         * khtml/khtml_part.cpp: (KHTMLPart::gotoAnchor):
1198         Pass false for the new caseSensitive parameter to namedItem when the document
1199         mode is not strict.
1200
1201         * kwq/KWQListBox.mm: (QListBox::sizeForNumberOfLines): Removed a stray NSLog
1202         that I left in by accident.
1203
1204 2002-10-17  Darin Adler  <darin@apple.com>
1205
1206         - fixed 3052547 -- <select> doesn't size properly (size > 1)
1207
1208         * khtml/rendering/render_form.cpp:
1209         (RenderLineEdit::slotReturnPressed): #if !APPLE_CHANGES around some unused
1210         code in here.
1211         (RenderSelect::updateFromElement): Fix bug where it was using Multi here, but
1212         Extended elsewhere for the selection mode.
1213         (RenderSelect::layout): Change code so that QListBox handles the sizing.
1214
1215         * kwq/KWQListBox.h: Removed a lot of unused stuff, made other things use inlines.
1216         * kwq/KWQListBox.mm: Rewrote most of the file contents. Made a new
1217         QListBox::sizeForNumberOfLines method. We will have to port this to NSTableView
1218         rather than NSBrowser.
1219
1220 2002-10-17  Darin Adler  <darin@apple.com>
1221
1222         - fixed 3078245 -- REGRESSION: lightgrey displays as black, used
1223         to display as white, should display light gray
1224
1225         * kwq/KWQColor.mm: (getNamedColors): For every color with the name
1226         "gray" in it, also include the version spelled "grey" as other
1227         browsers seem to.
1228
1229 2002-10-17  David Hyatt  <hyatt@apple.com>
1230
1231         Make navigator.product dynamic based off user agent (i.e.,
1232         make it participate in spoofing too).
1233         
1234         * khtml/ecma/kjs_navigator.cpp:
1235         (Navigator::getValueProperty):
1236
1237 === Alexander-28 ===
1238
1239 2002-10-17  Darin Adler  <darin@apple.com>
1240
1241         - fixed 3077856 -- REGRESSION: scroll to fragment doesn't work
1242         (except when Alex started from command line)
1243
1244         * kwq/kparts/browserextension.h: Initialize reload to false. It was
1245         uninitialized, and when true was preventing anchor navigation from working.
1246
1247 2002-10-17  Darin Adler  <darin@apple.com>
1248
1249         - fixed 3075992 -- Hang in khtml::RenderFlow::lowestPosition() trying to
1250         render http://avoyagetoarcturus.blogspot.com/
1251
1252         * khtml/rendering/render_flow.cpp:
1253         (RenderFlow::lowestPosition): Don't recurse on the same child twice.
1254         (RenderFlow::rightmostPosition): Ditto.
1255
1256 2002-10-17  David Hyatt  <hyatt@apple.com>
1257
1258         Fix bayarea.com.  My implementation of offsetParent was
1259         flawed.  And to think I was blaming Gecko... ;)
1260         
1261         * khtml/rendering/render_object.cpp:
1262         (RenderObject::offsetParent):
1263
1264 2002-10-16  Darin Adler  <darin@apple.com>
1265
1266         - fixed 3061103 -- Line-breaks lost when submitting after pasting text from
1267         MSIE into Alexander textarea
1268
1269         * kwq/KWQLineEdit.mm: (QLineEdit::text):
1270         * kwq/KWQTextEdit.mm: (QTextEdit::text):
1271         Turn \r\n sequences and standalone \r characters into \n characters on the way
1272         out of AppKit land and into KHTML land. I didn't try to make this efficient
1273         for the common case because these are not time-critical functions.
1274
1275 2002-10-16  Richard Williamson  <rjw@apple.com>
1276
1277         Fixed a few regressions in drawing of frame resize handle
1278         in preparation for drawing frame borders and completing
1279         2982466.
1280         
1281         * khtml/rendering/render_frames.cpp:
1282         (RenderFrameSet::userResize):
1283         * kwq/KWQPainter.mm:
1284         (QPainter::drawRect):
1285         * kwq/qt/qscrollview.h:
1286         * kwq/KWQScrollView.mm:
1287         (QScrollView::updateContents):
1288         * kwq/KWQWidget.mm:
1289         (QWidget::enableFlushDrawing):
1290         
1291         Use static_cast everywhere DOM::NodeImpl is cast to
1292         subclass.
1293         
1294         * kwq/WebCoreDOMNode.mm:
1295         (-[WebCoreDOMNode DOM::]):
1296         (-[WebCoreDOMNodeList DOM::]):
1297         (-[WebCoreDOMNamedNodeMap DOM::]):
1298         (-[WebCoreDOMAttr DOM::]):
1299
1300 2002-10-16  David Hyatt  <hyatt@apple.com>
1301
1302         Fix crash on pages with bulleted lists.  Making sure the list
1303         item marker doesn't get a layer (which means it has to be
1304         painted by hand now by the list item object).
1305         
1306         * khtml/rendering/render_box.cpp:
1307         (RenderBox::setStyle):
1308         * khtml/rendering/render_list.cpp:
1309         (RenderListItem::printObject):
1310         * khtml/rendering/render_list.h:
1311         * khtml/rendering/render_object.h:
1312
1313 2002-10-16  Darin Adler  <darin@apple.com>
1314
1315         - fixed 3072542 -- double "&" in submit button
1316
1317         * khtml/rendering/render_form.cpp: (RenderSubmitButton::rawText):
1318         Don't double the "&" character, not needed for KWQ.
1319
1320 2002-10-16  David Hyatt  <hyatt@apple.com>
1321
1322         When render objects were being dynamically wrapped in anonymous
1323         blocks, the layer parenting connection was being broken without
1324         being reconnected when the wrapping finished.  This patch
1325         shifts the layer connection into the functions that are also
1326         called in the dynamic case.
1327
1328         With this fix, all objects on mrskin finally show up.  Yeehah.
1329         brainjar.com's brain is back too.
1330
1331         This patch also stops treating images as inline if they are
1332         using abs/fixed positioning, since according to the CSS spec,
1333         abs/fixed positioned elements should be treated as block-level
1334         content.
1335         
1336         * khtml/rendering/render_container.cpp:
1337         (RenderContainer::addChild):
1338         (RenderContainer::appendChildNode):
1339         (RenderContainer::insertChildNode):
1340         * khtml/rendering/render_image.cpp:
1341         (RenderImage::setStyle):
1342
1343 2002-10-16  Darin Adler  <darin@apple.com>
1344
1345         - fixed 3045570 -- can't select a printer at inkfinder.com
1346
1347         * khtml/khtml_part.cpp: (KHTMLPart::processObjectRequest):
1348         Call the new openURL for the case where we are reusing a part.
1349         We do this backwards from how KHTML does, so it's twisted.
1350
1351         * kwq/KWQKHTMLPartImpl.h: Add openURL.
1352         * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::openURL):
1353         Tell the bridge to load the URL.
1354
1355         * kwq/mac-encodings.txt: Tweak Korean encoding names.
1356
1357 2002-10-16  David Hyatt  <hyatt@apple.com>
1358
1359         A very substantial change.  Absolute/fixed positioned elements that
1360         are NOT renderflows were not getting layers constructed for them.
1361         They do now.
1362
1363         Also, floats now have layers constructed for them.  This allows
1364         printSpecialObjects to be completely eliminated, enables smarter
1365         damge rect intersection testing for faster painting, and fixes
1366         regressions on sites like www.demian5.com.
1367         
1368         * khtml/rendering/render_box.cpp:
1369         (RenderBox::setStyle):
1370         * khtml/rendering/render_flow.cpp:
1371         (RenderFlow::printObject):
1372         (RenderFlow::addOverHangingFloats):
1373         (RenderFlow::printTree):
1374         * khtml/rendering/render_flow.h:
1375         * khtml/rendering/render_layer.cpp:
1376         (RenderLayer::constructZTree):
1377         * khtml/rendering/render_root.cpp:
1378         (RenderRoot::printObject):
1379         * khtml/rendering/render_table.cpp:
1380         (RenderTable::print):
1381
1382 2002-10-16  Richard Williamson  <rjw@apple.com>
1383
1384         Removed bogus code.
1385         
1386         * kwq/KWQKHistoryProvider.mm:
1387
1388 2002-10-15  Richard Williamson  <rjw@apple.com>
1389
1390         * kwq/WebCoreBridge.mm:
1391         (attributedString):
1392         Don't convert element unless it has a renderer.
1393
1394         * kwq/WebCoreDOMNode.mm:
1395         (-[WebCoreDOMAttr DOM::]):
1396         (-[WebCoreDOMAttr name]):
1397         (-[WebCoreDOMAttr specified]):
1398         (-[WebCoreDOMAttr value]):
1399         (-[WebCoreDOMAttr ownerElement]):
1400         (-[WebCoreDOMElement tagName]):
1401         (-[WebCoreDOMElement setAttribute::]):
1402         (-[WebCoreDOMElement removeAttribute:]):
1403         (-[WebCoreDOMElement getAttributeNode:]):
1404         (-[WebCoreDOMElement removeAttributeNode:]):
1405         (-[WebCoreDOMElement getElementsByTagName:]):
1406         (-[WebCoreDOMElement getAttributeNS::]):
1407         (-[WebCoreDOMElement setAttributeNS:::]):
1408         (-[WebCoreDOMCharacterData data]):
1409         (-[WebCoreDOMCharacterData setData:]):
1410         (-[WebCoreDOMCharacterData length]):
1411         (-[WebCoreDOMCharacterData substringData::]):
1412         (-[WebCoreDOMCharacterData appendData:]):
1413         (-[WebCoreDOMCharacterData insertData::]):
1414         (-[WebCoreDOMCharacterData deleteData::]):
1415         (-[WebCoreDOMText splitText:]):
1416         (-[WebCoreDOMProcessingInstruction data]):
1417         (-[WebCoreDOMProcessingInstruction setData:]):
1418         * kwq/WebCoreDOMPrivate.h:
1419         API cleanup.
1420
1421 2002-10-15  David Hyatt  <hyatt@apple.com>
1422
1423         More work on making blocks correctly compute their maximal
1424         positive and negative margins.  Adding code to ensure
1425         that floats and absolute/fixed positioned elements know
1426         not to collapse with children or with themselves.  Also adding
1427         code to teach empty blocks that they can collapse their own
1428         margins together.
1429         
1430         * khtml/rendering/render_flow.cpp:
1431         (RenderFlow::layout):
1432         (RenderFlow::layoutBlockChildren):
1433
1434 2002-10-15  Darin Adler  <darin@apple.com>
1435
1436         WebCore support for using referrer even in loads that are not initiated
1437         by WebCore itself.
1438
1439         * kwq/KWQKHTMLPartBrowserExtension.mm:
1440         (KHTMLPartBrowserExtension::createNewWindow): Don't pass a referrer.
1441         We get the referrer from the part.
1442
1443         * kwq/KWQKHTMLPartImpl.h: Add a new referrer method that works on the
1444         part, and remove the old one that got it from the URL arguments.
1445         * kwq/KWQKHTMLPartImpl.mm:
1446         (KWQKHTMLPartImpl::bridgeForFrameName): Don't pass a referrer when
1447         creating a new window.
1448         (KWQKHTMLPartImpl::openURLRequest): Don't pass a referrer when doing a load.
1449         (KWQKHTMLPartImpl::urlSelected): Don't pass a referrer when doing a load.
1450         (KWQKHTMLPartImpl::createPart): Don't pass a referrer when creating a child
1451         frame for this window.
1452         (KWQKHTMLPartImpl::submitForm): Don't pass a referrer when doing a load.
1453         (KWQKHTMLPartImpl::referrer): Added.
1454
1455         * kwq/KWQLoaderImpl.mm: (KWQServeRequest): Don't pass a referrer when starting
1456         a load.
1457         * kwq/WebCoreBridge.h: Add referrer method. Remove referrer parameter from
1458         many other methods.
1459         * kwq/WebCoreBridge.mm: (-[WebCoreBridge referrer]): Added.
1460
1461 2002-10-15  Darin Adler  <darin@apple.com>
1462
1463         - fixed 3021713 -- text selection background obliterates descenders
1464         (in www.theregister.co.uk articles)
1465         - fixed 3038207 -- Selected link text doesn't draw its link underline
1466
1467         * khtml/rendering/render_text.cpp:
1468         (TextSlave::printSelection): Don't draw text at all, just draw a selection background.
1469         (RenderText::printObject): Draw in two passes. Draw the selection background in the
1470         first pass, and the text in the second pass. That way pieces of the background won't
1471         cover any other text or adornments, like underlines.
1472
1473 2002-10-15  Darin Adler  <darin@apple.com>
1474
1475         * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::urlSelected):
1476         Move the special case of a different anchor within the same
1477         page into WebKit from here.
1478
1479         * kwq/kdecore/kurl.h: Mark urlcmp as a friend.
1480         * kwq/KWQKURL.mm: (urlcmp): Implement the ignoreRef feature, which
1481         is needed to make the KHTMLPart::openURL function work right.
1482
1483         * kwq/WebCoreBridge.h: Removed addBackForwardItemWithURL:anchor:
1484         and added URL method.
1485         * kwq/WebCoreBridge.mm: (-[WebCoreBridge URL]): Added.
1486
1487 2002-10-15  Darin Adler  <darin@apple.com>
1488
1489         - fixed 3074558 -- frames multiply at: http://www.iarsn.com/
1490
1491         The key was to make the name attribute work properly.
1492
1493         * khtml/ecma/kjs_window.cpp:
1494         (Window::get): Enable the "name" attribute.
1495         (Window::put): Enable the "name" attribute, but don't do the
1496         conversion to an 8-bit string -- leave it as a QString.
1497         * kwq/WebCoreBridge.h: Add setName/name methods.
1498         * kwq/WebCoreBridge.mm:
1499         (-[WebCoreBridge setName:]): Added. Calls part->setName().
1500         (-[WebCoreBridge name]): Added. Calls part->name().
1501         * kwq/kparts/part.h: Added setName/name to ReadOnlyPart.
1502
1503         * kwq/KWQKHTMLPartImpl.mm: Remove old bogusish comment.
1504
1505 2002-10-15  Richard Williamson  <rjw@apple.com>
1506
1507         Added text color to attributed string conversion.
1508         
1509         * kwq/WebCoreBridge.mm:
1510         (attributedString):
1511
1512 2002-10-15  Richard Williamson  <rjw@apple.com>
1513
1514         Added API to get attributed string from bridge.
1515         Added API to get selection in terms of the DOM API
1516         from the bridge.
1517         
1518         * kwq/WebCoreBridge.h:
1519         * kwq/WebCoreBridge.mm:
1520         (attributedString):
1521         (-[WebCoreBridge selectionStart]):
1522         (-[WebCoreBridge selectionStartOffset]):
1523         (-[WebCoreBridge selectionEnd]):
1524         (-[WebCoreBridge selectionEndOffset]):
1525
1526 2002-10-15  Darin Adler  <darin@apple.com>
1527
1528         - fixed 3054791 -- crash in WebCoreSettings _updateAllViews changing font
1529
1530         * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::~KWQKHTMLPartImpl):
1531         Pass in the "this" pointer so that the right instance is removed from the
1532         instances list. Before, we would always remove the first instance from the
1533         list, leaving the list broken.
1534
1535 2002-10-15  Ken Kocienda  <kocienda@apple.com>
1536
1537         Fixed an "unused variable" build breaker. Note that I just 
1538         commented out the code and put a FIXME, as I know this is code
1539         that David has been banging on a lot. This should be either
1540         used for real or removed eventually, but I'll leave that for 
1541         Hyatt.
1542
1543         * khtml/rendering/render_flow.cpp:
1544         (RenderFlow::layoutBlockChildren):
1545
1546 2002-10-14  David Hyatt  <hyatt@apple.com>
1547
1548         More collapsing margin surgery.  Working on setting up blocks 
1549         to properly compute their collapsed margins (without actually changing
1550         the obsolete collapsing behavior yet).
1551         
1552         * khtml/rendering/render_flow.cpp:
1553         (RenderFlow::RenderFlow):
1554         (RenderFlow::layout):
1555         (RenderFlow::layoutBlockChildren):
1556         * khtml/rendering/render_flow.h:
1557
1558 2002-10-14  David Hyatt  <hyatt@apple.com>
1559
1560         Adding helper functions for handling of collapsing margins.
1561         Not used yet.
1562         
1563         * khtml/rendering/render_object.h:
1564
1565 2002-10-14  Darin Adler  <darin@apple.com>
1566
1567         Fixed problems with named colors.
1568
1569         * kwq/KWQColor.mm: (QColor::setNamedColor): Check named colors before
1570         hex codes for colors because our hex code parsing is now lenient enough
1571         that many names qualify.
1572
1573 2002-10-14  David Hyatt  <hyatt@apple.com>
1574
1575         Really fixing zeldman.com this time.  This disabling stuff
1576         is complicated! :)
1577         
1578         * khtml/html/html_headimpl.cpp:
1579         (HTMLLinkElementImpl::parseAttribute):
1580         (HTMLLinkElementImpl::setStyleSheet):
1581         (HTMLLinkElementImpl::sheetLoaded):
1582
1583 2002-10-14  David Hyatt  <hyatt@apple.com>
1584
1585         Stop the insanity.  Make sure that a sheet that is disabled
1586         while it is still loading is removed from the doc's list
1587         of pending sheets (for FOUC checks).
1588
1589         Fixes zeldman.com.
1590         
1591         * khtml/html/html_headimpl.cpp:
1592         (HTMLLinkElementImpl::parseAttribute):
1593
1594 2002-10-14  David Hyatt  <hyatt@apple.com>
1595
1596         Implementing the ability to individually enable/disable
1597         both preferred and alternate stylesheets.  Enabling/disabling
1598         sheets via the disabled property of the <link> element overrides
1599         whether or not a sheet happens to be alternate or preferred.
1600
1601         This new implementation of sheet disabling/enabling was a missing
1602         piece of our HTML4 compliance, and was used by the Wired 
1603         site to implement its text sizing mechanism.
1604         
1605         * khtml/html/html_headimpl.cpp:
1606         (HTMLLinkElementImpl::HTMLLinkElementImpl):
1607         (HTMLLinkElementImpl::parseAttribute):
1608         (HTMLLinkElementImpl::process):
1609         * khtml/html/html_headimpl.h:
1610         * khtml/xml/dom_docimpl.cpp:
1611         (DocumentImpl::recalcStyleSelector):
1612
1613 2002-10-11  Richard Williamson   <rjw@apple.com>
1614
1615         Remove debugging.
1616         
1617         * kwq/WebCoreDOMDocument.mm:
1618         (+[WebCoreDOMDocument documentWithImpl:DOM::]):
1619         * kwq/WebCoreDOMNode.mm:
1620         (-[WebCoreDOMNode lastChild]):
1621
1622 2002-10-11  Richard Williamson   <rjw@apple.com>
1623
1624         More DOM/attributed string work.  Still need to fix more
1625         inappropriate casting problems.
1626         
1627         * khtml/dom/dom_node.cpp:
1628         (Node::lastChild):
1629         * khtml/xml/dom_nodeimpl.cpp:
1630         (NodeImpl::lastChild):
1631         (NodeBaseImpl::lastChild):
1632         * khtml/xml/dom_nodeimpl.h:
1633         * kwq/KWQKHTMLPartImpl.cpp:
1634         (KWQKHTMLPartImpl::selectionStartOffset):
1635         (KWQKHTMLPartImpl::selectionEndOffset):
1636         (KWQKHTMLPartImpl::selectionStart):
1637         (KWQKHTMLPartImpl::selectionEnd):
1638         * kwq/KWQKHTMLPartImpl.h:
1639         * kwq/WebCoreBridge.h:
1640         * kwq/WebCoreBridge.mm:
1641         (-[WebCoreBridge DOMDocument]):
1642         (-[WebCoreBridge setSelectionFrom:startOffset:to:endOffset:]):
1643         (attributedString):
1644         (-[WebCoreBridge selectedAttributedString]):
1645         (-[WebCoreBridge attributedStringFrom:startOffset:to:endOffset:]):
1646         * kwq/WebCoreDOMDocument.mm:
1647         (-[WebCoreDOMDocumentType DOM::]):
1648         (-[WebCoreDOMDocumentType name]):
1649         (-[WebCoreDOMDocumentType entities]):
1650         (-[WebCoreDOMDocumentType notations]):
1651         (-[WebCoreDOMDocumentType publicId]):
1652         (-[WebCoreDOMDocumentType systemId]):
1653         (-[WebCoreDOMDocumentType internalSubset]):
1654         (-[WebCoreDOMImplementation DOM::]):
1655         (-[WebCoreDOMImplementation hasFeature::]):
1656         (-[WebCoreDOMImplementation createDocument:::]):
1657         (+[WebCoreDOMDocument documentWithImpl:DOM::]):
1658         (-[WebCoreDOMDocument DOM::]):
1659         (-[WebCoreDOMDocument doctype]):
1660         (-[WebCoreDOMDocument implementation]):
1661         (-[WebCoreDOMDocument documentElement]):
1662         (-[WebCoreDOMDocument createElement:]):
1663         (-[WebCoreDOMDocument createElementNS::]):
1664         (-[WebCoreDOMDocument createDocumentFragment]):
1665         (-[WebCoreDOMDocument createTextNode:]):
1666         (-[WebCoreDOMDocument createComment:]):
1667         (-[WebCoreDOMDocument createCDATASection:]):
1668         (-[WebCoreDOMDocument createProcessingInstruction::]):
1669         (-[WebCoreDOMDocument createAttribute:]):
1670         (-[WebCoreDOMDocument createAttributeNS::]):
1671         (-[WebCoreDOMDocument createEntityReference:]):
1672         (-[WebCoreDOMDocument getElementById:]):
1673         (-[WebCoreDOMDocument getElementsByTagName:]):
1674         (-[WebCoreDOMDocument getElementsByTagNameNS::]):
1675         (-[WebCoreDOMDocument importNode::]):
1676         * kwq/WebCoreDOMNode.mm:
1677         (-[WebCoreDOMNode initWithImpl:DOM::]):
1678         (-[WebCoreDOMNode firstChild]):
1679         (-[WebCoreDOMNode lastChild]):
1680         * kwq/WebCoreDOMPrivate.h:
1681         * kwq/WebCoreBridge.mm:
1682         (-[WebCoreBridge setSelectionFrom:startOffset:to:endOffset:]):
1683         (recursive_toHTML):
1684         (attributedString):
1685
1686 2002-10-11  David Hyatt  <hyatt@apple.com>
1687
1688         Fix for 3058829, assertion caused by table cell with
1689         incorrect display type.  Implemented a quirk that forces
1690         <td>s of display: block to construct table cells as
1691         rendering objects. 
1692         
1693         * khtml/rendering/render_object.cpp:
1694         (RenderObject::createObject):
1695
1696 === Alexander-27 ===
1697
1698 2002-10-10  Darin Adler  <darin@apple.com>
1699
1700         - fixed 3047782 -- Alexander rejects some color strings that other browsers accept
1701
1702         * khtml/misc/helper.cpp: (khtml::setNamedColor): Put some of the code from this
1703         level that tries to accomodate bad colors in #if !APPLE_CHANGES, since we do most
1704         of the smarts in KWQ.
1705
1706         * kwq/KWQColor.mm:
1707         (hex2int): Tolerate non-hex digits, treating them as 0.
1708         (decodeColorFromHexColorString): Trim any number of leading # characters, and trailing
1709         " and ' characters. Handle strings of 4, 5, 7, 8, 10, and 11 hex digits, along with
1710         the existing 3, 6, 9, and 12.
1711
1712 2002-10-10  David Hyatt  <hyatt@apple.com>
1713
1714         Fix a subtle bug with layers.  When a parent is sorted with its
1715         children the parent's zindex must be treated as 0, so that
1716         negative children draw behind the layer's content and positive
1717         children (or auto children) draw in front of the layer's content.
1718
1719         This fix makes chrysler.com work again (and doubtless many other
1720         messed up DHTML sites).
1721         
1722         * khtml/rendering/render_layer.cpp:
1723         (RenderLayer::constructZTree):
1724         (RenderLayer::RenderZTreeNode::constructLayerList):
1725
1726 2002-10-09  Richard Williamson  <rjw@apple.com>
1727
1728         Implemented string conversion functions.
1729         
1730         * kwq/WebCoreDOMDocument.mm:
1731         (domStringToNSString):
1732         (NSStringToDOMString):
1733
1734 2002-10-09  Darin Adler  <darin@apple.com>
1735
1736         - fixed 3069264 -- REGRESSION: windows created for links with
1737         target=blank start out hidden (window menu only)
1738
1739         * kwq/WebCoreBridge.h: Removed openNewWindowWithURL:referrer:frameName: and
1740         added createWindowWithURL:referrer:frameName: and showWindow.
1741
1742         * kwq/KWQKHTMLPartBrowserExtension.mm:
1743         (KHTMLPartBrowserExtension::createNewWindow): Call createWindowWithURL,
1744         and then showWindow after the window is set up. Also change the code that
1745         flips coordinates to always use the height of the first screen instead of
1746         using the height of the screen the window is on, which sounds right, but
1747         is wrong.
1748
1749         * kwq/KWQKHTMLPartImpl.mm:
1750         (KWQKHTMLPartImpl::bridgeForFrameName): Call createWindowWithURL and then
1751         showWindow in the case where we create a window.
1752         (KWQKHTMLPartImpl::urlSelected): Remove unused command-click code. The real
1753         command-click code is in the browser now.
1754
1755 2002-10-09  Darin Adler  <darin@apple.com>
1756
1757         - fixed 3069749 -- crash in QString during third run of cvs-base
1758
1759         * kwq/KWQString.mm:
1760         (checkNodeAllocationPages): Added function to use for debugging.
1761         (_allocateNode): Clear the next pointer after removing a page from the free
1762         node list so that the free node list doesn't point at part of the used node list.
1763         (freeHandle): Change the code around so that the code to add the node to the
1764         free list works even in the case where this was the top from the used list.
1765         The old code would half-remove the node from the used list and not add it to
1766         the free list at all.
1767
1768 2002-10-09  Darin Adler  <darin@apple.com>
1769
1770         * WebCore.pbproj/project.pbxproj: Project Builder wanted to set encodings
1771         for new files. Maybe Richard is not using the new Project Builder on all
1772         his machines?
1773
1774         * kwq/KWQString.mm: (_allocateNode): Fix typo in comment.
1775
1776         * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::bridgeForFrameName): Tweak.
1777
1778 2002-10-09  David Hyatt  <hyatt@apple.com>
1779
1780         This was an unintentional checkin. backing out.
1781         
1782         * khtml/xml/dom_elementimpl.cpp:
1783         (NamedAttrMapImpl::removeNamedItem):
1784
1785 2002-10-08  Richard Williamson   <rjw@apple.com>
1786
1787         Added bridge method set the selection.
1788         
1789         * kwq/WebCoreBridge.h:
1790         * kwq/WebCoreBridge.mm:
1791         (-[WebCoreBridge setSelectionFrom:startOffset:to:endOffset:]):
1792
1793 2002-10-08  Richard Williamson   <rjw@apple.com>
1794
1795         Added bridge method to get the DOM document.
1796         
1797         * kwq/WebCoreBridge.h:
1798         * kwq/WebCoreBridge.mm:
1799         (-[WebCoreBridge DOMDocument]):
1800         * kwq/WebCoreDOM.h:
1801
1802 2002-10-08  Richard Williamson   <rjw@apple.com>
1803
1804         More DOM implementation.
1805         
1806         * khtml/dom/dom_text.h:
1807         * khtml/dom/dom_xml.h:
1808         * khtml/xml/dom_textimpl.h:
1809         * khtml/xml/dom_xmlimpl.h:
1810         * kwq/WebCoreDOM.h:
1811         * kwq/WebCoreDOMNode.mm:
1812         (DOM::CharacterDataImpl::createInstance):
1813         (DOM::TextImpl::createInstance):
1814         (DOM::ProcessingInstructionImpl::createInstance):
1815         (-[WebCoreDOMCharacterData data]):
1816         (-[WebCoreDOMCharacterData setData:]):
1817         (-[WebCoreDOMCharacterData length]):
1818         (-[WebCoreDOMCharacterData substringData::]):
1819         (-[WebCoreDOMCharacterData appendData:]):
1820         (-[WebCoreDOMCharacterData insertData::]):
1821         (-[WebCoreDOMCharacterData deleteData::]):
1822         (-[WebCoreDOMText splitText:]):
1823         (+[WebCoreDOMCDATASection CDATASectionWithImpl:DOM::]):
1824         (-[WebCoreDOMProcessingInstruction data]):
1825         (-[WebCoreDOMProcessingInstruction setData:]):
1826         * kwq/WebCoreDOMPrivate.h:
1827         * kwq/WebDOMElement.h:
1828
1829 2002-10-08  Richard Williamson   <rjw@apple.com>
1830
1831         Implemented WebCoreDOMElement.
1832         Fixed extra deref of impl in subclasses
1833         of WebCoreDOMNode.
1834         
1835         * khtml/dom/dom_element.h:
1836         * khtml/dom/dom_node.h:
1837         * khtml/xml/dom_elementimpl.h:
1838         * khtml/xml/dom_nodeimpl.h:
1839         * kwq/WebCoreDOMDocument.mm:
1840         (-[WebCoreDOMDocument initWithImpl:DOM::]):
1841         * kwq/WebCoreDOMNode.mm:
1842         (DOM::NodeListImpl::createInstance):
1843         (DOM::NamedNodeMapImpl::createInstance):
1844         (DOM::AttrImpl::createInstance):
1845         (DOM::ElementImpl::createInstance):
1846         (-[WebCoreDOMNodeList length]):
1847         (-[WebCoreDOMNodeList item:]):
1848         (-[WebCoreDOMAttr initWithImpl:DOM::]):
1849         (+[WebCoreDOMDocumentFragment documentFragmentWithImpl:DOM::]):
1850         (-[WebCoreDOMElement tagName]):
1851         (-[WebCoreDOMElement setAttribute::]):
1852         (-[WebCoreDOMElement removeAttribute:]):
1853         (-[WebCoreDOMElement getAttributeNode:]):
1854         (-[WebCoreDOMElement removeAttributeNode:]):
1855         (-[WebCoreDOMElement getElementsByTagName:]):
1856         (-[WebCoreDOMElement getAttributeNS::]):
1857         (-[WebCoreDOMElement setAttributeNS:::]):
1858         * kwq/WebDOMDocument.h:
1859         * kwq/WebDOMElement.h:
1860
1861 2002-10-08  Richard Williamson   <rjw@apple.com>
1862
1863         First cut at ObjC stubs for DOM API.  Finished the
1864         main classes.  Need to finish
1865         WebDOMElement, WebDOMElement, WebDOMElement, 
1866         WebDOMCDATASection, WebDOMText, WebDOMComment,
1867         WebDOMCharacterData and 
1868         
1869         * WebCore.pbproj/project.pbxproj:
1870         * khtml/dom/dom_doc.h:
1871         * khtml/dom/dom_element.h:
1872         * khtml/dom/dom_node.h:
1873         * khtml/xml/dom_docimpl.h:
1874         * khtml/xml/dom_elementimpl.h:
1875         * khtml/xml/dom_nodeimpl.h:
1876         * kwq/WebCoreDOM.h: Added.
1877         * kwq/WebCoreDOMDocument.mm: Added.
1878         (DOM::DOMImplementationImpl::createInstance):
1879         (DOM::DocumentTypeImpl::createInstance):
1880         (DOM::DocumentImpl::createInstance):
1881         (domStringToNSString):
1882         (NSStringToDOMString):
1883         (+[WebCoreDOMDocumentType documentTypeWithImpl:DOM::]):
1884         (-[WebCoreDOMDocumentType initWithImpl:DOM::]):
1885         (-[WebCoreDOMDocumentType dealloc]):
1886         (-[WebCoreDOMDocumentType DOM::]):
1887         (-[WebCoreDOMDocumentType name]):
1888         (-[WebCoreDOMDocumentType entities]):
1889         (-[WebCoreDOMDocumentType notations]):
1890         (-[WebCoreDOMDocumentType publicId]):
1891         (-[WebCoreDOMDocumentType systemId]):
1892         (-[WebCoreDOMDocumentType internalSubset]):
1893         (+[WebCoreDOMImplementation implementionatWithImpl:DOM::]):
1894         (-[WebCoreDOMImplementation initWithImpl:DOM::]):
1895         (-[WebCoreDOMImplementation dealloc]):
1896         (-[WebCoreDOMImplementation DOM::]):
1897         (-[WebCoreDOMImplementation hasFeature::]):
1898         (-[WebCoreDOMImplementation createDocument:::]):
1899         (+[WebCoreDOMDocument documentWithImpl:DOM::]):
1900         (-[WebCoreDOMDocument initWithImpl:DOM::]):
1901         (-[WebCoreDOMDocument dealloc]):
1902         (-[WebCoreDOMDocument DOM::]):
1903         (-[WebCoreDOMDocument doctype]):
1904         (-[WebCoreDOMDocument implementation]):
1905         (-[WebCoreDOMDocument documentElement]):
1906         (-[WebCoreDOMDocument createElement:]):
1907         (-[WebCoreDOMDocument createElementNS::]):
1908         (-[WebCoreDOMDocument createDocumentFragment]):
1909         (-[WebCoreDOMDocument createTextNode:]):
1910         (-[WebCoreDOMDocument createComment:]):
1911         (-[WebCoreDOMDocument createCDATASection:]):
1912         (-[WebCoreDOMDocument createProcessingInstruction::]):
1913         (-[WebCoreDOMDocument createAttribute:]):
1914         (-[WebCoreDOMDocument createAttributeNS::]):
1915         (-[WebCoreDOMDocument createEntityReference:]):
1916         (-[WebCoreDOMDocument getElementById:]):
1917         (-[WebCoreDOMDocument getElementsByTagName:]):
1918         (-[WebCoreDOMDocument getElementsByTagNameNS::]):
1919         (-[WebCoreDOMDocument importNode::]):
1920         * kwq/WebCoreDOMNode.mm: Added.
1921         (DOM::NamedNodeMapImpl::createInstance):
1922         (DOM::AttrImpl::createInstance):
1923         (+[WebCoreDOMNode nodeWithImpl:DOM::]):
1924         (-[WebCoreDOMNode initWithImpl:DOM::]):
1925         (-[WebCoreDOMNode DOM::]):
1926         (-[WebCoreDOMNode dealloc]):
1927         (-[WebCoreDOMNode nodeName]):
1928         (-[WebCoreDOMNode nodeValue]):
1929         (-[WebCoreDOMNode setNodeValue:]):
1930         (-[WebCoreDOMNode nodeType]):
1931         (-[WebCoreDOMNode parentNode]):
1932         (-[WebCoreDOMNode firstChild]):
1933         (-[WebCoreDOMNode lastChild]):
1934         (-[WebCoreDOMNode previousSibling]):
1935         (-[WebCoreDOMNode nextSibling]):
1936         (-[WebCoreDOMNode ownerDocument]):
1937         (-[WebCoreDOMNode insert:before:]):
1938         (-[WebCoreDOMNode replace:child:]):
1939         (-[WebCoreDOMNode removeChild:]):
1940         (-[WebCoreDOMNode hasChildNodes]):
1941         (-[WebCoreDOMNode cloneNode:]):
1942         (-[WebCoreDOMNode normalize]):
1943         (-[WebCoreDOMNode isSupported::]):
1944         (-[WebCoreDOMNode namespaceURI]):
1945         (-[WebCoreDOMNode prefix]):
1946         (-[WebCoreDOMNode setPrefix:]):
1947         (-[WebCoreDOMNode localName]):
1948         (+[WebCoreDOMNodeList nodeListWithImpl:DOM::]):
1949         (-[WebCoreDOMNodeList initWithImpl:DOM::]):
1950         (-[WebCoreDOMNodeList DOM::]):
1951         (-[WebCoreDOMNodeList dealloc]):
1952         (+[WebCoreDOMNamedNodeMap namedNodeMapWithImpl:DOM::]):
1953         (-[WebCoreDOMNamedNodeMap initWithImpl:DOM::]):
1954         (-[WebCoreDOMNamedNodeMap DOM::]):
1955         (-[WebCoreDOMNamedNodeMap dealloc]):
1956         (-[WebCoreDOMNamedNodeMap length]):
1957         (-[WebCoreDOMNamedNodeMap getNamedItem:]):
1958         (-[WebCoreDOMNamedNodeMap setNamedItem:]):
1959         (+[WebCoreDOMAttr attrWithImpl:DOM::]):
1960         (-[WebCoreDOMAttr initWithImpl:DOM::]):
1961         (-[WebCoreDOMAttr DOM::]):
1962         (-[WebCoreDOMAttr dealloc]):
1963         (-[WebCoreDOMAttr name]):
1964         (-[WebCoreDOMAttr specified]):
1965         (-[WebCoreDOMAttr value]):
1966         (-[WebCoreDOMAttr ownerElement]):
1967         (+[WebCoreDOMCDATASection CDATASectionWithImpl:DOM::]):
1968         (-[WebCoreDOMCDATASection initWithImpl:DOM::]):
1969         (-[WebCoreDOMCDATASection DOM::]):
1970         (-[WebCoreDOMCDATASection dealloc]):
1971         * kwq/WebCoreDOMPrivate.h: Added.
1972         * kwq/WebDOMDocument.h: Added.
1973         * kwq/WebDOMElement.h: Added.
1974         * kwq/WebDOMNode.h: Added.
1975
1976 2002-10-09  David Hyatt  <hyatt@apple.com>
1977
1978         Fix a bug in my event handling code for layers.   This makes
1979         the links on ESPN.com work again (bug 3051636).  Yay!
1980         
1981         * khtml/rendering/render_layer.cpp:
1982         (RenderLayer::constructZTree):
1983         * khtml/xml/dom_elementimpl.cpp:
1984         (NamedAttrMapImpl::removeNamedItem):
1985         * kwq/qt/qrect.h:
1986
1987 2002-10-07  Darin Adler  <darin@apple.com>
1988
1989         - fixed 3037353 -- align="middle" elements not horizontally centered
1990
1991         * khtml/html/html_blockimpl.cpp: (HTMLDivElementImpl::parseAttribute):
1992         * khtml/html/html_tableimpl.cpp: (HTMLTablePartElementImpl::parseAttribute):
1993         Handle "middle" same as center in these two places.
1994
1995 2002-10-07  Darin Adler  <darin@apple.com>
1996
1997         WebCore part of implementation of multipart forms posting.
1998
1999         * kwq/WebCoreBridge.h: Add a contentType parameter to the bridge's
2000         [postWithURL:referrer:data:] method.
2001
2002         * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::submitForm):
2003         Extract the content type from the args, and pass it along to the bridge.
2004
2005 2002-10-07  Darin Adler  <darin@apple.com>
2006
2007         - fixed 3011025 -- Page up/down is not working when text area has focus
2008
2009         * kwq/KWQTextArea.mm:
2010         (-[KWQTextArea needsPanelToBecomeKey]): Return YES so we are considered a
2011         valid key view even when in normal tabbing mode. This fixes a problem with
2012         tabbing backwards into a text area.
2013         (-[KWQTextAreaTextView scrollPageUp:]): Added. Passes a scrollPageUp:
2014         selector along the responder chain if we are already scrolled to the top.
2015         (-[KWQTextAreaTextView scrollPageDown:]): Ditto.
2016
2017         * kwq/KWQNSTextField.mm: Remove unnecessary overrides of textDidEndEditing.
2018         Turns out the real fix was to override display to do nothing as a workaround
2019         for bug 2753974.
2020
2021 2002-10-07  Richard Williamson   <rjw@apple.com>
2022
2023         Added response to WebCore's CachedObject.  This allows us to correctly
2024         emulate the WebResourceLoadDelegate API when 're'loading an item
2025         from the WebCore cache.  
2026         
2027         * khtml/misc/loader.cpp:
2028         (CachedObject::~CachedObject):
2029         (CachedObject::setResponse):
2030         (Loader::receivedResponse):
2031         * khtml/misc/loader.h:
2032         * kwq/KWQLoaderImpl.h:
2033         * kwq/KWQLoaderImpl.mm:
2034         (-[WebCoreResourceLoader receivedResponse:]):
2035         (KWQCheckCacheObjectStatus):
2036         (KWQRetainResponse):
2037         (KWQReleaseResponse):
2038         * kwq/WebCoreBridge.h:
2039         * kwq/WebCoreResourceLoader.h:
2040
2041 2002-10-06  Darin Adler  <darin@apple.com>
2042
2043         - fixed 3046737 -- infinite loop in font name matching code on some pages
2044
2045         * kwq/KWQString.mm: (QString::replace): Removed the incorrect early exit if
2046         the passed in string was the empty string.
2047
2048 2002-10-04  Darin Adler  <darin@apple.com>
2049
2050         * kwq/KWQKURL.mm: (KURL::parse): Fix code that adds "//" to file URLs.
2051         The code was including the extra slashes as part of the path, which they are not.
2052         Verified with the tests in the Tests directory.
2053
2054 2002-10-03  Darin Adler  <darin@apple.com>
2055
2056         - fixed 3065730 -- Crash loading "My T-Mobile" page (in khtml::Decoder::decode)
2057
2058         * khtml/misc/decoder.cpp: (Decoder::decode): Fixed a mistake that would cause
2059         the loop to run off the end of the buffer, introduced back on 2002-08-30.
2060
2061 2002-10-03  Darin Adler  <darin@apple.com>
2062
2063         Add API to execute JavaScript.
2064
2065         * kwq/WebCoreBridge.h: Add method.
2066         * kwq/WebCoreBridge.mm:
2067         (-[WebCoreBridge executeJavaScriptFromString:]): Call through to
2068         KHTML. But only if the document is not nil. We need to figure out
2069         what to do in the case where the document is nil.
2070
2071 === Alexander-26 ===
2072
2073 2002-10-02  Darin Adler  <darin@apple.com>
2074
2075         Moved "overURL" handling out of WebCore into WebKit and Alex.
2076         Also separated the two levels of the "element dictionary" so they
2077         don't rely on having the same keys.
2078
2079         * khtml/khtml_part.h: Revert the APPLE_CHANGES to overURL.
2080         * khtml/khtml_part.cpp:
2081         (KHTMLPart::overURL): Removed the APPLE_CHANGES and just ifdef'd out
2082         the whole thing for our version.
2083         (KHTMLPart::khtmlMouseMoveEvent): Get rid of the APPLE_CHANGES and
2084         don't do any of the status bar setup.
2085
2086         * kwq/KWQKHTMLPartImpl.h: Remove overURL.
2087         * kwq/KWQKHTMLPartImpl.mm: Ditto.
2088
2089         * kwq/WebCoreBridge.h: Change keys so they don't match the WebKit ones so
2090         we don't accidentally rely on that. Add WebCoreElementLinkTarget.
2091
2092         * kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): Add code to
2093         set up WebCoreElementLinkTarget.
2094
2095 2002-10-01  Darin Adler  <darin@apple.com>
2096
2097         - fixed 3055076 -- window.scroll does a window.scrollby, not a window.scrollto
2098
2099         * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Moved a case so that the
2100         scroll code would scroll to, not by.
2101
2102 2002-10-01  David Hyatt  <hyatt@apple.com>
2103
2104         Fix the case sensitivity problem with attribute names 
2105         in HTML.  They are now lower-cased when being queried
2106         from the DOM. Bug 3058145.
2107         
2108         * khtml/xml/dom_docimpl.cpp:
2109         (DocumentImpl::attrName):
2110
2111 2002-10-01  David Hyatt  <hyatt@apple.com>
2112
2113         Make sure to keep the fix checked in for 1.18.  That fix is
2114         good.
2115         
2116         * khtml/rendering/render_table.cpp:
2117         (RenderTable::addColInfo):
2118
2119 2002-10-01  David Hyatt  <hyatt@apple.com>
2120
2121         Backing out change to render_table.cpp.  The original logic
2122         (in version 1.16) is correct.
2123         
2124         * khtml/rendering/render_table.cpp:
2125         (RenderTable::addColInfo):
2126
2127 2002-09-30  Darin Adler  <darin@apple.com>
2128
2129         * kwq/qt/qobject.h: Add the destroyed signal.
2130         * kwq/KWQObject.mm:
2131         (QObject::connect): Remove names of parentDestroyed and slotWidgetDestructed
2132         from the list of "slots OK to fail to connect without complaining".
2133         (QObject::QObject): Initialize the destroyed signal.
2134
2135         * kwq/qt/qguardedptr.h:
2136         * kwq/KWQGuardedPtr.mm:
2137         * kwq/KWQSignal.h:
2138         * kwq/KWQSlot.h:
2139         Rearrange includes so qobject.h can include KWQSignal.h.
2140
2141         * kwq/KWQSignal.mm: Tweak.
2142
2143         * kwq/KWQSlot.mm: Added support for the parentDestroyed slot in KJS::WindowQObject
2144         and the slotWidgetDestructed slot in khtml::RenderWidget.
2145
2146 2002-09-28  Darin Adler  <darin@apple.com>
2147
2148         Turn -Werror back on. There must have been some miscommunication
2149         about the fat build; this was supposed to have been on.
2150
2151         * WebCore.pbproj/project.pbxproj: Add -Werror back.
2152
2153         * kwq/WebCoreHistory.h: Add missing method to fix warning.
2154         * kwq/KWQKHistoryProvider.mm: Tweak.
2155
2156 2002-09-28  Darin Adler  <darin@apple.com>
2157
2158         Give the next fat build a better chance of working with the
2159         new gcc without turning -Werror off.
2160
2161         * khtml/css/cssparser.cpp: Use a macro to disable inlining.
2162         * khtml/html/htmltokenizer.cpp: Ditto.
2163         * khtml/misc/htmlhashes.cpp: Ditto.
2164
2165 2002-09-28  Darin Adler  <darin@apple.com>
2166
2167         - fixed 3022441 -- scroll bar is missing in window created with window.open
2168
2169         * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): The checks for extra
2170         parameters to window.open were using isNull, which checks for a null ValueImp
2171         pointer, not an "Undefined".
2172
2173 2002-09-28  Darin Adler  <darin@apple.com>
2174
2175         - fixed 2886111 -- changing font or size preference causes open
2176         windows to redraw incorrectly
2177
2178         * khtml/rendering/render_table.cpp: (RenderTable::addColInfo):
2179         Fix logic about when a recalc of the minWidth and maxWidth is needed.
2180
2181         Fixed bug where changing the text size multiplier would cause the
2182         window to redraw twice -- once with the text size changed, and then
2183         later with the layout changed.
2184
2185         * khtml/khtmlview.h: Added unscheduleRelayout.
2186         * khtml/khtmlview.cpp: (KHTMLView::unscheduleRelayout): Added.
2187
2188         * kwq/KWQKHTMLPartImpl.h: Added forceLayout.
2189         * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::forceLayout): Call
2190         both layout and unscheduleRelayout.
2191
2192         * kwq/WebCoreBridge.h: Add setNeedsLayout.
2193         * kwq/WebCoreBridge.mm:
2194         (-[WebCoreBridge forceLayout]): Call KWQKHTMLPartImpl::forceLayout.
2195         (-[WebCoreBridge setTextSizeMultiplier:]): Call forceLayout.
2196
2197 2002-09-27  Darin Adler  <darin@apple.com>
2198
2199         * khtml/rendering/render_table.cpp: (RenderTable::addColInfo):
2200         Fixed a > that should have been a < that prevented tables from
2201         changing sizes when table minimum widths changed.
2202
2203 2002-09-27  Darin Adler  <darin@apple.com>
2204
2205         - fixed 2937198 -- Checkboxes and radiobuttons don't align with title control in forms
2206
2207         * kwq/qt/qcheckbox.h: Add baselinePosition override.
2208         * kwq/KWQCheckBox.mm: Tweak the size constants.
2209         (QCheckBox::baselinePosition): Implement this. Line up baseline two pixels
2210         above the bottom, not at the bottom.
2211
2212         * kwq/qt/qradiobutton.h: Add baselinePosition override.
2213         * kwq/KWQRadioButton.mm: Tweak the size constants.
2214         (QRadioButton::baselinePosition): Implement this. Line up baseline two pixels
2215         above the bottom, not at the bottom.
2216
2217 2002-09-27  Chris Blumenberg  <cblu@apple.com>
2218
2219         WebPlugin clean up.
2220
2221         * kwq/KWQKConfigBase.mm:
2222         (KConfig::readEntry):
2223         * kwq/WebCoreViewFactory.h:
2224
2225 2002-09-27  Richard Williamson   <rjw@apple.com>
2226
2227         Fixed 3059237:  Visited links do not appear in a different color on yahoo.com
2228         Fixed 3051288:  visited links are not colored in local files
2229         Fixed 3060158:  REGRESSION: iframes added to session history
2230         Always use the canonical originally requested URL as the URL entered in history.
2231         
2232         * khtml/khtml_part.cpp:
2233         (KHTMLPart::begin):
2234         * kwq/KWQKHTMLPartImpl.h:
2235         * kwq/KWQKHTMLPartImpl.mm:
2236         (KWQKHTMLPartImpl::requestedURLString):
2237         * kwq/KWQKHistoryProvider.mm:
2238         * kwq/WebCoreBridge.h:
2239         * kwq/WebCoreHistory.h:
2240
2241 2002-09-28  David Hyatt  <hyatt@apple.com>
2242
2243         Fix for 3058119, doctype of HTML docs should be null.
2244         
2245         * khtml/dom/dom_doc.cpp:
2246
2247 2002-09-28  David Hyatt  <hyatt@apple.com>
2248
2249         DOM compliance. Fix for 3058100, hasFeature of HTML returns
2250         false. Oops.
2251         
2252         * khtml/xml/dom_docimpl.cpp:
2253         (DOMImplementationImpl::hasFeature):
2254
2255 2002-09-27  Darin Adler  <darin@apple.com>
2256
2257         - fixed 3060487 -- error connecting member slot to signal (KWQObject)
2258
2259         * kwq/KWQObject.mm: (QObject::connect): Add slotShowDocument to the list of slots that
2260         we don't care about hooking up.
2261
2262 2002-09-26  Darin Adler  <darin@apple.com>
2263
2264         - fixed 2953256 -- JavaScript window.moveTo() and window.moveBy() methods do not work
2265
2266         * kwq/KWQWindowWidget.mm: (KWQWindowWidget::frameGeometry): Fix calculation.
2267         It was returning the bottom left coordinate instead of the top left.
2268
2269 2002-09-26  Darin Adler  <darin@apple.com>
2270
2271         - fixed 3060459 -- REGRESSION: crash leaving page that sets cookie in JavaScript
2272         unload handler
2273
2274         * khtml/khtml_part.cpp: (KHTMLPart::begin): Call updatePolicyBaseURL to set
2275         the "policy base URL" on the documents so the cookie can be based on the URL
2276         of the main document.
2277
2278         * khtml/dom/html_document.h: Add setPolicyBaseURL.
2279         * khtml/dom/html_document.cpp: (HTMLDocument::setPolicyBaseURL): Call the impl.
2280
2281         * khtml/html/html_documentimpl.h: Add policyBaseURL, setPolicyBaseURL.
2282         * khtml/html/html_documentimpl.cpp: (HTMLDocumentImpl::setCookie): Pass the
2283         base URL that's stored here instead of getting at the part through the view,
2284         since the view will be 0 during the unload event.
2285
2286         * kwq/KWQKHTMLPartImpl.h: Add updatePolicyBaseURL and setPolicyBaseURL.
2287         * kwq/KWQKHTMLPartImpl.mm:
2288         (KWQKHTMLPartImpl::updatePolicyBaseURL): Set the base URL based on the URL
2289         if this is the topmost part, based on the parent's policy base URL if this
2290         is not the topmost part.
2291         (KWQKHTMLPartImpl::setPolicyBaseURL): Change the policy base URL for this
2292         part and all the subparts.
2293
2294 2002-09-26  Darin Adler  <darin@apple.com>
2295
2296         * kwq/WebCoreBridge.h: Use NSString for encoding name, not CFStringEncoding.
2297         * kwq/WebCoreBridge.mm:
2298         (-[WebCoreBridge addData:withOverrideEncoding:]): Ditto.
2299
2300 2002-09-26  Chris Blumenberg  <cblu@apple.com>
2301
2302         Added WebCoreElementImageLocationKey to the element dictionary.
2303
2304         * kwq/WebCoreBridge.h:
2305         * kwq/WebCoreBridge.mm:
2306         (-[WebCoreBridge elementAtPoint:]):
2307
2308 === Alexander-25 ===
2309
2310 2002-09-25  David Hyatt  <hyatt@apple.com>
2311
2312         Implement scrollX and scrollY on the window object.  This
2313         gets brainjar closer to reality. :)
2314         
2315         * khtml/ecma/kjs_window.cpp:
2316         (Window::get):
2317         * khtml/ecma/kjs_window.h:
2318
2319 2002-09-25  Darin Adler  <darin@apple.com>
2320
2321         Fix error with the color "indigo".
2322
2323         * kwq/KWQColor.mm: (getNamedColors): There were some spaces in our
2324         color table so we wouldn't handle indianred or indigo.
2325
2326 2002-09-25  Maciej Stachowiak  <mjs@apple.com>
2327
2328         - fixed 2854536 - New cookie policy: "accept cookies only from the
2329         same domain as the main page"
2330         
2331         * khtml/html/html_documentimpl.cpp:
2332         (HTMLDocumentImpl::setCookie):
2333         * kwq/KWQKCookieJar.h:
2334         * kwq/KWQKCookieJar.mm:
2335         (KWQKCookieJar::setCookie):
2336         * kwq/WebCoreCookieAdapter.h:
2337         * kwq/WebCoreCookieAdapter.m:
2338         (-[WebCoreCookieAdapter setCookies:forURL:policyBaseURL:]):
2339
2340 2002-09-24  Darin Adler  <darin@apple.com>
2341
2342         - fixed 3057928 -- lstat private/etc/localtime repeatedly reported
2343         by fs_usage when mouse is moved
2344
2345         * WebCore-tests.exp: Remove now-unneeded external entry points
2346         for QTime, QDate, QDateTime.
2347
2348         * kwq/qt/qdatetime.h:
2349         * kwq/KWQDateTime.mm:
2350         Redid QDateTime using CoreFoundation instead of time/localtime.
2351         This avoids constantly hitting the disk when getting the current
2352         time to stuff into an event.
2353
2354 2002-09-24  David Hyatt  <hyatt@apple.com>
2355
2356         Make sure we dispatch both a capturing and a bubbling event
2357         to target nodes. DOM lvl 2 event compliance.
2358         
2359         * ChangeLog:
2360         * khtml/xml/dom_nodeimpl.cpp:
2361         (NodeImpl::dispatchGenericEvent):
2362
2363 2002-09-24  Richard Williamson   <rjw@apple.com>
2364
2365         Fixed 3055078.  Ensure file: URLs have // before path.
2366         
2367         * kwq/KWQKURL.mm:
2368         (KURL::parse):
2369
2370 2002-09-24  David Hyatt  <hyatt@apple.com>
2371
2372         Better fix.  Clears the boolean when CLASS has no value.
2373         This will keep the style system from thinking you have
2374         a class when you don't.
2375         
2376         * khtml/html/html_elementimpl.cpp:
2377         (HTMLElementImpl::parseAttribute):
2378
2379 2002-09-24  David Hyatt  <hyatt@apple.com>
2380
2381         Fix updating of the document's notion of the focused node
2382         to happen on mouse down rather than click.  This matches
2383         the behavior of all other browsers (IE, Gecko, etc.).
2384
2385         This fixes the drawing of the outline on the brainjar.com
2386         DHTML menus.
2387         
2388         * khtml/khtmlview.cpp:
2389         (KHTMLView::dispatchMouseEvent):
2390
2391 2002-09-24  David Hyatt  <hyatt@apple.com>
2392
2393         Make sure that changes to the CLASS attribute mark the
2394         element as changed (as if a CSS property were added or
2395         removed).
2396
2397         This makes the brainjar.com rollovers work much better.
2398         
2399         * khtml/html/html_elementimpl.cpp:
2400         (HTMLElementImpl::parseAttribute):
2401
2402 2002-09-24  Chris Blumenberg  <cblu@apple.com>
2403
2404         Renamed element info keys to WebElement* instead of WebContextMenuElement*
2405
2406         * kwq/WebCoreBridge.h:
2407         * kwq/WebCoreBridge.mm:
2408         (-[WebCoreBridge elementAtPoint:]):
2409
2410 2002-09-24  Darin Adler  <darin@apple.com>
2411
2412         - fixed 3056579 -- various crashes at http://www.auspost.com.au/
2413
2414         Apparently the strings at this site were just the right length to expose a bug
2415         in our QString implementation, one that I probably introduced when fixing 3032072.
2416         One nice thing about this is that getting this correct could also result in a
2417         little bit of a speedup, as the internal buffer is used more.
2418
2419         * kwq/KWQString.mm:
2420         (QStringData::makeAscii): Set _maxAscii to QS_INTERNAL_BUFFER_CHARS when using
2421         the internal buffer instead of leaving it uninitialized.
2422         (QStringData::makeUnicode): Same for _maxUnicode.
2423
2424 2002-09-24  Darin Adler  <darin@apple.com>
2425
2426         Remove the focus border hack, which was no longer doing us any good.
2427
2428         * kwq/KWQNSTextField.h: Don't define FOCUS_BORDER_SIZE.
2429         * kwq/KWQNSTextField.mm: Remove KWQTextFieldCell.
2430         (-[KWQNSTextField updateSecureFieldFrame]): Don't inset by FOCUS_BORDER_SIZE.
2431         * kwq/qt/qlineedit.h: Don't override frameGeometry and setFrameGeometry any more.
2432         * kwq/KWQLineEdit.mm: (QLineEdit::sizeForCharacterWidth): Don't subtract
2433         the focus border size.
2434
2435 2002-09-24  Darin Adler  <darin@apple.com>
2436
2437         * kwq/mac-encodings.txt: Remove constant for Japanese auto-detect.
2438
2439 2002-09-24  Darin Adler  <darin@apple.com>
2440
2441         * kwq/KWQFileButton.mm: (KWQFileButton::paint): Fix typo.
2442
2443 2002-09-24  Darin Adler  <darin@apple.com>
2444
2445         Some improvements to the file button, including displaying the file without the
2446         extension if it's set that way by the user, and using the system font rather
2447         than hard-coding "Lucida Grande".
2448
2449         * kwq/KWQFileButton.h: Add _label field.
2450         * kwq/KWQFileButton.mm:
2451         (KWQFileButton::KWQFileButton): Set up label.
2452         (KWQFileButton::~KWQFileButton): Release label.
2453         (KWQFileButton::setFilename): Use NSFileManager componentsToDisplayForPath to
2454         figure out the appropriate label.
2455         (KWQFileButton::paint): Clip to passed-in rect, get font using systemFontOfSize,
2456         and use NSString drawing rather than our own.
2457
2458 2002-09-23  David Hyatt  <hyatt@apple.com>
2459
2460         Found the problem with the CSS W3C page.
2461         
2462         * khtml/xml/dom_docimpl.cpp:
2463         (DocumentImpl::recalcStyleSelector):
2464
2465 2002-09-23  Darin Adler  <darin@apple.com>
2466
2467         WebCore part of fixes for proper layering when drawing subframes.
2468
2469         * kwq/KWQWidget.mm: (QWidget::paint): Use the parent view in the "WebCoreFrameView"
2470         case so we update the scroll view too, not just the HTML part. Also use the passed in
2471         rectangle instead of always using the view bounds.
2472
2473         * kwq/KWQScrollView.mm: (QScrollView::updateContents): Call setNeedsDisplayInRect
2474         instead of displayRect.
2475
2476         * kwq/KWQPainter.mm:
2477         (QPainter::drawRect): Use NSRectFill and NSFrameRect instead of NSBezierPath.
2478         (QPainter::fillRect): Ditto.
2479
2480 2002-09-23  David Hyatt  <hyatt@apple.com>
2481
2482         Don't let alternate stylesheets delay render tree construction.
2483         
2484         * khtml/html/html_headimpl.cpp:
2485         (HTMLLinkElementImpl::HTMLLinkElementImpl):
2486         (HTMLLinkElementImpl::process):
2487         (HTMLLinkElementImpl::setStyleSheet):
2488         (HTMLLinkElementImpl::sheetLoaded):
2489         * khtml/html/html_headimpl.h:
2490
2491 \2002-09-23  David Hyatt  <hyatt@apple.com>
2492
2493         Make overflow:auto and scroll map to hidden until we figure
2494         out something better.
2495         
2496         * khtml/css/cssstyleselector.cpp:
2497  
2498 2002-09-23  Darin Adler  <darin@apple.com>
2499
2500         More refinement of the AppKit hackery.
2501
2502         * khtml/rendering/render_replaced.cpp:
2503         (RenderWidget::printObject): Pass in the painter and rect.
2504
2505         * kwq/qt/qwidget.h: Take a painter and rect parameter.
2506         * kwq/KWQWidget.mm: (QWidget::paint): Use painter; not working yet to use rect.
2507
2508         * kwq/KWQFileButton.h: Change paint to take painter and rect.
2509         * kwq/KWQFileButton.mm: (KWQFileButton::paint): Use painter.
2510
2511         * kwq/qt/qpainter.h: Added paintingDisabled() function.
2512         * kwq/KWQPainter.mm: (QPainter::paintingDisabled): Added.
2513
2514 2002-09-22  Darin Adler  <darin@apple.com>
2515
2516         Change code that moves NSViews out of the way to run inside drawRect
2517         after a layout change rather than running at layout time. This makes
2518         sure that views are in the right place when propagating dirty rects.
2519
2520         * kwq/KWQKHTMLPartImpl.h: Add paint method and _needsToSetWidgetsAside flag.
2521         * kwq/KWQKHTMLPartImpl.mm:
2522         (KWQKHTMLPartImpl::KWQKHTMLPartImpl): Set _needsToSetWidgetsAside to false.
2523         (KWQKHTMLPartImpl::layout): Set _needsToSetWidgetsAside to true. Don't call
2524         moveWidgetsAside any more.
2525         (KWQKHTMLPartImpl::paint): Moved the code here from the bridge, but also call
2526         moveWidgetsAside if _needsToSetWidgetsAside flag is set.
2527         * kwq/WebCoreBridge.mm:
2528         (-[WebCoreBridge drawRect:withPainter:]): Call KWQKHTMLPartImpl::paint, which
2529         is where I moved this code.
2530
2531 2002-09-21  Darin Adler  <darin@apple.com>
2532
2533         - fixed 3057265 -- REGRESSION: Crash loading http://www.undetectables.co.uk/
2534
2535         * khtml/khtml_part.cpp: (KHTMLPart::processObjectRequest):
2536         Remove special case for javascript and about:blank that was leading to a crash.
2537
2538 2002-09-21  Darin Adler  <darin@apple.com>
2539
2540         WebCore part of the new approach to AppKit drawing control.
2541         Works better than the previous try. Once we fix anomalies with focus rectangles
2542         and a minor problems with subframes this should work perfectly.
2543
2544         * kwq/qt/qwidget.h: The paint() method isn't virtual any more. Also remove flushDrawing().
2545         * kwq/KWQWidget.mm: (QWidget::enableFlushDrawing): Do a flushWindowIfNeeded instead
2546         of requiring a separate flushDrawing() call to do a flushWindow.
2547         (QWidget::paint): Added. Calls displayRectIgnoringOpacity.
2548
2549         * kwq/qt/qbutton.h: Remove paint() override.
2550         * kwq/KWQButton.mm: (QButton::QButton): No need for a subclass any more, so
2551         drop KWQNSButton. Also remove paint().
2552
2553         * kwq/qt/qcombobox.h: Remove paint() override.
2554         * kwq/KWQComboBox.mm: (QComboBox::QComboBox): No need for a subclass any more, so
2555         drop KWQNSPopUpButton. Also remove paint() method.
2556
2557         * kwq/qt/qlineedit.h: Remove paint() override.
2558         * kwq/KWQLineEdit.mm: Remove paint().
2559
2560         * kwq/KWQFileButton.mm: (KWQFileButton::clicked): Fix typo. Was calling paint
2561         instead of clicked on the base class.
2562
2563         * kwq/KWQNSTextField.h: Remove paint method.
2564         * kwq/KWQNSTextField.mm:
2565         (-[KWQNSTextField display]): Add a display method that does nothing to work around
2566         bug 2753974.
2567         (-[KWQSecureTextField display]): Ditto.
2568
2569         * khtml/rendering/render_frames.cpp: (RenderFrameSet::userResize): Remove call to flushDrawing.
2570
2571 2002-09-20  Richard Williamson   <rjw@apple.com>
2572
2573         Don't modify selection if no appropriate DOM::Node under
2574         mouse.
2575         
2576         * khtml/khtml_part.cpp:
2577         (KHTMLPart::khtmlMouseMoveEvent):
2578
2579 2002-09-20  Richard Williamson   <rjw@apple.com>
2580
2581         Assume triple click for selection if click count >= 3,
2582         not == 3, as in OS X.
2583         
2584         * khtml/khtml_part.cpp:
2585         (KHTMLPart::khtmlMousePressEvent):
2586
2587 2002-09-20  Richard Williamson   <rjw@apple.com>
2588
2589         Fixed crasher in findTextSlave.
2590         * khtml/rendering/render_text.cpp:
2591         (RenderText::findTextSlave):
2592
2593         Added error checks.
2594         * khtml/khtml_part.cpp:
2595         (startAndEndLineNodesIncludingNode):
2596
2597 2002-09-20  Richard Williamson   <rjw@apple.com>
2598
2599         Made double and triple click selection behave like
2600         like other selection in OS X.  That is, selection happens
2601         on mouse down, not mouse up, and can be extended by
2602         further dragging.  Triple click followed by dragging extends
2603         the selection a line at a time.
2604         
2605         * khtml/khtml_events.cpp:
2606         * khtml/khtml_events.h:
2607         * khtml/khtml_part.cpp:
2608         (KHTMLPart::customEvent):
2609         (firstSlaveAt):
2610         (lastSlaveAt):
2611         (startAndEndLineNodesIncludingNode):
2612         (KHTMLPart::khtmlMousePressEvent):
2613         (KHTMLPart::khtmlMouseDoubleClickEvent):
2614         (KHTMLPart::khtmlMouseMoveEvent):
2615         * khtml/khtml_part.h:
2616         * khtml/khtmlpart_p.h:
2617         * khtml/khtmlview.cpp:
2618         * khtml/khtmlview.h:
2619         * khtml/xml/dom_elementimpl.cpp:
2620         (ElementImpl::setAttribute):
2621         * kwq/WebCoreBridge.mm:
2622         (-[WebCoreBridge mouseUp:]):
2623
2624 2002-09-20  Darin Adler  <darin@apple.com>
2625
2626         * kwq/KWQFileButton.h: Add an icon.
2627         * kwq/KWQFileButton.mm:
2628         (KWQFileButton::KWQFileButton): Nil out icon.
2629         (KWQFileButton::~KWQFileButton): Release icon.
2630         (KWQFileButton::setFilename): Get icon with [NSWorkspace iconForFile:].
2631         (KWQFileButton::clicked): Set prompt string to "Choose", and start directory to "~".
2632         (KWQFileButton::sizeHint): Pad more for icon width.
2633         (KWQFileButton::frameGeometry): Ditto.
2634         (KWQFileButton::setFrameGeometry): Ditto.
2635         (KWQFileButton::paint): Draw icon. Draw "no file selected" if no filename.
2636
2637         * kwq/KWQKFileItem.mm: Our "nonimplementation" is good enough. Stop complaining.
2638         * kwq/KWQKnetaccess.mm: Ditto. Also just extract path when asked to download.
2639
2640 2002-09-20  Darin Adler  <darin@apple.com>
2641
2642         Some first steps toward implementing input=file.
2643
2644         * khtml/rendering/render_form.cpp:
2645         (RenderFileButton::RenderFileButton): Create a KWQFileButton as the widget.
2646         (RenderFileButton::calcMinMaxWidth): Use sizeHint().
2647         (RenderFileButton::updateFromElement): Call setFilename().
2648         (RenderFileButton::select): Don't try to selectAll() on m_edit.
2649
2650         * kwq/KWQFileButton.h: Added.
2651         * kwq/KWQFileButton.mm: Added.
2652         * kwq/qt/qhbox.h: Emptied.
2653         * kwq/KWQHBox.mm: Removed.
2654         * WebCore.pbproj/project.pbxproj: Removed KWQHBox.mm. Added KWQFileButton.
2655
2656 2002-09-20  Darin Adler  <darin@apple.com>
2657
2658         - fixed 3056605 -- REGRESSION: blank page at http://www.2ch.net/2ch.html
2659
2660         * kwq/mac-encodings.txt: When people say ShiftJIS, they really mean
2661         DOSJapanese. So do what they mean, not what they say.
2662
2663 2002-09-20  Darin Adler  <darin@apple.com>
2664
2665         - fixed 3055339 -- repro crash in RenderPartObject::updateWidget()
2666
2667         * khtml/khtml_part.cpp: (KHTMLPart::processObjectRequest):
2668         Only create a new part if we have no old part.
2669
2670         * kwq/KWQtextstream.mm: Remove some of the "not implemented" logging.
2671         Once we have logged that the stream is not created correctly, there's no need
2672         to continue logging each time something is written out to the non-stream.
2673
2674 2002-09-19  Richard Williamson   <rjw@apple.com>
2675
2676         Implemented double and triple click selection.
2677         
2678         * khtml/khtml_events.h:
2679         * khtml/khtml_part.cpp:
2680         (KHTMLPart::customEvent):
2681         (KHTMLPart::khtmlMouseDoubleClickEvent):
2682         (firstSlaveAt):
2683         (lastSlaveAt):
2684         (KHTMLPart::khtmlMouseTripleClickEvent):
2685         * khtml/khtml_part.h:
2686         * khtml/rendering/render_text.h:
2687         * kwq/WebCoreBridge.mm:
2688         (-[WebCoreBridge mouseUp:]):
2689
2690 2002-09-19  Darin Adler  <darin@apple.com>
2691
2692         - fixed 3045651 -- null-dereference in DOM::CharacterDataImpl constructor
2693         setting up text area element
2694
2695         * khtml/xml/dom_textimpl.cpp: (CharacterDataImpl::CharacterDataImpl):
2696         Set str to an empty DOMStringImpl instead of to 0. This was easier than
2697         going around finding all the places that don't like a str of 0.
2698
2699         * WebCore.pbproj/project.pbxproj: Let PB sort things as it likes.
2700
2701 === Alexander-24 ===
2702
2703 2002-09-18  Darin Adler  <darin@apple.com>
2704
2705         - fixed 3037974 -- successful Find does not deselect text field
2706
2707         * khtml/khtml_part.cpp: (KHTMLPart::checkCompleted):
2708         Turn off the code that restores the cursor position because we don't
2709         use the KHTML saveState/restoreState. But we should.
2710
2711         * khtml/xml/dom_docimpl.cpp:
2712         (DocumentImpl::setSelection): Call setFocusNode(0), because on the
2713         Macintosh, selection and focus are mutually exclusive.
2714         (DocumentImpl::close): Remove no-longer-needed APPLE_CHANGES.
2715         (DocumentImpl::setFocusNode): Set focus to the KHTMLView when focus
2716         is being removed from a particular node. Clear the selection when
2717         focus is set on a particular node because on the Macintosh, selection
2718         and focus are mutually exclusive.
2719
2720         * kwq/KWQKHTMLPartImpl.h: Add set/clearDocumentFocus functions that we can use
2721         to keep document's idea of focused node in sync. with AppKit's.
2722         * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::setDocumentFocus): Added.
2723         (KWQKHTMLPartImpl::clearDocumentFocus): Added.
2724
2725         * kwq/KWQNSTextField.mm:
2726         (-[KWQNSTextField becomeFirstResponder]): Call setDocumentFocus.
2727         (-[KWQSecureTextField becomeFirstResponder]): Call setDocumentFocus.
2728
2729         * kwq/qt/qwidget.h: Removed endEditing().
2730         * kwq/KWQWidget.mm: (QWidget::clearFocus): Call clearDocumentFocus.
2731         (QWidget::endEditing): Removed.
2732
2733         * khtml/rendering/render_form.h:
2734         * khtml/rendering/render_form.cpp:
2735         (RenderImageButton::RenderImageButton): Remove the KWQInvisibleButton
2736         hack, which is no longer needed.
2737         * kwq/KWQInvisibleButton.h: Removed.
2738         * kwq/KWQInvisibleButton.mm: Removed.
2739         * WebCore.pbproj/project.pbxproj: Removed KWQInvisibleButton.
2740
2741 2002-09-18  Darin Adler  <darin@apple.com>
2742
2743         - fixed 3027470 -- hitting tab when the google.com text field is selected
2744         (all bars hidden) makes border flash
2745
2746         * kwq/KWQNSTextField.mm:
2747         (-[KWQNSTextField textDidEndEditing:]): Added. Don't call super when the next
2748         valid key view is nil.
2749         (-[KWQSecureTextField textDidEndEditing:]): Ditto. Too bad we can't share code
2750         here. Maybe I'll figure out a way later.
2751
2752 2002-09-17  Darin Adler  <darin@apple.com>
2753
2754         - fixed 3025022 -- Crash in KWQKHTMLPartImpl::redirectionTimerStartedOrStopped()
2755
2756         * kwq/WebCoreBridge.mm: (-[WebCoreBridge dealloc]): Set the bridge on the part to
2757         nil just in case someone else is holding a reference, so we won't try to dispatch
2758         methods to an already-deallocated bridge.
2759
2760         - fixed 3028476 -- illegal instruction crash in KWQTimerCallback timerFired
2761
2762         * khtml/ecma/kjs_window.cpp: (WindowQObject::parentDestroyed):
2763         Remove APPLE_CHANGES to avoid calling killTimers(); we can call it
2764         now that we have a working implementation.
2765         * khtml/khtmlview.cpp:
2766         (KHTMLView::~KHTMLView): Remove APPLE_CHANGES that kills timers.
2767         All timers are killed by ~QObject now, just as in Qt.
2768         (KHTMLView::clear): Remove APPLE_CHANGES to avoid calling killTimers();
2769         we can call it now that we have a working implementation.
2770
2771         * kwq/KWQObject.mm:
2772         (QObject::~QObject): Call killTimers().
2773         (QObject::startTimer): Keep a dictionary keyed by QObject, with a dictionary
2774         of timers for each, rather than one global dictionary. This makes it efficient
2775         to kill all the timers for an object.
2776         (QObject::killTimer): Update for new level of dictionary.
2777         (QObject::killTimers): Kill all the timers in this object's timer dictionary
2778         rather than all timers in the world.
2779         (QObject::inherits): Add an ERROR for the case where the class name is unknown.
2780
2781 2002-09-17  Darin Adler  <darin@apple.com>
2782
2783         - fixed 3050818 -- Crash in relative-KURL constructor at site with _ in host name
2784
2785         * kwq/KWQKURL.mm: Change _ so that it's allowed in host names.
2786         (KURL::KURL): If base URL is invalid, make result invalid too.
2787
2788 2002-09-17  Richard Williamson   <rjw@apple.com>
2789
2790         * khtml/khtmlview.cpp:
2791         (KHTMLView::viewportMouseTripleClickEvent):
2792         Added implementation.  Same as viewportMouseReleaseEvent
2793         except dispatches additional MouseTripleClickEvent event.
2794         
2795         (KHTMLView::viewportMouseDoubleClickEvent):
2796         Send extra release event.  This emulates Qt
2797         behavior.
2798
2799         * kwq/WebCoreBridge.mm:
2800         (-[WebCoreBridge mouseUp:]):
2801         Don't send extra release event here, instead send
2802         it in viewportMouseDoubleClickEvent and also in
2803         viewportMouseTripleClickEvent so DOM doesn't get
2804         confused.
2805         
2806         * kwq/KWQColor.mm:
2807         (QColor::hsv):
2808         Fixed marklar divide by 0 problem.
2809         
2810 2002-09-17  Darin Adler  <darin@apple.com>
2811
2812         - fixed 2936933 -- Pages that claim to be UTF-8 but contain invalid
2813         sequences do not render at all
2814
2815         Misc. speed improvements. Total 2.6% speedup for cvs-base.
2816
2817         Improvements for signals.
2818
2819         * kwq/KWQChar.mm:
2820         (QChar::isSpace): Add fast case for ASCII.
2821         (QChar::lower): Add fast case for ASCII.
2822         (QChar::upper): Add fast case for ASCII.
2823
2824         * kwq/qt/qcolor.h: Just store RGB values, not NSColor objects.
2825         * kwq/KWQColor.mm:
2826         (QColor::QColor): No need to set color to nil.
2827         (QColor::name): Use QString::sprintf instead of NSString.
2828         (QColor::setNamedColor): Use KWQInvalidColor instead of nil.
2829         (QColor::getNSColor): Make an autoreleased NSColor.
2830
2831         * kwq/KWQKHTMLPartImpl.mm:
2832         (moveWidgetsAside): Use isWidget() instead of dynamic_cast.
2833
2834         * kwq/KWQSignal.h: use a QValueList instead of a fixed-size array.
2835         * kwq/KWQSignal.mm:
2836         (KWQSignal::connect): Append to list.
2837         (KWQSignal::disconnect): Remove from list.
2838         (KWQSignal::call): Use the QValueList.
2839
2840         * kwq/KWQSlot.mm:
2841         (KWQSlot::call): Use static_cast instead of dynamic_cast where possible.
2842
2843         * kwq/qt/qstring.h: Add return value to forceUnicode.
2844         * kwq/KWQString.mm:
2845         (QString::fromStringWithEncoding): Implemented using the Text Encoding
2846         Converter instead of CFString.
2847         (compareIgnoringCaseForASCIIOnly): New function. Faster find.
2848         (QString::find): Separate case-sensitive from case-insensitive and speed
2849         up both of them.
2850         (QString::stripWhiteSpace): Use the new forceUnicode for simplicity.
2851         (QString::simplifyWhiteSpace): Ditto.
2852         (QString::insert): Ditto.
2853         (QString::remove): Ditto.
2854         (QString::forceUnicode): Return the unicode pointer.
2855         (QString::fill): Use the new forceUnicode for simplicity.
2856
2857         * kwq/WebCoreBridge.mm:
2858         (-[WebCoreBridge mouseUp:]): Fix two bugs. First, don't treat a slow
2859         click as a double click. Second, deliver a mouse release event even for
2860         a double click, as Qt does.
2861
2862 2002-09-17  Richard Williamson   <rjw@apple.com>
2863
2864         * khtml/css/cssstyleselector.cpp:
2865         Fixed bug in KHTML that incorrectly modified '//' in fragment part of URL.
2866         
2867         * kwq/KWQKHistoryProvider.mm:
2868         Use string based API to add entry.  May eventually remove NSURL from
2869         history entirely.
2870         
2871         * kwq/KWQKURL.mm:
2872         (KURL::canonicalURL):
2873         Simply return the urlString.
2874
2875         (KURL::parse):
2876         Added "/" to http and https empty path URLs.
2877         
2878         * kwq/KWQString.mm:
2879         (QString::mid):
2880         Optimize ascii case.
2881         
2882         * kwq/WebCoreHistory.h:
2883         * kwq/WebCoreHistory.m:
2884         (-[WebCoreHistory addEntryForURLString:]):
2885         Use string based API to add entry.
2886         
2887         * kwq/kdecore/kurl.h:
2888         Defined methods to access canonical components,
2889         currently conditionally excluded.
2890         
2891 2002-09-16  David Hyatt  <hyatt@apple.com>
2892
2893         Fix the stylesheet loading regression on rubyfruit.
2894         
2895         * khtml/html/html_headimpl.cpp:
2896         (HTMLStyleElementImpl::HTMLStyleElementImpl):
2897         (HTMLStyleElementImpl::childrenChanged):
2898         (HTMLStyleElementImpl::isLoading):
2899         * khtml/html/html_headimpl.h:
2900
2901 2002-09-13  David Hyatt  <hyatt@apple.com>
2902
2903         Landing code that makes textfields, buttons, checkboxes, radio
2904         buttons, and dropdown lists all draw correctly with respect to
2905         z-index.  They all employ the same simple hack (just never paint
2906         unless KHTML tells them to).
2907
2908         Unpatched widgets include the password field, the listbox, and the
2909         textarea.  
2910
2911         The only issue with regards to painting with the widgets I've
2912         patched is the textfield... its editor floats to the top when the
2913         field is being edited.
2914
2915         Event handling will also be incorrect and will need to be patched
2916         separately.
2917         
2918         * khtml/rendering/render_body.cpp:
2919         (RenderBody::printBoxDecorations):
2920         * khtml/rendering/render_replaced.cpp:
2921         (RenderWidget::printObject):
2922         * kwq/KWQButton.mm:
2923         (QButton::QButton):
2924         (QButton::paint):
2925         (-[KWQNSButton drawRect:]):
2926         (-[KWQNSButton paint]):
2927         * kwq/KWQComboBox.mm:
2928         (-[KWQNSPopUpButton drawRect:]):
2929         (-[KWQNSPopUpButton paint]):
2930         (QComboBox::QComboBox):
2931         (QComboBox::insertItem):
2932         (QComboBox::paint):
2933         * kwq/KWQLineEdit.mm:
2934         (QLineEdit::paint):
2935         * kwq/KWQNSTextField.h:
2936         * kwq/KWQNSTextField.mm:
2937         (-[KWQNSTextField paint]):
2938         * kwq/qt/qbutton.h:
2939         * kwq/qt/qcombobox.h:
2940         * kwq/qt/qlineedit.h:
2941         * kwq/qt/qwidget.h:
2942
2943 2002-09-13  Richard Williamson (Home)  <rjw@apple.com>
2944
2945         Fixed navigation to link on mouse up after drag.
2946         
2947         * khtml/khtmlview.cpp:
2948         (KHTMLView::viewportMousePressEvent):
2949         (KHTMLView::viewportMouseDoubleClickEvent):
2950         Change khtml's definition of double click to be based on
2951         mouse up of second click, not mouse down. 
2952         
2953         (KHTMLView::viewportMouseReleaseEvent):
2954
2955         * kwq/WebCoreBridge.mm:
2956         (-[WebCoreBridge mouseUp:]):
2957         (-[WebCoreBridge mouseDown:]):
2958         Changed double click to be on mouse up with click count of two.
2959
2960 2002-09-13  Darin Adler  <darin@apple.com>
2961
2962         Fix crash in slot code.
2963
2964         * kwq/KWQSignal.mm: (KWQSignal::call): Copy the slots before
2965         calling through in case we are destroyed by the called function.
2966
2967 2002-09-13  Darin Adler  <darin@apple.com>
2968
2969         Here's the *real* mistake that killed plugins. I accidentally
2970         stopped creating objects at all! Duh. Fixed now.
2971
2972         * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::createPart):
2973         Make a part for a plugin if we need one. Not a KHTMLPart, but
2974         a KWQPluginPart.
2975
2976 2002-09-13  Darin Adler  <darin@apple.com>
2977
2978         * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::createPart):
2979         Fix plugin-related crashes by making sure each part has a unique
2980         frame name. There may be something fundamentally wrong with how this
2981         is working now.
2982
2983 2002-09-13  Richard Williamson (Home)  <rjw@apple.com>
2984
2985         Made justified text work correctly in khtml for rendering
2986         and selection.  Optimized selection point calculation by
2987         only doing characters measurements once.
2988         
2989         * khtml/rendering/font.cpp:
2990         (Font::floatCharacterWidths):
2991         * khtml/rendering/font.h:
2992         * khtml/rendering/render_text.cpp:
2993         (TextSlave::checkSelectionPoint):
2994         (RenderText::position):
2995         * kwq/KWQFontMetrics.mm:
2996         (QFontMetrics::width):
2997         (QFontMetrics::floatWidth):
2998         (QFontMetrics::floatCharacterWidths):
2999         * kwq/KWQPainter.mm:
3000         (QPainter::drawText):
3001         * kwq/WebCoreTextRenderer.h:
3002         * kwq/qt/qfontmetrics.h:
3003
3004 2002-09-13  Darin Adler  <darin@apple.com>
3005
3006         Quiet error messages related to the slot/signal changes.
3007
3008         * khtml/khtml_part.cpp:
3009         (KHTMLPart::startAutoScroll): Ifdef this out.
3010         (KHTMLPart::stopAutoScroll): Ditto.
3011
3012         * kwq/KWQObject.mm:
3013         (QObject::connect): Add two more expected members to the list for
3014         setStatusBarText and slotViewCleared.
3015
3016         * kwq/KWQSignal.h: Allow 4 slots per signal.
3017         I don't want to make it a variable number, but we can if we have to.
3018         * kwq/KWQSignal.mm:
3019         (KWQSignal::connect): Support multiple slots.
3020         (KWQSignal::disconnect): Support multiple slots.
3021         (KWQSignal::call): Support multiple slots.
3022
3023 2002-09-13  Darin Adler  <darin@apple.com>
3024
3025         Fix assertion that happens on any page that has a non-HTML frame.
3026
3027         We were sending signals for objects in m_objects that are only supposed
3028         to be sent for frames in m_frames. The fix is to use actual slot/signal
3029         connections instead of our hard-coded logic.
3030
3031         * kwq/KWQKHTMLPartImpl.h: Add signals for started and completed.
3032         * kwq/KWQKHTMLPartImpl.mm:
3033         (KHTMLPart::completed): Emit completed signal.
3034         (KHTMLPart::started): Emit started signal.
3035         (KWQKHTMLPartImpl::KWQKHTMLPartImpl): Create signals.
3036
3037         * kwq/KWQObject.mm:
3038         (QObject::connect): Write out an error message if we see any signal connections
3039         to signals that aren't implemented, with a hardwired exception list for ones we
3040         either aren't ever going to do or just haven't gotten around to yet.
3041
3042         * kwq/KWQSignal.h: Add support for signals that take bool and KIO::Job *.
3043         * kwq/KWQSignal.mm:
3044         (KWQSignal::connect): Put in an actual ERROR call for the case where this fails.
3045         (KWQSignal::disconnect): Put in an actual ERROR call for the case where it fails.
3046         (KWQSignal::call): Add overloads for bool and KIO::Job *.
3047
3048         * kwq/KWQSlot.h: Add support for slots that take bool and KIO::Job *.
3049         * kwq/KWQSlot.mm:
3050         (KWQSlot::KWQSlot): Add four new members.
3051         (KWQSlot::call): Add overloads for bool and KIO::Job * and support for the new
3052         members.
3053
3054 2002-09-12  Darin Adler  <darin@apple.com>
3055
3056         * kwq/KWQAssertions.h: Update assertions from from the copy in WebFoundation.
3057         * WebCorePrefix.h: Remove NSURLPathUtilities.h include.
3058
3059         Use even more of the KHTML code so we get referrers in one more place.
3060
3061         * kwq/WebCoreBridge.h: Add referrer to createChildFrameNamed.
3062
3063         * khtml/khtml_part.h: Less APPLE_CHANGES, no substantive change.
3064         * khtml/khtml_part.cpp:
3065         (KHTMLPart::requestFrame): Use more of this, less APPLE_CHANGES.
3066         (KHTMLPart::requestObject): Ditto.
3067         (KHTMLPart::processObjectRequest): Ditto.
3068
3069         * khtml/rendering/render_frames.h: Less APPLE_CHANGES.
3070         * khtml/rendering/render_frames.cpp: Less APPLE_CHANGES.
3071
3072         * kwq/kparts/browserextension.h: Add lockHistory/setLockHistory and
3073         openURLNotify.
3074
3075         * kwq/khtml/khtml_ext.h: Add openURLNotify.
3076         * kwq/KWQKHTMLPartImpl.h: Add openURLNotify.
3077         * kwq/KWQKHTMLPartBrowserExtension.mm:
3078         (KHTMLPartBrowserExtension::openURLNotify): Implement.
3079
3080         * kwq/KWQKHTMLPartImpl.mm: (KWQKHTMLPartImpl::createPart):
3081         Changed name from requestFrame. Do less work.
3082
3083         * kwq/qt/qtimer.h: Add singleShot.
3084         * kwq/KWQTimer.mm:
3085         (+[KWQSingleShotTimerTarget targetWithQObject:member:]): Added.
3086         Used to implement singleShot.
3087         (-[KWQSingleShotTimerTarget dealloc]): Ditto.
3088         (-[KWQSingleShotTimerTarget timerFired:]): Ditto.
3089         (QTimer::singleShot): Added.
3090
3091         * kwq/qt/qmap.h: Add contains.
3092
3093         * kwq/qt/qvaluelist.h: Add iterator return value for append and prepend.
3094         * kwq/KWQValueListImpl.h: Add iterator return value for appendNode
3095         and prependNode.
3096         * kwq/KWQValueListImpl.mm:
3097         (KWQValueListImpl::appendNode): Add iterator.
3098         (KWQValueListImpl::prependNode): Add iterator.
3099
3100         * kwq/kparts/part.h: Add openURL.
3101
3102 2002-09-12  Richard Williamson  <rjw@apple.com>
3103
3104         Rewrite of khtml selection drawing code.  Now does
3105         a delta between old and new selection and only
3106         draw those objects that have changed.  Selection
3107         drawing is now MUCH faster.
3108         
3109         * khtml/rendering/render_root.cpp:
3110         (enclosingPositionedRect):
3111         (RenderRoot::setSelection):
3112         (RenderRoot::clearSelection):
3113         * khtml/rendering/render_root.h:
3114         
3115         Added additional absolute position property to render node
3116         stuff for debug render tree view.
3117         
3118         * kwq/WebCoreBridge.h:
3119         * kwq/WebCoreBridge.mm:
3120         (-[WebCoreBridge copyRenderNode:copier:]):
3121
3122 2002-09-12  David Hyatt  <hyatt@apple.com>
3123
3124         KHTML was butchering the laws of background propagation from
3125         the <body> to the <html>.  This fixes the logical flaws and
3126         makes some of the geekiest CSS on the planet render correctly. ;)
3127         
3128         * khtml/rendering/render_body.cpp:
3129         (RenderBody::printBoxDecorations):
3130         * khtml/rendering/render_html.cpp:
3131         (RenderHtml::printBoxDecorations):
3132
3133 2002-09-12  David Hyatt  <hyatt@apple.com>
3134
3135         Make fixed positioned elements work when you scroll.  We were
3136         just missing the implementation of a QScrollView method.
3137         
3138         * kwq/KWQScrollView.mm:
3139         (QScrollView::setStaticBackground):
3140
3141 2002-09-12  David Hyatt  <hyatt@apple.com>
3142
3143         Fix a bug in KHTML that leads it to claim cached @imported stylesheets
3144         are not loaded (when in fact they are).
3145
3146         This fixes the W3C CSS page.
3147         
3148         * khtml/css/css_ruleimpl.cpp:
3149         (CSSImportRuleImpl::init):
3150
3151 2002-09-12  Chris Blumenberg  <cblu@apple.com>
3152
3153         Fixed livepage crash on Marklar. It is naughty to divide by 0 on marklar so we now check before doing that.
3154
3155         * khtml/rendering/render_box.cpp:
3156         (RenderBox::printBackground):
3157
3158 2002-09-12  David Hyatt  <hyatt@apple.com>
3159
3160         Fix crash on trekweb.com.  My simplified FOUC code was a little
3161         bit too simple. ;)
3162         
3163         * khtml/html/html_headimpl.cpp:
3164         (HTMLLinkElementImpl::setStyleSheet):
3165         (HTMLStyleElementImpl::childrenChanged):
3166
3167 2002-09-12  David Hyatt  <hyatt@apple.com>
3168
3169         Fix the Warcraft 3 page on blizzard.com so that the relative
3170         positioned blocks inside centered tables inside enclosing tables
3171         with percentage widths work correctly.
3172
3173         This fix also causes the textfields on mrskin.com to show up
3174         again.
3175         
3176         * khtml/rendering/render_box.cpp:
3177         (RenderBox::RenderBox):
3178         (RenderBox::setPos):
3179         * khtml/rendering/render_box.h:
3180         * khtml/rendering/render_container.cpp:
3181         (RenderContainer::addChild):
3182         * khtml/rendering/render_layer.cpp:
3183         (RenderLayer::constructZTree):
3184         * khtml/rendering/render_object.h:
3185
3186 2002-09-11  Maciej Stachowiak  <mjs@apple.com>
3187
3188         Don't show the window here any more, now that WebBrowser will set
3189         it up to be shown properly itself.
3190         
3191         * kwq/KWQKHTMLPartBrowserExtension.mm:
3192         (KHTMLPartBrowserExtension::createNewWindow):
3193
3194 2002-09-11  David Hyatt  <hyatt@apple.com>
3195
3196         Fix horizontal scrolling.  The HTML render object lies.  It lies, 
3197         I tell you.
3198         
3199         * khtml/rendering/render_layer.cpp:
3200         (RenderLayer::constructZTree):
3201
3202 2002-09-11  David Hyatt  <hyatt@apple.com>
3203
3204         Fix clipping to work with layers.  This fixes the marquee
3205         (once again) on livepage.apple.com.
3206         
3207         * khtml/rendering/render_box.cpp:
3208         (RenderBox::getClipRect):
3209         * khtml/rendering/render_box.h:
3210         * khtml/rendering/render_container.cpp:
3211         (RenderContainer::addChild):
3212         (RenderContainer::removeChildNode):
3213         * khtml/rendering/render_flow.cpp:
3214         (RenderFlow::setStyle):
3215         (RenderFlow::printObject):
3216         * khtml/rendering/render_layer.cpp:
3217         (RenderLayer::enclosingPositionedAncestor):
3218         (RenderLayer::convertToLayerCoords):
3219         (RenderLayer::paint):
3220         (RenderLayer::constructZTree):
3221         * khtml/rendering/render_layer.h:
3222         * khtml/rendering/render_object.h:
3223         * khtml/rendering/render_replaced.cpp:
3224         (RenderReplaced::print):
3225
3226 2002-09-11  Darin Adler  <darin@apple.com>
3227
3228         * kwq/KWQAssertions.h: Updated copy of the assertions macros (made by script).
3229
3230 2002-09-11  Darin Adler  <darin@apple.com>
3231
3232         - fixed 3047552 -- crash using CFNotification calls on an NSNotification
3233
3234         * kwq/KWQWindowWidget.mm:
3235         (KWQWindowWidget::KWQWindowWidget): Create a KWQWindowWidgetDeleter, and
3236         hook it up to the notification.
3237         (KWQWindowWidget::~KWQWindowWidget): Disconnect the KWQWindowWidgetDeleter
3238         and release it.
3239         (-[KWQWindowWidgetDeleter initWithWindowWidget:]): Store a pointer.
3240         (-[KWQWindowWidgetDeleter deleteWindowWidget]): Do a delete.
3241
3242 2002-09-11  Darin Adler  <darin@apple.com>
3243
3244         - fixed 3021137 -- changing font prefs doesn't redraw frames
3245         other than the main frame
3246
3247         * kwq/WebCoreSettings.m: Renamed to WebCoreSettings.mm.
3248         * kwq/WebCoreSettings.mm: Renamed from WebCoreSettings.m so I could
3249         use C++.
3250         (-[WebCoreSettings _updateAllViews]): Iterate over all KWQKHTMLPartImpl
3251         instances, calling setNeedsReapplyStyles on each one.
3252         * WebCore.pbproj/project.pbxproj: Updated for name change.
3253
3254         * kwq/KWQKHTMLPartImpl.h: Add instances() and mutableInstances().
3255         Get rid of frameExists(), findFrame(), and frames().
3256         * kwq/KWQKHTMLPartImpl.mm:
3257         (KWQKHTMLPartImpl::KWQKHTMLPartImpl): Add to instance list.
3258         (KWQKHTMLPartImpl::~KWQKHTMLPartImpl): Remove from instance list.
3259         (KWQKHTMLPartImpl::requestFrame): Update to not use frameExists().
3260         (KWQKHTMLPartImpl::overURL): Update to not use frameExists, and improve
3261         handling of various cases.
3262         (KWQKHTMLPartImpl::mutableInstances): Create and return instance list.
3263
3264         * kwq/WebCoreBridge.h: Add setNeedsReapplyStyles; already implemented
3265         in WebKit.
3266
3267         * khtml/khtml_part.cpp:
3268         (KHTMLPart::findFrame): Remove APPLE_CHANGES.
3269         (KHTMLPart::frameExists): Remove APPLE_CHANGES.
3270         (KHTMLPart::frames): Remove APPLE_CHANGES.
3271
3272 2002-09-10  Darin Adler  <darin@apple.com>
3273
3274         WebCore part of support for the "Referer" header.
3275
3276         * khtml/khtml_part.cpp:
3277         (KHTMLPart::urlSelected): Use much more of this function.
3278         (KHTMLPart::submitForm): Use much more of this function.
3279
3280         * kwq/KWQKHTMLPartBrowserExtension.mm:
3281         (KHTMLPartBrowserExtension::createNewWindow): Parse the
3282         referrer out of the URLArgs and pass it along.
3283
3284         * kwq/KWQKHTMLPartImpl.h: Change parameters to urlSelected
3285         and submitForm to allow KHTML to do more of the work. Add
3286         referrer helper function.
3287         * kwq/KWQKHTMLPartImpl.mm:
3288         (KWQKHTMLPartImpl::bridgeForFrameName): Pass referrer of nil
3289         when opening a blank window.
3290         (KWQKHTMLPartImpl::referrer): Extract referrer from metadata.
3291         (KWQKHTMLPartImpl::openURLRequest): Pass referrer from args
3292         through the bridge.
3293         (KWQKHTMLPartImpl::urlSelected): Remove code that duplicates
3294         what's in KHTMLPart. Also pass referrer from args through the
3295         bridge as above.
3296         (KWQKHTMLPartImpl::submitForm): Ditto.
3297
3298         * kwq/kdeui/kmessagebox.h: Add information member function.
3299         * kwq/KWQKMessageBox.mm: (KMessageBox::information): Implement.
3300
3301         * kwq/kdecore/kurl.h: Add encode_string member function.
3302         * kwq/KWQKURL.mm:
3303         (KURL::KURL): Fix buffer overflow bug, and add an assert so we
3304         will notice these overflows even when using the static buffer.
3305         (KURL::parse): Added a similar assert, even though I didn't fix
3306         any overflow bug here.
3307         (KURL::encode_string): Implemented this, but didn't test it.
3308
3309         * kwq/KWQLoaderImpl.mm: (KWQServeRequest): Pass referrer through
3310         the bridge.
3311
3312         * kwq/WebCoreBridge.h: Add referrer parameters to loadURL, postWithURL,
3313         openNewWindowWithURL, and startLoadingResource.
3314
3315         * kwq/kparts/browserextension.h: Implement setDoPost, setContentType,
3316         const version of metaData().
3317
3318         * kwq/qt/qstring.h: Implement fromLatin1(const char *, int).
3319
3320         * WebCore-tests.exp: Not sure why, but I needed to remove isMalformed,
3321         and the tests seem to still work with it removed.
3322
3323 2002-09-11  David Hyatt  <hyatt@apple.com>
3324
3325         This patch fixes a slew of bugs.  It is an implementation
3326         of the IE extensions offsetLeft, offsetTop, and offsetParent.
3327         Konqueror actually had implementations for these properties
3328         that were totally wrong, leading any DHTML that would use
3329         these properties (like the DHTML on brainjar.com or livepage.apple.com)
3330         to misposition child elements.
3331
3332         With these properties now implemented, the menus on brainjar.com
3333         position correctly, and the marquee on livepage.apple.com once
3334         again shows up (and now you can see how I've regressed clipping
3335         by not shoving it into the layer system as well).
3336
3337         Next up will be fixing the clipping bug on livepage.apple.com.
3338         
3339         * khtml/ecma/kjs_dom.cpp:
3340         (DOMNode::getValueProperty):
3341         * khtml/rendering/render_flow.cpp:
3342         (RenderFlow::offsetHeight):
3343         (RenderFlow::offsetLeft):
3344         (RenderFlow::offsetTop):
3345         * khtml/rendering/render_flow.h:
3346         * khtml/rendering/render_object.cpp:
3347         (RenderObject::offsetLeft):
3348         (RenderObject::offsetTop):
3349         (RenderObject::offsetParent):
3350         * khtml/rendering/render_object.h:
3351
3352 2002-09-10  David Hyatt  <hyatt@apple.com>
3353
3354         Get more elements on mrskin painting as well as the menus
3355         on brainjar.com.
3356         
3357         * khtml/rendering/render_flow.cpp:
3358         (RenderFlow::layout):
3359         * khtml/rendering/render_layer.cpp:
3360         (RenderLayer::constructZTree):
3361         * khtml/rendering/render_object.cpp:
3362         (RenderObject::setLayouted):
3363         * khtml/rendering/render_object.h:
3364
3365 2002-09-10  David Hyatt  <hyatt@apple.com>
3366
3367         Fix the CSS clip property.
3368         
3369         * khtml/css/cssparser.cpp:
3370         (StyleBaseImpl::parseValue):
3371         * khtml/css/cssstyleselector.cpp:
3372         * khtml/ecma/kjs_css.cpp:
3373         (DOMCSSStyleDeclaration::tryPut):
3374         * khtml/rendering/render_box.cpp:
3375         (RenderBox::calcClip):
3376         * khtml/rendering/render_flow.cpp:
3377         (RenderFlow::printObject):
3378         * khtml/rendering/render_replaced.cpp:
3379         (RenderReplaced::print):
3380         * khtml/rendering/render_style.cpp:
3381         (StyleVisualData::StyleVisualData):
3382         (RenderStyle::diff):
3383         * khtml/rendering/render_style.h:
3384
3385 2002-09-10  Richard Williamson  <rjw@apple.com>
3386
3387         Fixed broken DOM handling of click count.  DOM click 
3388         events can be tested with Labyrinth/Test/html/mousetest.html.
3389         Preparation work for double and triple click selection.
3390         
3391         * khtml/khtml_events.cpp:
3392         * khtml/khtml_events.h:
3393         * khtml/khtml_part.cpp:
3394         (KHTMLPart::khtmlMouseTripleClickEvent):
3395         * khtml/khtml_part.h:
3396         * khtml/khtmlview.cpp:
3397         (KHTMLView::viewportMousePressEvent):
3398         (KHTMLView::viewportMouseTripleClickEvent):
3399         (KHTMLView::viewportMouseDoubleClickEvent):
3400         (KHTMLView::viewportMouseReleaseEvent):
3401         * khtml/khtmlview.h:
3402         * kwq/KWQEvent.mm:
3403         (QMouseEvent::QMouseEvent):
3404         * kwq/WebCoreBridge.mm:
3405         (-[WebCoreBridge mouseUp:]):
3406         (-[WebCoreBridge mouseDown:]):
3407         * kwq/qt/qevent.h:
3408
3409 2002-09-10  David Hyatt  <hyatt@apple.com>
3410
3411         Fix FOUC to behave correctly.  I was smoking crack when I
3412         implemented this the first time (mainly because KHTML had
3413         a badly named API that didn't mean even remotely what
3414         I thought it should).
3415         
3416         * khtml/html/html_headimpl.cpp:
3417         (HTMLLinkElementImpl::process):
3418         (HTMLLinkElementImpl::setStyleSheet):
3419         (HTMLLinkElementImpl::sheetLoaded):
3420         (HTMLStyleElementImpl::childrenChanged):
3421         (HTMLStyleElementImpl::sheetLoaded):
3422
3423 2002-09-10  Maciej Stachowiak  <mjs@apple.com>
3424
3425         WebCore part of fix for:
3426
3427         2952837 - Slide shows on homepage.mac.com don't show pictures, captions
3428         2942073 - Deferring [BrowserDocument goToInitialURL] can cause problems