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