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