WebKit-https.git
18 years ago Fix for 3800316, test 37 for tables is failing on the layout tests. Make sure we...
hyatt [Fri, 24 Sep 2004 22:14:45 +0000 (22:14 +0000)]
Fix for 3800316, test 37 for tables is failing on the layout tests.  Make sure we don't incorrectly match
non-HTML elements with HTML tag selectors in CSS.

        Reviewed by rjw

        * khtml/css/cssstyleselector.cpp:
        (khtml::CSSStyleSelector::checkOneSelector):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7676 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fix for 3601920, CSS "tabs" not switching properly on zen garden design. Improve...
hyatt [Fri, 24 Sep 2004 22:09:52 +0000 (22:09 +0000)]
Fix for 3601920, CSS "tabs" not switching properly on zen garden design.  Improve the repainting to account
for layer changes of z-index that necessitate an invalidation.

        Reviewed by kocienda

        * khtml/rendering/render_object.cpp:
        (RenderObject::setStyle):
        * khtml/rendering/render_style.cpp:
        (RenderStyle::diff):
        * khtml/rendering/render_style.h:
        (khtml::RenderStyle::):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7675 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
cblu [Fri, 24 Sep 2004 21:44:02 +0000 (21:44 +0000)]
WebCore:

Made markup copying 5 times faster. Unfortunately, this still doesn't fix:
<rdar://problem/3794799> Tiger8A252: copying a bunch o' text is so slow it seems like a hang

        Reviewed by rjw.

        * khtml/dom/dom_string.h:
        * khtml/xml/dom2_rangeimpl.cpp:
        (DOM::RangeImpl::toHTML): serialize the range by iterating through the range
        * khtml/xml/dom_nodeimpl.cpp:
        (NodeImpl::startMarkup): new, factored out from recursive_toString
        (NodeImpl::endMarkup): ditto
        (NodeImpl::recursive_toString): call factored out methods
        * khtml/xml/dom_nodeimpl.h:

WebKit:

        Reviewed by rjw.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _selectedArchive]): added timing code for copying markup

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7674 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoversioning for TOT, Safari 2.0 (v166u)
vicki [Fri, 24 Sep 2004 21:42:38 +0000 (21:42 +0000)]
versioning for TOT, Safari 2.0 (v166u)

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7673 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoSafari-165 stamp for everything except WebBrowser. In these projects, CFBundleShortV...
vicki [Fri, 24 Sep 2004 21:31:27 +0000 (21:31 +0000)]
Safari-165 stamp for everything except WebBrowser.  In these projects, CFBundleShortVersionString matches CFBundleVersion (165 for both).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7671 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Temp fix for: <rdar://problem/3814810> REGRESSION (125-164): Exception adding nil...
cblu [Fri, 24 Sep 2004 20:34:13 +0000 (20:34 +0000)]
Temp fix for: <rdar://problem/3814810> REGRESSION (125-164): Exception adding nil to dictionary in dragging code

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _delegateDragSourceActionMask]): return none if the mouse down event is nil

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7670 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by me
kocienda [Fri, 24 Sep 2004 18:12:09 +0000 (18:12 +0000)]
    Reviewed by me

        Hyatt made an improvement in the render tree which caused the results
        to get a little thinner.

        * layout-tests/editing/deleting/delete-block-merge-contents-001-expected.txt.
        * layout-tests/editing/deleting/delete-block-merge-contents-008-expected.txt.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7669 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Hyatt
kocienda [Fri, 24 Sep 2004 17:51:35 +0000 (17:51 +0000)]
    Reviewed by Hyatt

        Fix for this bug:

        <rdar://problem/3812939> REGRESSION: move-between-blocks-no-001 editing layout test fails in DeleteSelectionCommandImpl

        * khtml/rendering/render_block.cpp:
        (khtml::RenderBlock::removeChild): Hyatt said this regression was caused by a bad merge.
        Found by code inspection.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7668 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John
kocienda [Fri, 24 Sep 2004 17:49:46 +0000 (17:49 +0000)]
    Reviewed by John

        Fix for this bug:

        <rdar://problem/3813917> REGRESSION (125-163): The font panel will change the font of any web page

        We were doing a laughably bad job at preventing edits in documents that were not editable.
        This change fixes the specific case of the bug mentioned above, and makes an attempt to
        fix similar bugs by checking for whether the view is in editing mode before making edits.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _canEdit]): Renamed from _canType. Used in many more places in the code now.
        (-[WebHTMLView _isMoveDrag]): Change around code to make the meaning more clear. This one
        was actually performing a correct check before.
        (-[WebHTMLView keyDown:]): Renamed _canType to _canEdit.
        (-[WebHTMLView paste:]): Don't beep if can't paste. This matches AppKit. Any paste-related beeps
        will come from failure to handle key equivalent. Menu validation will kick in to dim menu.
        (-[WebHTMLView _applyStyleToSelection:]): Bail if !_canEdit.
        (-[WebHTMLView pasteAsPlainText:]): Ditto.
        (-[WebHTMLView _alignSelectionUsingCSSValue:]): Ditto.
        (-[WebHTMLView insertNewline:]): Ditto.
        (-[WebHTMLView insertParagraphSeparator:]): Ditto.
        (-[WebHTMLView _changeWordCaseWithSelector:]): Ditto.
        (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): Ditto.
        (-[WebHTMLView complete:]): Ditto.
        (-[WebHTMLView _changeSpellingToWord:]): Ditto. Some code rearranging to eliminate bridge local variable.
        (-[WebHTMLView ignoreSpelling:]): Ditto.
        (-[WebHTMLView yank:]): Bail if !_canEdit.
        (-[WebHTMLView yankAndSelect:]): Ditto.
        (-[WebHTMLView deleteToMark:]): Ditto.
        (-[WebHTMLView swapWithMark:]): Ditto.
        (-[WebHTMLView transpose:]): Ditto.
        (-[WebHTMLView _updateFontPanel]): Ditto. Some code rearranging to eliminate bridge local variable.
        (-[WebHTMLView setMarkedText:selectedRange:]): Bail if !_canEdit.
        (-[WebHTMLView _insertText:selectInsertedText:]): Ditto. Some code rearranging to eliminate bridge local variable.
        * WebView.subproj/WebHTMLViewPrivate.h: Renamed _canType to _canEdit.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7667 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by me
kocienda [Fri, 24 Sep 2004 16:37:08 +0000 (16:37 +0000)]
    Reviewed by me

        * WebCoreSupport.subproj/WebDashboardRegion.h: Check in file copied from WebCore.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7666 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoLayout tests for acceptable and unacceptable values of "language" and "type" attribut...
sullivan [Fri, 24 Sep 2004 15:35:20 +0000 (15:35 +0000)]
Layout tests for acceptable and unacceptable values of "language" and "type" attributes for <script> tags.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7665 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Maciej.
sullivan [Fri, 24 Sep 2004 02:20:14 +0000 (02:20 +0000)]
    Reviewed by Maciej.

        - fixed <rdar://problem/3551850> hang caused by interpreting bad javascript
        guarded by a deliberately bogus "language" attribute (www.riibe.com)

        * khtml/html/htmltokenizer.cpp:
        (khtml::HTMLTokenizer::parseTag):
        Check for language attribute of <script> tag in a way that matches WinIE.
        Previously we were far too permissive.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7664 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fix for 3685234 and 3548444, the x-offset for frame borders was off by 1 pixel,...
hyatt [Fri, 24 Sep 2004 00:27:44 +0000 (00:27 +0000)]
Fix for 3685234 and 3548444, the x-offset for frame borders was off by 1 pixel, causing mojibake to occur when
repainting happened.

        * khtml/rendering/render_canvas.cpp:
        (RenderCanvas::repaintViewRectangle):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7663 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fixed <rdar://problem/3813271> dashboard-region-circle and dashboard-region-rectangl...
rjw [Fri, 24 Sep 2004 00:17:57 +0000 (00:17 +0000)]
Fixed <rdar://problem/3813271> dashboard-region-circle and dashboard-region-rectangle should be collapsed into dashboard-region
Fixed <rdar://problem/3813289> dashboard regions need to correctly account for overflow/scrolling

        Reviewed by Chris.

        * khtml/css/css_valueimpl.cpp:
        (CSSPrimitiveValueImpl::cssText):
        * khtml/css/css_valueimpl.h:
        * khtml/css/cssparser.cpp:
        (CSSParser::parseValue):
        (skipCommaInDashboardRegion):
        (CSSParser::parseDashboardRegions):
        * khtml/khtmlview.cpp:
        (KHTMLView::layout):
        (KHTMLView::updateDashboardRegions):
        * khtml/khtmlview.h:
        * khtml/rendering/render_layer.cpp:
        (RenderLayer::scrollToOffset):
        * khtml/rendering/render_object.cpp:
        (RenderObject::addDashboardRegions):
        * khtml/rendering/render_object.h:
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::dashboardRegionsChanged):
        * kwq/WebDashboardRegion.h:
        * kwq/WebDashboardRegion.m:
        (-[WebDashboardRegion initWithRect:clip:type:]):
        (-[WebDashboardRegion dashboardRegionClip]):
        (-[WebDashboardRegion description]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7662 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Richard
kocienda [Fri, 24 Sep 2004 00:05:57 +0000 (00:05 +0000)]
    Reviewed by Richard

        * khtml/xml/dom_position.cpp:
        (DOM::Position::inRenderedContent): Make the "empty block" check the same as the one
        use in visible position. This fixes a recent regression which broke up and down
        arrowing between blocks with an empty block in between.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7661 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
mjs [Thu, 23 Sep 2004 21:25:30 +0000 (21:25 +0000)]
WebCore:

        Reviewed by Darin.

<rdar://problem/3685235> REGRESSION (Mail): links are not properly editable

* khtml/html/html_inlineimpl.cpp:
        (HTMLAnchorElementImpl::isFocusable): If this element is editable, then follow
the normal focus rules so the link does not swallow focus when you arrow key
or drag-select into it.

WebKit:

        Reviewed by Darin.

<rdar://problem/3685235> REGRESSION (Mail): links are not properly editable

        * WebView.subproj/WebDefaultUIDelegate.m: By default, don't allow
link dragging if the element under the mouse pointer is
editable. This way, you can drag-select starting inside a link.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7660 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebKit:
sullivan [Thu, 23 Sep 2004 17:56:45 +0000 (17:56 +0000)]
WebKit:

        Reviewed by Chris.

        - WebKit part of fix for <rdar://problem/3415264>
        Default encoding should initially be set to current system encoding

        * WebView.subproj/WebPreferences.m:
        (-[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]):
        new SPI that sets the initial value of the default text encoding to
        be the system encoding, with a special-case conversion of MacRoman->Latin1.
        This is not done automatically for WebKit clients for fear of breaking them.

        * WebView.subproj/WebPreferencesPrivate.h:
        declare new SPI

WebBrowser:

        Reviewed by Chris.

        - WebBrowser part of fix for <rdar://problem/3415264>
        Default encoding should initially be set to current system encoding

        * AppController.m:
        (-[AppController applicationDidFinishLaunching:]):
        call new SPI -[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7659 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago*** empty log message ***
hyatt [Thu, 23 Sep 2004 17:47:15 +0000 (17:47 +0000)]
*** empty log message ***

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7658 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago - added test for the DOM::Range bug fixed recently
darin [Thu, 23 Sep 2004 17:29:26 +0000 (17:29 +0000)]
    - added test for the DOM::Range bug fixed recently

        * layout-tests/fast/dom/clone-contents-0-end-offset-expected.txt: Added.
        * layout-tests/fast/dom/clone-contents-0-end-offset.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7657 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fix for hitlist bug, crash when deleting.
hyatt [Thu, 23 Sep 2004 17:22:27 +0000 (17:22 +0000)]
Fix for hitlist bug, crash when deleting.

Also fix repaint bug when inlines are inside overflow:auto/scroll regions.

        Reviewed by kocienda

        * khtml/editing/htmlediting_impl.cpp:
        (khtml::DeleteSelectionCommandImpl::DeleteSelectionCommandImpl):
        (khtml::DeleteSelectionCommandImpl::doApply):
        * khtml/rendering/render_block.cpp:
        (khtml::RenderBlock::removeChild):
        * khtml/rendering/render_flow.cpp:
        (RenderFlow::getAbsoluteRepaintRect):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7656 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
sullivan [Thu, 23 Sep 2004 16:52:18 +0000 (16:52 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3527840> reproducible crash at johnbrown.v32.qikker.com
        (nil-deref in NodeImpl::dispatchEvent)

        * khtml/xml/dom_nodeimpl.cpp:
        (NodeImpl::dispatchEvent):
        guard against document or document->document() being nil

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7655 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Thu, 23 Sep 2004 16:10:01 +0000 (16:10 +0000)]
    Reviewed by Ken.

        - added new VisibleRange class; not used yet

        * WebCore.pbproj/project.pbxproj: Added visible_range.h and visible_range.cpp.
        * khtml/editing/visible_range.cpp: Added.
        * khtml/editing/visible_range.h: Added.

        - tweaks

        * kwq/WebCoreBridge.mm: (-[WebCoreBridge alterCurrentSelection:direction:granularity:]):
        Use switch statement instead of if statement so we get a warning if we ever add a new
        granularity.

        * khtml/editing/selection.h: khtml, not DOM, namespace
        * khtml/editing/visible_position.h: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7654 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Thu, 23 Sep 2004 16:08:35 +0000 (16:08 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3812758> 8S266: attaching mutation events to an editable div crashes Safari

        * khtml/xml/dom_nodeimpl.cpp:
        (NodeImpl::dispatchEvent): Added ref/deref so this works if passed a "floating" event object.
        (NodeImpl::dispatchGenericEvent): Ditto.
        (NodeImpl::dispatchHTMLEvent): Removed unneeded ref/deref now that dispatchEvent takes care of it.
        (NodeImpl::dispatchMouseEvent): Ditto.
        (NodeImpl::dispatchUIEvent): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7653 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Thu, 23 Sep 2004 16:05:58 +0000 (16:05 +0000)]
    Reviewed by Ken.

        - fixed some minor mistakes discovered by code inspection

        * khtml/khtml_part.cpp:
        (KHTMLPart::setSelection): Changed to not grab focus if clearing the selection.
        Grabbing focus when we get the selection is also probably something that should be
        conditional, since you can use a WebView in a mode where it can have selection even
        when not first responder, ala NSTextView.
        (KHTMLPart::setCaretVisible): Changed to not grab focus if making the caret invisible.
        Not sure if it's ever important to grab focus when making the caret visible, but by
        code inspection it seemed that was unlikely to do harm.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7652 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Thu, 23 Sep 2004 16:03:00 +0000 (16:03 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3790595> "ERROR: unimplemented propertyID: 97" logged to console when copying selection (table-layout)

        * khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
        Added CSS_PROP_TABLE_LAYOUT case.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7651 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Thu, 23 Sep 2004 16:02:04 +0000 (16:02 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3809600> REGRESSION: text in search field doesn't disappear when clicked at developer.apple.com

        Reversing the order of scope caused us to get and set too many properties in the window
        object; in the case of this bug setting value ended up setting a window.value property
        instead of the value of the <input> element.

        * khtml/ecma/kjs_window.h: Removed bogus hasProperty function that always returns true.
        Testing shows that MacIE and Gecko match our behavior when we remove this, despite the
        "need this to match IE behavior" comment in the file, which I believe is incorrect.
        * khtml/ecma/kjs_window.cpp: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7650 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Thu, 23 Sep 2004 15:58:37 +0000 (15:58 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3812471> -[DOMRange cloneContents] clones too much in some cases where endOffset is 0

        * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::processContents): Added some nil
        checks to prevent this function from crashing if offsets are greater than the
        number of child nodes. Added a special case for offset 0 in one case that has a loop
        that won't work correctly for that case.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7649 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Thu, 23 Sep 2004 15:50:59 +0000 (15:50 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3811890> when selecting and moving the caret, some words aren't spell-checked (test case included)

        This was mostly fixed by changes I made recently, but using the test case in the bug
        I discovered one regression I introduced and another problem that wasn't fixed yet.
        This change fixes both.

        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::markMisspellingsInSelection): Removed unneeded inRenderedContent() check. It was returning false
        in cases involving a <br> at the end of line, and the check isn't all that helpful now that we use VisiblePosition,
        which takes care of that sort of thing for you. Changed code to determine the range to check to use the two
        different flavors of word boundary to expand to words we touch in both directions.
        (KWQKHTMLPart::updateSpellChecking): Changed to use the same logic about word boundaries. By being consistent,
        the anomalies reported in the bug report go away.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7648 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Thu, 23 Sep 2004 15:22:15 +0000 (15:22 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3811584> REGRESSION (85-125): iframe.document undefined in function called from button onclick; works from img onclick

        The fix is to not let "defers callbacks" have any effect on loading "about:blank".
        I also had to fix one bug in WebCore that could then be reproduced by going to "about:blank"
        while using a button.

        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient connection:didReceiveResponse:]): Loosen asserts to allow this callback
        for the specific case of "about:blank" even if the defers callbacks flag is true.
        (-[WebMainResourceClient connectionDidFinishLoading:]): Ditto.
        (-[WebMainResourceClient loadWithRequestNow:]): Added NSURLRequest return value. Loosened asserts
        as above. Changed code to return a new request if we get a new request back that is not empty
        when the defers callbacks flag is true.
        (-[WebMainResourceClient loadWithRequest:]): If the defers callbacks flag is set, but the
        URL is one that gives us an empty document, then do the work right away, don't defer it.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7647 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Thu, 23 Sep 2004 15:21:44 +0000 (15:21 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3811584> REGRESSION (85-125): iframe.document undefined in function called from button onclick; works from img onclick

        Since we are doing a bit less "defers callbacks" work, when testing I ran into this code path.

        * khtml/xml/dom2_eventsimpl.cpp: (MouseEventImpl::computeLayerPos): Check for document without renderer.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7646 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago - checked in a new file I forgot
darin [Thu, 23 Sep 2004 07:10:20 +0000 (07:10 +0000)]
    - checked in a new file I forgot

        * khtml/editing/text_granularity.h: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7645 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago - fixed B&I builds by checking in generated file
darin [Thu, 23 Sep 2004 07:09:14 +0000 (07:09 +0000)]
    - fixed B&I builds by checking in generated file

        * WebCoreSupport.subproj/WebDashboardRegion.h: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7644 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago - renamed
darin [Thu, 23 Sep 2004 07:05:23 +0000 (07:05 +0000)]
    - renamed

            DOM::CaretPosition -> khtml::VisibleRange
            DOM::Selection     -> khtml::Selection

        - moved all the functions in visible_units.h from DOM to khtml namespace
        - moved the one thing from Selection that KHTMLPart uses into its own header

        * WebCore.pbproj/project.pbxproj: Added text_granularity.h.

        * ForwardingHeaders/editing/selection.h: Added.
        * WebCore-combined.exp: Regenerated.
        * WebCore-tests.exp: Updated symbol for DOM::Selection debugging.

        * khtml/ecma/kjs_window.cpp: Update names and namespaces.
        * khtml/editing/htmlediting.cpp: Ditto.
        * khtml/editing/htmlediting.h: Ditto.
        * khtml/editing/htmlediting_impl.cpp: Ditto.
        * khtml/editing/htmlediting_impl.h: Ditto.
        * khtml/editing/jsediting.cpp: Ditto.
        * khtml/editing/selection.cpp: Ditto.
        * khtml/editing/selection.h: Ditto.
        * khtml/editing/visible_position.cpp: Ditto.
        * khtml/editing/visible_position.h: Ditto.
        * khtml/editing/visible_text.h: Ditto.
        * khtml/editing/visible_units.cpp: Ditto.
        * khtml/editing/visible_units.h: Ditto.
        * khtml/khtml_part.cpp: Ditto.
        * khtml/khtml_part.h: Ditto.
        * khtml/khtmlpart_p.h: Ditto.
        * khtml/rendering/render_block.cpp: Ditto.
        * khtml/xml/dom_docimpl.h: Ditto.
        * khtml/xml/dom_nodeimpl.cpp: Ditto.
        * kwq/KWQKHTMLPart.h: Ditto.
        * kwq/KWQKHTMLPart.mm: Ditto.
        * kwq/KWQRenderTreeDebug.cpp: Ditto.
        * kwq/WebCoreBridge.mm: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7643 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago * ForwardingHeaders/*: Use import instead of include.
darin [Thu, 23 Sep 2004 06:21:28 +0000 (06:21 +0000)]
    * ForwardingHeaders/*: Use import instead of include.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7642 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago - renamed these files:
darin [Thu, 23 Sep 2004 05:23:55 +0000 (05:23 +0000)]
    - renamed these files:

            misc/khtml_text_operations.h   -> editing/visible_text.h
            misc/khtml_text_operations.cpp -> editing/visible_text.cpp
            xml/dom_caretposition.cpp      -> editing/visible_position.cpp
            xml/dom_caretposition.h        -> editing/visible_position.h
            xml/dom_selection.cpp          -> editing/selection.cpp
            xml/dom_selection.h            -> editing/selection.h

        - broke out the word/line/paragraph part of visible_position.h into visible_units.h
        - removed some unnecessary includes from some header files to reduce the number of
          files that trigger "building the world"

        * WebCore.pbproj/project.pbxproj: Added the files under new names, removed the old ones.

        * ForwardingHeaders/editing/jsediting.h: Added.
        * ForwardingHeaders/editing/visible_text.h: Added.
        * ForwardingHeaders/misc/khtml_text_operations.h: Removed.
        * ForwardingHeaders/xml/dom_caretposition.h: Removed.
        * ForwardingHeaders/xml/dom_selection.h: Removed.

        * khtml/ecma/kjs_window.cpp: Updated or removed #include lines.
        * khtml/editing/htmlediting.cpp: Ditto.
        * khtml/editing/htmlediting.h: Ditto.
        * khtml/editing/htmlediting_impl.cpp: Ditto.
        * khtml/editing/htmlediting_impl.h: Ditto.
        * khtml/editing/jsediting.cpp: Ditto.
        * khtml/editing/selection.cpp: Ditto.
        * khtml/editing/selection.h: Ditto.
        * khtml/editing/visible_position.cpp: Ditto.
        * khtml/editing/visible_position.h: Ditto.
        * khtml/editing/visible_text.cpp: Ditto.
        * khtml/editing/visible_text.h: Ditto.
        * khtml/editing/visible_units.cpp: Added.
        * khtml/editing/visible_units.h: Added.
        * khtml/html/html_elementimpl.cpp: Updated or removed #include lines.
        * khtml/khtml_part.cpp: Ditto.
        * khtml/khtml_part.h: Ditto.
        * khtml/khtmlpart_p.h: Ditto.
        * khtml/khtmlview.cpp: Ditto.
        * khtml/misc/khtml_text_operations.cpp: Removed.
        * khtml/misc/khtml_text_operations.h: Removed.
        * khtml/rendering/render_block.cpp: Updated or removed #include lines.
        * khtml/xml/dom2_rangeimpl.cpp: Ditto.
        * khtml/xml/dom_caretposition.cpp: Removed.
        * khtml/xml/dom_caretposition.h: Removed.
        * khtml/xml/dom_docimpl.cpp: Updated or removed #include lines.
        * khtml/xml/dom_docimpl.h: Ditto.
        * khtml/xml/dom_elementimpl.cpp: Ditto.
        * khtml/xml/dom_nodeimpl.cpp: Ditto.
        * khtml/xml/dom_position.cpp: Ditto.
        * khtml/xml/dom_selection.cpp: Removed.
        * khtml/xml/dom_selection.h: Removed.
        * kwq/KWQKHTMLPart.mm: Updated or removed #include lines.
        * kwq/KWQKHTMLPart.h: Ditto.
        * kwq/KWQRenderTreeDebug.cpp: Ditto.
        * kwq/WebCoreBridge.mm: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7641 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
rjw [Thu, 23 Sep 2004 01:50:21 +0000 (01:50 +0000)]
WebCore:
Pass dashboard regions up to WebKit.

Don't collect regions from RenderTexts.

Made more args and return types references to avoid
copying value lists.

        Reviewed by Hyatt.

        * WebCore.pbproj/project.pbxproj:
        * khtml/khtmlview.cpp:
        (KHTMLView::layout):
        * khtml/rendering/render_object.cpp:
        (RenderObject::collectDashboardRegions):
        * khtml/xml/dom_docimpl.cpp:
        (DocumentImpl::dashboardRegions):
        (DocumentImpl::setDashboardRegions):
        * khtml/xml/dom_docimpl.h:
        * kwq/KWQKHTMLPart.h:
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::didFirstLayout):
        (KWQKHTMLPart::dashboardRegionsChanged):
        * kwq/WebCoreBridge.h:
        * kwq/WebDashboardRegion.h: Added.
        * kwq/WebDashboardRegion.m: Added.
        (-[WebDashboardRegion initWithRect:type:]):
        (-[WebDashboardRegion copyWithZone:]):
        (-[WebDashboardRegion dashboardRegionRect]):
        (-[WebDashboardRegion dashboardRegionType]):
        (-[WebDashboardRegion description]):

WebKit:
Pass dashboard regions to UI delegate.

        Reviewed by Hyatt.

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge dashboardRegionsChanged:]):
        * WebView.subproj/WebUIDelegatePrivate.h:
        * copy-webcore-files-to-webkit:

WebBrowser:
Debug only code to display dashboard regions.

        Reviewed by Hyatt.

        * BrowserWebController.m:
        (-[BrowserWebView webView:dashboardRegionsChanged:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7640 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Hyatt
kocienda [Wed, 22 Sep 2004 23:57:47 +0000 (23:57 +0000)]
    Reviewed by Hyatt

        Fix for this hitlist bug:

        <rdar://problem/3805486> REGRESSION (Mail): Empty block elements can cause the caret to get "stuck" in one spot

        * khtml/xml/dom_caretposition.cpp:
        (DOM::CaretPosition::isCandidate): You can no longer caret into empty blocks with no height.
        Also did a little clean up in this function.
        * layout-tests/editing/deleting/delete-3800834-fix-expected.txt: Regenerated expected results.
        This test was actually failing and had bogus results checked in!
        * layout-tests/editing/selection/select-all-003-expected.txt: Regenerated expected results.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7639 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fixed build that I just broke.
cblu [Wed, 22 Sep 2004 23:45:28 +0000 (23:45 +0000)]
Fixed build that I just broke.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7638 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
cblu [Wed, 22 Sep 2004 23:42:19 +0000 (23:42 +0000)]
WebCore:

Fixed: <rdar://problem/3812091> REGRESSION (Mail): double-clicked word is not smart inserted on drag

        Reviewed by john.

        * khtml/editing/htmlediting.cpp:
        (khtml::MoveSelectionCommand::MoveSelectionCommand): take smartMove arg
        * khtml/editing/htmlediting.h:
        * khtml/editing/htmlediting_impl.cpp:
        (khtml::CompositeEditCommandImpl::deleteSelection): take smartDelete arg
        (khtml::MoveSelectionCommandImpl::MoveSelectionCommandImpl): take smartMove arg
        (khtml::MoveSelectionCommandImpl::doApply): pass smartMove for smartDelete and smartReplace
        * khtml/editing/htmlediting_impl.h:
        * kwq/WebCoreBridge.h:
        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge moveSelectionToDragCaret:smartMove:]): take smartMove arg

WebKit:

<rdar://problem/3812091> REGRESSION (Mail): double-clicked word is not smart inserted on drag

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): pass value for smartMove

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7637 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Hyatt
kocienda [Wed, 22 Sep 2004 22:17:28 +0000 (22:17 +0000)]
    Reviewed by Hyatt

        * khtml/css/css_computedstyle.cpp:
        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): New overloaded
version of this function, one that takes a flag to determine whether to
perform a document updateLayout() call before querying the style system.
        * khtml/css/css_computedstyle.h:
        (DOM::EUpdateLayout): Give a symbolic constant to true/false for the
purpose of the new call to getPropertyCSSValue.
        * khtml/editing/htmlediting_impl.cpp:
        (khtml::StyleChange::currentlyHasStyle): Pass DoNotUpdateLayout to call to
getPropertyCSSValue.
        (khtml::CompositeEditCommandImpl::applyTypingStyle): Add in top-level calls
to updateLayout before doing style changes that now do not update styles
themselves.
        (khtml::ApplyStyleCommandImpl::doApply): Ditto.
        (khtml::ApplyStyleCommandImpl::removeCSSStyle): Pass DoNotUpdateLayout to call to
        getPropertyCSSValue.
        (khtml::DeleteSelectionCommandImpl::computeTypingStyle): Remove this dead code.
        * khtml/editing/htmlediting_impl.h: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7636 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebKit:
cblu [Wed, 22 Sep 2004 21:25:44 +0000 (21:25 +0000)]
WebKit:

Fixed:
<rdar://problem/3667301> Frequent crashes in Mail when viewing HTML messages (CFURLGetByteRangeForComponent)
<rdar://problem/3810354> WebResourceLoadDelegate can't refuse requests by returning nil; code asserts/crashes instead

        Reviewed by rjw.

        * WebCoreSupport.subproj/WebSubresourceClient.m:
        (+[WebSubresourceClient startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]): removed broken code that handled loadWithRequest returning NO
        * WebView.subproj/WebBaseResourceHandleDelegate.m:
        (-[WebBaseResourceHandleDelegate loadWithRequest:]): if nil is returned from the client for willSendRequest, report the cancelled error and return

WebBrowser:

        Reviewed by rjw.

        * LoadProgressMonitor.m:
        (-[LoadProgressMonitor webView:resource:willSendRequest:redirectResponse:fromDataSource:]): updated to use "new" API, this wasn't being called!

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7635 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
kocienda [Wed, 22 Sep 2004 21:12:10 +0000 (21:12 +0000)]
WebCore:

        Reviewed by Darin

        * WebCore.pbproj/project.pbxproj: New files added.
        * khtml/khtml_part.cpp:
        (KHTMLPart::clearSelection): No longer calls setFocusIfNeeded.
        (KHTMLPart::slotClearSelection): Merged old implementation from this function to
        clearSelection. Now just calls clearSelection. Also put in !APPLE_CHANGES since
        we do not call it.
        * khtml/xml/dom_docimpl.cpp:
        (DocumentImpl::setFocusNode): Add some code to determine when setting the focus should
        clear the selection.
        * kwq/KWQWidget.mm:
        (QWidget::hasFocus): Call _webcore_effectiveFirstResponder to get view to check for focus.
        (QWidget::setFocus): Ditto.
        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge deselectText]): Called slotClearSelection and should have been. Now calls
        clearSelection.
        * kwq/WebCoreView.h: Added.
        * kwq/WebCoreView.m: Added.
        (-[NSView _webcore_effectiveFirstResponder]): New method to yield the correct responder
        to check for firstResponder-ness before calling makeFirstResonder. This helps to prevent
        unwanted firstResponder switching.
        (-[NSClipView _webcore_effectiveFirstResponder]): Ditto.
        (-[NSScrollView _webcore_effectiveFirstResponder]): Ditto.

WebKit:

        Reviewed by Darin

        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _webcore_effectiveFirstResponder]): New function to yield the correct responder
        to check for firstResponder-ness before calling makeFirstResonder. This helps to prevent
        unwanted firstResponder switching.
        * WebView.subproj/WebView.m:
        (-[WebView _webcore_effectiveFirstResponder]): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7634 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Darin.
mjs [Wed, 22 Sep 2004 20:36:10 +0000 (20:36 +0000)]
    Reviewed by Darin.

<rdar://problem/3805137> REGRESSION: Cannot search on pricetool.com

        The problem here is that residual style handling can cause an
element associated with a misnested form to lose the association,
because it can become detached and then reattached in this
case. So we need to maintain the association.

        * khtml/html/html_formimpl.h: Added list of dormant elements to form,
and dormant bit to generic form element.
* khtml/html/html_formimpl.cpp:
        (DOM::HTMLFormElementImpl::~HTMLFormElementImpl): Clear m_form field for
dormant elements too.
        (DOM::HTMLFormElementImpl::registerFormElement): Remove from dormant list
in addition to adding to main list.
        (DOM::HTMLFormElementImpl::removeFormElement): Remove from both lists.
        (DOM::HTMLFormElementImpl::makeFormElementDormant): New method, remove from
main list, add to dormant list.
        (DOM::HTMLGenericFormElementImpl::HTMLGenericFormElementImpl): Initialize
dormant bit to false.
        (DOM::HTMLGenericFormElementImpl::insertedIntoDocument): If the element is
dormant and has a form, re-register it and clear the dormant bit.
        (DOM::HTMLGenericFormElementImpl::removedFromDocument): If the document has
a form, tell the form it is dormant and set the dormant bit.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7633 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fixed: <rdar://problem/3811187> REGRESSION (Mail): Control-click past end of documen...
cblu [Wed, 22 Sep 2004 20:26:16 +0000 (20:26 +0000)]
Fixed: <rdar://problem/3811187> REGRESSION (Mail): Control-click past end of document does not spell check last word

        Reviewed by kocienda.

        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::validate): if at the end of the document, expand to the left.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7632 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoRemove stray non-ascii characters in ChangeLog.
mjs [Wed, 22 Sep 2004 20:15:52 +0000 (20:15 +0000)]
Remove stray non-ascii characters in ChangeLog.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7631 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken and John.
mjs [Wed, 22 Sep 2004 20:14:27 +0000 (20:14 +0000)]
    Reviewed by Ken and John.

<rdar://problem/3759228> REGRESSION (Mail): stray characters when entering text via input method right after newline

* khtml/editing/htmlediting_impl.cpp:
        (khtml::CompositeEditCommandImpl::inputText): Add an optional
selectInsertedText parameter.
        (khtml::ReplaceSelectionCommandImpl::doApply): Let the inputText operation
select the text when inserting plain text, because it already knows all the right
information to do so, and this function doesn't (sometimes text is inserted
before the start of the old selection, not after!)
        * khtml/editing/htmlediting_impl.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7630 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago More tweaks to dashboard regions style.
rjw [Wed, 22 Sep 2004 20:03:35 +0000 (20:03 +0000)]
More tweaks to dashboard regions style.

Move dashboard regions list into css3NonInheritedData so it will be shared
by all styles that don't modify the empty region list.

Make the initial value for dashboard region list a static to minimize allocations
of empty lists.

Unrelated to regions:  make marquee, flex box, and opacity style¬†accessor functions const.

        Reviewed by Hyatt.

        * khtml/rendering/render_style.cpp:
        (RenderStyle::diff):
        * khtml/rendering/render_style.h:
        (khtml::RenderStyle::opacity):
        (khtml::RenderStyle::boxAlign):
        (khtml::RenderStyle::boxDirection):
        (khtml::RenderStyle::boxFlexGroup):
        (khtml::RenderStyle::boxOrdinalGroup):
        (khtml::RenderStyle::boxOrient):
        (khtml::RenderStyle::boxPack):
        (khtml::RenderStyle::marqueeIncrement):
        (khtml::RenderStyle::marqueeSpeed):
        (khtml::RenderStyle::marqueeLoopCount):
        (khtml::RenderStyle::marqueeBehavior):
        (khtml::RenderStyle::marqueeDirection):
        (khtml::RenderStyle::dashboardRegions):
        (khtml::RenderStyle::setDashboardRegions):
        (khtml::RenderStyle::setDashboardRegion):
        (khtml::RenderStyle::initialDashboardRegions):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7629 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fix for 3802766, entire view redrawn in Blot while typing. Don't needlessly create...
hyatt [Wed, 22 Sep 2004 18:42:39 +0000 (18:42 +0000)]
Fix for 3802766, entire view redrawn in Blot while typing.  Don't needlessly create text nodes just to find
out the font for the caret position.

        Reviewed by darin

        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::fontForSelection):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7628 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
cblu [Wed, 22 Sep 2004 01:30:34 +0000 (01:30 +0000)]
WebCore:

Fixed:
<rdar://problem/3735071> REGRESSION (Mail): WebCore Editing must do smart paste
<rdar://problem/3799163> REGRESSION (Mail): Deleting a word doesn't delete whitespace

        Reviewed by darin.

        * khtml/editing/htmlediting.cpp:
        (khtml::DeleteSelectionCommand::DeleteSelectionCommand): take smartDelete parameter
        (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): take smartReplace parameter
        * khtml/editing/htmlediting.h:
        * khtml/editing/htmlediting_impl.cpp:
        (khtml::DeleteSelectionCommandImpl::DeleteSelectionCommandImpl): take smartDelete parameter
        (khtml::DeleteSelectionCommandImpl::doApply): delete whitespace before and after selection if necessary
        (khtml::ReplaceSelectionCommandImpl::ReplaceSelectionCommandImpl): take smartReplace parameter
        (khtml::ReplaceSelectionCommandImpl::doApply): add whitespace before and after the replacement if necessary
        * khtml/editing/htmlediting_impl.h:
        * kwq/WebCoreBridge.h:
        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:]): take smartReplace parameter
        (-[WebCoreBridge replaceSelectionWithNode:selectReplacement:smartReplace:]): ditto
        (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:selectReplacement:smartReplace:]): ditto
        (-[WebCoreBridge replaceSelectionWithText:selectReplacement:smartReplace:]): ditto
        (-[WebCoreBridge deleteSelectionWithSmartDelete:]): take smartDelete parameter

WebKit:

Fixed:
<rdar://problem/3735071> REGRESSION (Mail): WebCore Editing must do smart paste
<rdar://problem/3799163> REGRESSION (Mail): Deleting a word doesn't delete whitespace

        Reviewed by darin.

        * WebView.subproj/WebDataSource.m:
        (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): pass NO for smartReplace
        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
        (-[WebHTMLView _changeSpellingFromMenu:]): pass NO for smartReplace
        (-[WebHTMLView pasteboardTypesForSelection]): include WebSmartPastePboardType when _canSmartCopyOrDelete return YES
        (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): ditto
        (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
        (-[WebHTMLView delete:]): call _deleteSelection
        (-[WebHTMLView cut:]): don't call delegate twice, call _deleteRange to delete
        (-[WebHTMLView pasteAsPlainText:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
        (-[WebHTMLView _changeWordCaseWithSelector:]): pass NO for smartReplace
        (-[WebHTMLView deleteBackward:]): call _deleteSelection when there is a selected range
        (-[WebHTMLView _changeSpellingToWord:]): pass NO for smartReplace
        (-[WebHTMLView deleteToMark:]): pass NO for smartDeleteOK
        (-[WebHTMLView transpose:]): pass NO for smartReplace
        (-[WebHTMLView _shouldDeleteRange:]): moved
        (-[WebHTMLView _deleteRange:preflight:killRing:prepend:smartDeleteOK:]): moved, handle smartDelete
        (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): moved
        (-[WebHTMLView _deleteSelection]): new
(-[WebHTMLView _canSmartReplaceWithPasteboard]): new
(-[WebHTMLView _canSmartCopyOrDelete]): new
        (-[WebHTMLView setMarkedText:selectedRange:]): pass NO for smartReplace
        (-[WebHTMLView _discardMarkedText]): call _deleteSelection
        (-[WebTextCompleteController _insertMatch:]): pass NO for smartReplace
        (-[WebTextCompleteController endRevertingChange:moveLeft:]): pass NO for smartReplace
        * WebView.subproj/WebHTMLViewInternal.h:
        * WebView.subproj/WebView.m:
        (-[WebView _commonInitializationWithFrameName:groupName:]): set smartInsertDeleteEnabled to YES
        (-[WebView replaceSelectionWithNode:]): pass NO for smartReplace
        (-[WebView replaceSelectionWithText:]): pass NO for smartReplace
        (-[WebView replaceSelectionWithMarkupString:]): pass NO for smartReplace
        (-[WebView deleteSelection]): call _deleteSelection on WebHTMLView

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7627 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago More dashboard region work.
rjw [Wed, 22 Sep 2004 01:13:10 +0000 (01:13 +0000)]
More dashboard region work.

Added support for computed style and cssText for new region property.
Added restriction on length types allowed in region functions.
Added initial and inheritance support for -apple-dashboard-region.

        Reviewed by Hyatt.

        * khtml/css/css_computedstyle.cpp:
        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
        * khtml/css/css_valueimpl.cpp:
        (CSSPrimitiveValueImpl::cssText):
        * khtml/css/cssparser.cpp:
        (CSSParser::parseDashboardRegions):
        * khtml/css/cssstyleselector.cpp:
        (khtml::CSSStyleSelector::applyProperty):
        * khtml/rendering/render_object.cpp:
        (RenderObject::addDashboardRegions):
        * khtml/rendering/render_style.cpp:
        (RenderStyle::diff):
        * khtml/rendering/render_style.h:
        (khtml::StyleDashboardRegion::operator==):
        (khtml::RenderStyle::dashboardRegions):
        (khtml::RenderStyle::setDashboardRegions):
        (khtml::RenderStyle::initialDashboardRegions):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7626 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Wed, 22 Sep 2004 00:41:01 +0000 (00:41 +0000)]
    Reviewed by Ken.

        - fixed problem where our updateLayout call ignores pending stylesheets all the time

        * khtml/xml/dom_docimpl.h: Added updateLayoutIgnorePendingStylesheets.
        * khtml/xml/dom_docimpl.cpp:
        (DocumentImpl::updateLayout): Took out the "ignore pending stylesheets" business here.
        (DocumentImpl::updateLayoutIgnorePendingStylesheets): Put it in here.

        * khtml/ecma/kjs_dom.cpp: (DOMNode::getValueProperty): Call the new
        updateLayoutIgnorePendingStylesheets function.
        * khtml/ecma/kjs_html.cpp:
        (KJS::HTMLElement::getValueProperty): Ditto.
        (KJS::HTMLElement::putValue): Ditto.
        * khtml/ecma/kjs_views.cpp: (DOMAbstractViewFunc::tryCall): Ditto.
        * khtml/ecma/kjs_window.cpp:
        (Window::updateLayout): Ditto.
        (Selection::get): Ditto.
        (SelectionFunc::tryCall): Ditto.

        * khtml/html/html_imageimpl.h: Add ignorePendingStylesheets boolean parameter.
        * khtml/html/html_imageimpl.cpp:
        (HTMLImageElementImpl::width): Respect new parameter.
        (HTMLImageElementImpl::height): Ditto.

        - tweaks

        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Removed unneeded
        explicit "true" parameter to setSelection.
        (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7625 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Wed, 22 Sep 2004 00:38:27 +0000 (00:38 +0000)]
    Reviewed by Ken.

        - fix crash when pasting text at the end of the document and then doing an undo

        * khtml/editing/htmlediting_impl.cpp:
        (khtml::EditCommandImpl::apply): Call markMisspellingsInSelection before doing
        the editing operation, and we'll tell setSelection not to unmark the old selection.
        Also call updateLayout before calling appliedEditing so DOM operations in the
        code responding to the selection change will work.
        (khtml::EditCommandImpl::unapply): Ditto.
        (khtml::EditCommandImpl::reapply): Ditto.

        * khtml/khtml_part.h: Added a third parameter to setSelection to tell it whether
        to unmark the old selection. We must pass false when editing, because the old
        selection might have now-invalid offsets inside it.
        * khtml/khtml_part.cpp:
        (KHTMLPart::setSelection): Add unmarkOldSelection parameter, and respect it.
        (KHTMLPart::appliedEditing): Pass false for unmarkOldSelection.
        (KHTMLPart::unappliedEditing): Ditto.
        (KHTMLPart::reappliedEditing): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7624 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Part 2 of the feature requested in
rjw [Tue, 21 Sep 2004 22:12:14 +0000 (22:12 +0000)]
    Part 2 of the feature requested in
        <rdar://problem/3752791> Dashboard: Need a better solution for control regions

        This patch actually collections the regions and converts to absolute coordinates.
        Only remaining piece is to pass over the bridge and up the alley to WebKit
        UI delegate.

        Reviewed by Ken.

        * khtml/css/css_valueimpl.h:
        (DOM::CSSPrimitiveValueImpl::getDashboardRegionValue):
        * khtml/css/cssparser.cpp:
        (CSSParser::parseValue):
        (CSSParser::parseDashboardRegions):
        * khtml/css/cssproperties.c:
        * khtml/css/cssproperties.h:
        * khtml/css/cssproperties.in:
        * khtml/css/cssstyleselector.cpp:
        (khtml::CSSStyleSelector::applyProperty):
        * khtml/khtmlview.cpp:
        (KHTMLView::layout):
        * khtml/rendering/render_object.cpp:
        (RenderObject::computeDashboardRegions):
        (RenderObject::addDashboardRegions):
        (RenderObject::collectDashboardRegions):
        * khtml/rendering/render_object.h:
        (khtml::DashboardRegionValue::operator==):
        * khtml/rendering/render_style.cpp:
        * khtml/rendering/render_style.h:
        (khtml::StyleDashboardRegion::):
        (khtml::RenderStyle::dashboardRegions):
        (khtml::RenderStyle::setDashboardRegion):
        * khtml/xml/dom_docimpl.cpp:
        (DocumentImpl::DocumentImpl):
        (DocumentImpl::updateLayout):
        (DocumentImpl::acceptsEditingFocus):
        (DocumentImpl::dashboardRegions):
        (DocumentImpl::setDashboardRegions):
        * khtml/xml/dom_docimpl.h:
        (DOM::DocumentImpl::hasDashboardRegions):
        (DOM::DocumentImpl::setHasDashboardRegions):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7623 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
sullivan [Tue, 21 Sep 2004 22:09:48 +0000 (22:09 +0000)]
WebCore:

        Reviewed by Darin.

        - WebCore part of fix for <rdar://problem/3618274> REGRESSION (125-135):
        Option-tab doesn't always work as expected

        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::tabsToAllControls):
        reworked logic to match what we promise in the UI; this worked correctly
        before for regular tabbing, but not for option-tabbing.

        * kwq/KWQButton.mm:
        (QButton::focusPolicy):
        check tabsToAllControls() rather than just WebCoreKeyboardAccessFull

        * kwq/KWQComboBox.mm:
        (QComboBox::focusPolicy):
        ditto

        * kwq/KWQFileButton.mm:
        (KWQFileButton::focusPolicy):
        ditto

        * kwq/KWQListBox.mm:
        (QListBox::focusPolicy):
        ditto

WebKit:

        Reviewed by Darin.

        - WebKit part of fix for <rdar://problem/3618274> REGRESSION (125-135):
        Option-tab doesn't always work as expected

        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
        Don't set WebCoreKeyboardAccessFull when setting WebCoreKeyboardAccessTabsToLinks
        after all; these need to be tested independently to get the option-tab behavior
        correct.

WebBrowser:

Fixed: <rdar://problem/3807365> REGRSSION (8A259): drag bookmark to Finder does not appear in Finder

        Reviewed by john.

        * BookmarksViewController.m:
        (-[BookmarksViewController outlineView:namesOfPromisedFilesDroppedAtDestination:forDraggedItems:]): new, must implement this method on Tiger for promised drags to work

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7622 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago * WebView.subproj/WebHTMLView.m:
sullivan [Tue, 21 Sep 2004 21:53:57 +0000 (21:53 +0000)]
    * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView doCommandBySelector:]):
        Commented out part of previous change; it breaks Mail editing until Mail
        fixes bug 3810158.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7621 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago * khtml/xml/dom_selection.cpp:
sullivan [Tue, 21 Sep 2004 21:18:35 +0000 (21:18 +0000)]
    * khtml/xml/dom_selection.cpp:
        (DOM::Selection::modify):
        initialize xPos to make compiler happy in deployment builds

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7620 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
sullivan [Tue, 21 Sep 2004 19:00:12 +0000 (19:00 +0000)]
    Reviewed by Ken.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView doCommandBySelector:]):
        Fix build failure from previous checkin, d'oh! Didn't set up webview variable.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7619 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Tue, 21 Sep 2004 18:31:16 +0000 (18:31 +0000)]
    Reviewed by Ken.

        - some small mechanical improvements to the position and selection classes

        * khtml/xml/dom_position.h: Added clear(), startPosition(), and endPosition().
        * khtml/xml/dom_position.cpp:
        (DOM::Position::clear): Added.
        (DOM::startPosition): Added.
        (DOM::endPosition): Added.

        * khtml/xml/dom_caretposition.h: Changed m_position to m_deepPosition. Added clear(),
        removed node() and offset().
        * khtml/xml/dom_caretposition.cpp:
        (DOM::CaretPosition::init): Updated for name change of m_position to m_deepPosition.
        (DOM::CaretPosition::isLastInBlock): Ditto.
        (DOM::CaretPosition::next): Ditto.
        (DOM::CaretPosition::previous): Ditto.
        (DOM::CaretPosition::debugPosition): Ditto.
        (DOM::CaretPosition::formatForDebugger): Ditto.

        * khtml/xml/dom_selection.h: Remove setStart, setEnd, setStartAndEnd, rangeStart, rangeEnd,
        and all the assignXXX functions.
        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::Selection): Wean from assign functions, get and set data members directly.
        (DOM::Selection::init): Don't clear base, extent, start, and end, since they have constructors.
        (DOM::Selection::operator=): Wean from assign functions, get and set data members directly.
        (DOM::Selection::moveTo): Ditto.
        (DOM::Selection::setModifyBias): Ditto.
        (DOM::Selection::modifyExtendingRightForward): Ditto.
        (DOM::Selection::modifyMovingRightForward): Ditto.
        (DOM::Selection::modifyExtendingLeftBackward): Ditto.
        (DOM::Selection::modifyMovingLeftBackward): Ditto.
        (DOM::Selection::modify): Ditto.
        (DOM::Selection::xPosForVerticalArrowNavigation): Ditto.
        (DOM::Selection::clear): Ditto.
        (DOM::Selection::setBase): Ditto.
        (DOM::Selection::setExtent): Ditto.
        (DOM::Selection::setBaseAndExtent): Ditto.
        (DOM::Selection::toRange): Ditto.
        (DOM::Selection::layoutCaret): Ditto.
        (DOM::Selection::needsCaretRepaint): Ditto.
        (DOM::Selection::validate): Ditto.
        (DOM::Selection::debugRenderer): Ditto.
        (DOM::Selection::debugPosition): Ditto.
        (DOM::Selection::end):

        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::advanceToNextMisspelling): Tweaked whitespace.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7618 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
sullivan [Tue, 21 Sep 2004 18:08:25 +0000 (18:08 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3809477> WebHTMLView needs to pass doCommandBySelector through delegate

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView doCommandBySelector:]):
        Call through to editing delegate. If editing delegate returns YES, don't call super.

        * WebView.subproj/WebDefaultEditingDelegate.m:
        (-[WebDefaultEditingDelegate webView:doCommandBySelector:]):
        default implementation (which was never called) was returning YES, but it should
        return NO to signal that it didn't handle the selector.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7617 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
cblu [Tue, 21 Sep 2004 17:06:47 +0000 (17:06 +0000)]
WebCore:

Fixed: <rdar://problem/3647229> Safari does not play inline Windows Media Content on some sites (miggy.net and ministryofsound.com)

        Reviewed by john.

        * khtml/rendering/render_frames.cpp:
        (RenderPartObject::updateWidget): when no MIME type is specified map from the WMP CLASSID to the WMP MIME type, look for the URL of the content in the URL PARAM tag

WebKit:

Fixed: <rdar://problem/3647229> Safari does not play inline Windows Media Content on some sites (miggy.net and ministryofsound.com)

        Reviewed by john.

        * Plugins.subproj/WebBaseNetscapePluginView.m:
        * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
        (-[WebNetscapePluginEmbeddedView initWithFrame:plugin:URL:baseURL:MIMEType:attributeKeys:attributeValues:]): set the plug-in before calling setting the attributes, so we can avoid passing certain attributes to the WMP plug-in that cause it to crash

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7616 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Maciej.
darin [Tue, 21 Sep 2004 01:16:39 +0000 (01:16 +0000)]
    Reviewed by Maciej.

        - fixed regression from my recent check-in where misspelled words do not get unmarked when moving the caret
        - changed CaretPosition to hold a Position instead of a node and offset
        - renamed isEmpty to isNull, etc.

        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::jumpToSelection): Updated for name changes.
        (KWQKHTMLPart::advanceToNextMisspelling): Ditto.
        (KWQKHTMLPart::fontForSelection): Ditto.
        (KWQKHTMLPart::setDisplaysWithFocusAttributes): Ditto.
        (KWQKHTMLPart::markMisspellingsInSelection): Ditto.
        (KWQKHTMLPart::updateSpellChecking): Fixed bug by using LeftWordIfOnBoundary.

        * khtml/xml/dom_position.h: Updated for name changes.
        * khtml/xml/dom_position.cpp:
        (DOM::Position::element): Change to not use a separate null check.
        (DOM::Position::computedStyle): Updated for name changes.
        (DOM::Position::previousCharacterPosition): Ditto.
        (DOM::Position::nextCharacterPosition): Ditto.
        (DOM::Position::equivalentRangeCompliantPosition): Ditto.
        (DOM::Position::equivalentShallowPosition): Ditto.
        (DOM::Position::equivalentDeepPosition): Ditto.
        (DOM::Position::closestRenderedPosition): Ditto.
        (DOM::Position::inRenderedContent): Ditto.
        (DOM::Position::inRenderedText): Ditto.
        (DOM::Position::isRenderedCharacter): Ditto.
        (DOM::Position::rendersInDifferentPosition): Ditto.
        (DOM::Position::isFirstRenderedPositionOnLine): Ditto.
        (DOM::Position::isLastRenderedPositionOnLine): Ditto.
        (DOM::Position::inFirstEditableInRootEditableElement): Ditto.
        (DOM::Position::leadingWhitespacePosition): Ditto.
        (DOM::Position::trailingWhitespacePosition): Ditto.
        (DOM::Position::debugPosition): Ditto.
        (DOM::Position::formatForDebugger): Ditto.

        * khtml/xml/dom_caretposition.h: Change to use m_position, and change names.
        * khtml/xml/dom_caretposition.cpp:
        (DOM::CaretPosition::CaretPosition): Remove code to set up m_node.
        (DOM::CaretPosition::init): Set m_position directly.
        (DOM::CaretPosition::isLastInBlock): Updated for name changes.
        (DOM::CaretPosition::next): Set m_position directly.
        (DOM::CaretPosition::previous): Set m_position directly.
        (DOM::CaretPosition::previousCaretPosition): Updated for name changes.
        (DOM::CaretPosition::nextCaretPosition): Ditto.
        (DOM::CaretPosition::previousPosition): Ditto.
        (DOM::CaretPosition::nextPosition): Ditto.
        (DOM::CaretPosition::atStart): Ditto.
        (DOM::CaretPosition::atEnd): Ditto.
        (DOM::CaretPosition::isCandidate): Ditto.
        (DOM::CaretPosition::debugPosition): Ditto.
        (DOM::CaretPosition::formatForDebugger): Ditto.
        (DOM::startOfWord): Ditto.
        (DOM::endOfWord): Ditto.
        (DOM::previousParagraphPosition): Ditto.
        (DOM::nextParagraphPosition): Ditto.

        * khtml/xml/dom_selection.h: Updated names. Added isCaret and isRange.
        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::modifyMovingRightForward): Updated for name changes.
        (DOM::Selection::modifyMovingLeftBackward): Ditto.
        (DOM::Selection::modify): Ditto.
        (DOM::Selection::expandUsingGranularity): Ditto.
        (DOM::Selection::xPosForVerticalArrowNavigation): Ditto.
        (DOM::Selection::toRange): Ditto.
        (DOM::Selection::layoutCaret): Ditto.
        (DOM::Selection::needsCaretRepaint): Ditto.
        (DOM::Selection::validate): Ditto.
        (DOM::startOfFirstRunAt): Ditto.
        (DOM::endOfLastRunAt): Ditto.
        (DOM::selectionForLine): Ditto.
        (DOM::Selection::formatForDebugger): Ditto.

        * khtml/ecma/kjs_window.cpp:
        (Selection::get): Updated for name changes.
        (Selection::toString): Ditto.
        * khtml/editing/htmlediting_impl.cpp:
        (khtml::debugPosition): Ditto.
        (khtml::StyleChange::init): Ditto.
        (khtml::StyleChange::currentlyHasStyle): Ditto.
        (khtml::CompositeEditCommandImpl::deleteSelection): Ditto.
        (khtml::CompositeEditCommandImpl::deleteUnrenderedText): Ditto.
        (khtml::ApplyStyleCommandImpl::doApply): Ditto.
        (khtml::DeleteSelectionCommandImpl::doApply): Ditto.
        (khtml::InputNewlineCommandImpl::doApply): Ditto.
        (khtml::InputTextCommandImpl::prepareForTextInsertion): Ditto.
        (khtml::InputTextCommandImpl::input): Ditto.
        (khtml::ReplaceSelectionCommandImpl::doApply): Ditto.
        (khtml::MoveSelectionCommandImpl::doApply): Ditto.
        (khtml::TypingCommandImpl::doApply): Ditto.
        (khtml::TypingCommandImpl::markMisspellingsAfterTyping): Ditto.
        (khtml::TypingCommandImpl::issueCommandForDeleteKey): Ditto.
        * khtml/editing/jsediting.cpp:
        (enabledAnySelection): Ditto.
        (enabledRangeSelection): Ditto.
        * khtml/khtml_part.cpp:
        (KHTMLPart::hasSelection): Ditto.
        (KHTMLPart::setFocusNodeIfNeeded): Ditto.
        (KHTMLPart::selectionLayoutChanged): Ditto.
        (KHTMLPart::timerEvent): Ditto.
        (KHTMLPart::isPointInsideSelection): Ditto.
        (KHTMLPart::selectClosestWordFromMouseEvent): Ditto.
        (KHTMLPart::handleMousePressEventTripleClick): Ditto.
        (KHTMLPart::handleMousePressEventSingleClick): Ditto.
        (KHTMLPart::handleMouseMoveEventSelection): Ditto.
        (KHTMLPart::khtmlMouseReleaseEvent): Ditto.
        (KHTMLPart::selectionHasStyle): Ditto.
        (KHTMLPart::selectionComputedStyle): Ditto.
        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::updateSelection): Ditto.
        * khtml/xml/dom_positioniterator.cpp:
        (DOM::PositionIterator::peekPrevious): Ditto.
        (DOM::PositionIterator::peekNext): Ditto.
        (DOM::PositionIterator::atStart): Ditto.
        (DOM::PositionIterator::atEnd): Ditto.
        * khtml/xml/dom_positioniterator.h:
        (DOM::PositionIterator::isEmpty): Ditto.
        * kwq/KWQRenderTreeDebug.cpp:
        (writeSelection): Ditto.
        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge editableDOMRangeForPoint:]): Ditto.
        (-[WebCoreBridge deleteSelection]): Ditto.
        (-[WebCoreBridge ensureCaretVisible]): Ditto.
        (-[WebCoreBridge rangeOfCharactersAroundCaret]): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7615 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Maciej.
darin [Tue, 21 Sep 2004 00:28:00 +0000 (00:28 +0000)]
    Reviewed by Maciej.

        - fixed <rdar://problem/3808073> find is broken

        * khtml/misc/khtml_text_operations.h: Add m_pastEndNode and change name of m_endNode to
        m_endContainer to more accurately reflect its purpose.
        * khtml/misc/khtml_text_operations.cpp:
        (khtml::TextIterator::TextIterator): Use pastEnd() for end of iteration, and change to
        handle bad ranges better: just return an empty iterator instead of raising an exception.
        (khtml::TextIterator::advance): Change to use m_pastEndNode to detect the end of iteration.
        (khtml::TextIterator::handleTextNode): Update for name change.
        (khtml::TextIterator::handleTextBox): Ditto.
        (khtml::TextIterator::range): Handle case where m_endContainer is nil.

        * khtml/xml/dom2_rangeimpl.cpp:
        (DOM::RangeImpl::surroundContents): Use offsetInCharacters.
        (DOM::RangeImpl::startNode): Added check for nil start container and use offsetInCharacters.
        (DOM::RangeImpl::pastEndNode): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7614 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
cblu [Mon, 20 Sep 2004 23:56:20 +0000 (23:56 +0000)]
WebCore:

Fixed: <rdar://problem/3781290> REGRESSION (Mail): Crash in ReplaceSelectionCommandImpl attaching file to new message

        Reviewed by kocienda.

        * khtml/khtml_part.cpp:
        (KHTMLPart::setSelection): setFocusNodeIfNeeded now works on the current selection so call setFocusNodeIfNeeded after setting the selection
        (KHTMLPart::clearSelection): don't call setFocusNodeIfNeeded with the current selection
        (KHTMLPart::setCaretVisible): ditto
        (KHTMLPart::setFocusNodeIfNeeded): do nothing if the part isn't focused, work with the current selection
        * khtml/khtml_part.h:
        * khtml/khtmlpart_p.h:
        (KHTMLPartPrivate::KHTMLPartPrivate): added m_isFocused
        * kwq/KWQKHTMLPart.h:
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::KWQKHTMLPart): removed _displaysWithFocusAttributes this is replaced by m_isFocused
        (KWQKHTMLPart::setSelectionFromNone): new, code factored out from setDisplaysWithFocusAttributes
        (KWQKHTMLPart::setDisplaysWithFocusAttributes): call setSelectionFromNone
        (KWQKHTMLPart::displaysWithFocusAttributes): now returns m_isFocused
        * kwq/WebCoreBridge.h:
        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge setSelectionFromNone]): new

WebKit:

Fixed: <rdar://problem/3781290> REGRESSION (Mail): Crash in ReplaceSelectionCommandImpl attaching file to new message

        Reviewed by kocienda.

        * WebView.subproj/WebView.m:
        (-[WebView setEditable:]): call updateSelectionFromEmpty on the bridge if there is no selection

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7613 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Dave.
darin [Mon, 20 Sep 2004 23:26:23 +0000 (23:26 +0000)]
    Reviewed by Dave.

        - fixed nil-deref happening often in Mail when I delete

        * khtml/rendering/render_br.cpp: (RenderBR::selectionRect): Check for nil lastLeafChild.
        Dave may want to figure out why it's nil and do a different fix later.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7612 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Richard.
mjs [Mon, 20 Sep 2004 21:53:19 +0000 (21:53 +0000)]
    Reviewed by Richard.

<rdar://problem/3672101> HANG: typing into login field at dws-direkt.deutsche-bank.de (infinite recursion)

* khtml/xml/dom_docimpl.cpp:
        (DocumentImpl::defaultEventHandler): Copy the list of handlers
before firing any of them, in case a handler affects the list of
event handlers.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7611 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
cblu [Mon, 20 Sep 2004 21:36:27 +0000 (21:36 +0000)]
WebCore:

Fixed:
<rdar://problem/3429921> obey PARAM tags inside of OBJECT tags when necessary
<rdar://problem/3515685> Object tag in Java 1.4.1 / Safari doesn't recognize params

        Reviewed by darin.

        * khtml/khtml_part.cpp:
        (KHTMLPart::requestFrame): take 2 parameter arrays rather than 1 which will have to be parsed
        (KHTMLPart::requestObject): ditto
        * khtml/khtml_part.h:
        * khtml/khtmlpart_p.h:
        * khtml/rendering/render_frames.cpp:
        (RenderPartObject::updateWidget): use PARAM tags when there is no EMBED specified
        * kwq/KWQKHTMLPart.h:
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::createPart): call renamed bridge method
        * kwq/KWQKJavaAppletWidget.mm:
        (KJavaAppletWidget::KJavaAppletWidget): ditto
        * kwq/KWQStringList.h:
        * kwq/KWQStringList.mm:
        (QStringList::getNSArray): return a const array
        * kwq/WebCoreBridge.h:
        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge URLWithAttributeString:]): renamed to match API

WebKit:

Changes to implement renamed bridge methods.

        Reviewed by darin.

        * ChangeLog:
        * DOM.subproj/WebDOMOperations.m:
        (-[DOMDocument URLWithAttributeString:]): call renamed bridge method
        * WebCoreSupport.subproj/WebBridge.m:
        (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): take 2 parameter arrays rather than 1 which will have to be parsed
        (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]): ditto

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7610 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Chris.
darin [Mon, 20 Sep 2004 20:21:16 +0000 (20:21 +0000)]
    Reviewed by Chris.

        * WebView.subproj/WebFramePrivate.h: Added back.
        * WebView.subproj/WebFrameViewPrivate.h: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7609 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoWebCore:
darin [Mon, 20 Sep 2004 18:54:11 +0000 (18:54 +0000)]
WebCore:

        Reviewed by Ken.

        - fixed <rdar://problem/3655360> REGRESSION (Mail): Ctrl-V emacs key binding, -pageDown: method, unimplemented (and pageUp, and selection-modifying versions)
        - fixed <rdar://problem/3735055> REGRESSION (Mail): WebCore double click rules treat style change as a boundary
        - fixed <rdar://problem/3789939> REGRESSION (Mail): double-clicking on border whitespace selects space plus word before/after
        - fixed <rdar://problem/3792138> REGRESSION (Mail): Spell checker doesn't check current selected word
        - fixed <rdar://problem/3806604> REGRESSION (164): Triple-click sometimes selects extra characters
        - fixed <rdar://problem/3806996> REGRESSION (125-162): Triple-click in <pre> tagged text behaves oddly (leuf.net)

        * khtml/xml/dom_caretposition.h: Added a lot of new functions. Removed implicit conversion operator
        that converts from CaretPosition to Position.
        * khtml/xml/dom_caretposition.cpp:
        (DOM::CaretPosition::CaretPosition): Change to call deepEquivalent so it works without the implicit
        Position conversion operator.
        (DOM::CaretPosition::operator=): Ditto.
        (DOM::CaretPosition::next): Ditto.
        (DOM::CaretPosition::previous): Ditto.
        (DOM::CaretPosition::setPosition): Added an assertion.
        (DOM::start): Added.
        (DOM::end): Added.
        (DOM::setStart): Added.
        (DOM::setEnd): Added.
        (DOM::previousWordBoundary): Added.
        (DOM::nextWordBoundary): Added.
        (DOM::startWordBoundary): Added.
        (DOM::startOfWord): Added.
        (DOM::endWordBoundary): Added.
        (DOM::endOfWord): Added.
        (DOM::previousWordPositionBoundary): Added.
        (DOM::previousWordPosition): Added.
        (DOM::nextWordPositionBoundary): Added.
        (DOM::nextWordPosition): Added.
        (DOM::previousLinePosition): Added.
        (DOM::nextLinePosition): Added.
        (DOM::startOfParagraph): Changed function name.
        (DOM::endOfParagraph): Changed function name. Fixed code in includeLineBreak to work around
        the CaretPosition constructor issue for <br>, pass the right parameter for the block flow case,
        and handle <pre> properly.
        (DOM::inSameParagraph): Added.
        (DOM::previousParagraphPosition): Added.
        (DOM::nextParagraphPosition): Added.

        * khtml/xml/dom_position.h: Removed a number of functions no longer used; also made some private.
        * khtml/xml/dom_position.cpp: Removed a number of functions no longer used.

        * khtml/xml/dom_selection.h: Replaced DOCUMENT with DOCUMENT_BOUNDARY. Added overloads of lots
        of functions that take CaretPosition directly. Added overload of modify that takes a parameter
        for vertical distance to help implement pageDown: and friends. Replaced getRepaintRect with
        two new functions named caretRect and caretRepaintRect. Removed nodeIsBeforeNode.
        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::Selection): Added constructor that takes two CaretPosition objects.
        (DOM::Selection::setModifyBias): Added. Helper function.
        (DOM::Selection::modifyExtendingRightForward): Don't set modify bias, since that's now the caller's
        responsibility. Reimplement WORD and LINE in terms of new CaretPosition functions. Implement PARAGRAPH
        and change PARAGRAPH_BOUNDARY to use CaretPosition function by its new name.
        (DOM::Selection::modifyMovingRightForward): Ditto.
        (DOM::Selection::modifyExtendingLeftBackward): Ditto.
        (DOM::Selection::modifyMovingLeftBackward): Ditto.
        (DOM::Selection::modify): Call setModifyBias, and use a switch statement instead of if.
        (DOM::caretY): Added. Helper for the new modify function that implements moving a pixel distance,
        used by pageDown: and friends.
        (DOM::Selection::modify): Added.
        (DOM::Selection::toRange): Use RangeImpl::compareBoundaryPoints instead of nodeIsBeforeNode.
        (DOM::Selection::caretRect): Added. Replaces getRepaintRect, but does not add slop.
        (DOM::Selection::caretRepaintRect): Added. Replaces getRepaintRect; still adds slop.
        (DOM::Selection::needsCaretRepaint): Call caretRepaintRect.
        (DOM::Selection::validate): Use RangeImpl::compareBoundaryPoints instead of nodeIsBeforeNode.
        Reimplement WORD to use new CaretPosition functions; this fixes the double-clicking problems.
        Change paragraph calls to use new names.

        * ForwardingHeaders/dom/dom_position.h: Removed. This was in the wrong location.
        * khtml/editing/htmlediting.cpp: Fixed include that said "dom/dom_position.h".
        * khtml/editing/htmlediting_impl.cpp: Fixed include that said "dom/dom_position.h".
        (khtml::TypingCommandImpl::markMisspellingsAfterTyping): Rewrote this to use the new CaretPosition
        functions instead of the old Position functions.

        * khtml/misc/helper.h: Added const to character pointer parameter. Also put invertedColor inside
        an !APPLE_CHANGES since it doesn't do us any good.
        * khtml/misc/helper.cpp:
        (khtml::findWordBoundary): Added const to character pointer parameter.
        (khtml::nextWordFromIndex): Ditto.

        * kwq/KWQTextUtilities.h: Change parameters to const.
        * kwq/KWQTextUtilities.cpp: (KWQFindWordBoundary): Change parameter to const.
        * kwq/KWQTextUtilities.mm: (KWQFindNextWordFromIndex): Change parameter to const.

        * khtml/css/cssstyleselector.cpp: Disable code that uses invertedColor when APPLE_CHANGES, since it
        won't work for us.

        * khtml/rendering/render_canvas.cpp: (RenderCanvas::setSelection): Added checks for selection end
        so we can set the selection end to nodes that are not leaf nodes and it will still work. Also took
        out bogus firstChild/lastChild loops for the same reason.

        * kwq/KWQKHTMLPart.h: Add "start before selection" flag to advanceToNextMisspelling.
        Needed to fix bug with spell checking.
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::findString): Changed to use CaretPosition.
        (KWQKHTMLPart::advanceToNextMisspelling): Added code to handle "start before selection" flag
        and changed to use CaretPosition and new helper functions.
        (KWQKHTMLPart::markMisspellingsInSelection): More changes to use CaretPosition.
        (KWQKHTMLPart::updateSpellChecking): Ditto.

        * kwq/WebCoreBridge.h: Replaced WebSelectByDocument with WebSelectToDocumentBoundary.
        Added advanceToNextMisspellingStartingJustBeforeSelection,
        rangeByAlteringCurrentSelection:verticalDistance:, and
        alterCurrentSelection:verticalDistance:.

        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge advanceToNextMisspellingStartingJustBeforeSelection]): Added.
        (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Added case for selecting by
        paragraph to save X position.
        (-[WebCoreBridge rangeByAlteringCurrentSelection:verticalDistance:]): Added.
        (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Added.
        (-[WebCoreBridge ensureCaretVisible]): Call caretRect instead of getRepaintRect.

WebKit:

        Reviewed by Ken.

        - fixed <rdar://problem/3655360> REGRESSION (Mail): Ctrl-V emacs key binding, -pageDown: method, unimplemented (and pageUp, and selection-modifying versions)
        - fixed <rdar://problem/3792138> REGRESSION (Mail): Spell checker doesn't check current selected word

        * WebView.subproj/WebFrameViewInternal.h: Moved WebFrameViewPrivate inside the WebFrameView.m file.
        Removed a bunch of methods that don't need to be seen in other files, and added _verticalPageScrollDistance.
        * WebView.subproj/WebFrameViewPrivate.h: Removed. Renamed to WebFrameViewInternal.h.
        * WebView.subproj/WebFrameView.m:
        (-[WebFrameView _verticalKeyboardScrollDistance]): Move in the file because of internal vs. private.
        (-[WebFrameView _shouldDrawBorder]): Ditto.
        (-[WebFrameView _tile]): Ditto.
        (-[WebFrameView _verticalPageScrollDistance]): Added. Separate method so it can be called
        by the code to implement pageDown:.
        (-[WebFrameView _drawBorder]): Move in the file because of internal vs. private.
        (-[WebFrameView _goBack]): Ditto.
        (-[WebFrameView _goForward]): Ditto.
        (-[WebFrameView _scrollVerticallyBy:]): Ditto.
        (-[WebFrameView _scrollHorizontallyBy:]): Ditto.
        (-[WebFrameView _horizontalKeyboardScrollDistance]): Ditto.
        (-[WebFrameView _horizontalPageScrollDistance]): Added. Separate method for consistency with
        vertical method above.
        (-[WebFrameView _pageVertically:]): Moved and changed to use _verticalPageScrollDistance.
        (-[WebFrameView _pageHorizontally:]): Moved and changed to use _horizontalPageScrollDistance.
        (-[WebFrameView _scrollLineVertically:]): Move in the file because of internal vs. private.
        (-[WebFrameView _scrollLineHorizontally:]): Ditto.
        (-[WebFrameView scrollPageUp:]): Ditto.
        (-[WebFrameView scrollPageDown:]): Ditto.
        (-[WebFrameView scrollLineUp:]): Ditto.
        (-[WebFrameView scrollLineDown:]): Ditto.
        (-[WebFrameView _firstResponderIsControl]): Ditto.
        (-[WebFrameView keyDown:]): Changed to eliminate _pageLeft, _lineLeft, _pageRight, and _lineRight.

        * WebView.subproj/WebDataSource.m: Use WebFrameView.h instead of WebFrameViewPrivate.h.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _alterCurrentSelection:verticalDistance:]): Added.
        (-[WebHTMLView moveToBeginningOfDocument:]): Use WebSelectToDocumentBoundary.
        (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
        (-[WebHTMLView moveToEndOfDocument:]): Ditto.
        (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
        (-[WebHTMLView moveParagraphBackwardAndModifySelection:]): Added.
        (-[WebHTMLView moveParagraphForwardAndModifySelection:]): Added.
        (-[WebHTMLView pageUp:]): Added.
        (-[WebHTMLView pageDown:]): Added.
        (-[WebHTMLView pageUpAndModifySelection:]): Added.
        (-[WebHTMLView pageDownAndModifySelection:]): Added.
        (-[WebHTMLView showGuessPanel:]): Changed to call advanceToNextMisspellingStartingJustBeforeSelection.
        This fixes the problem with spell checking.

        * WebView.subproj/WebImageView.m:
        (-[WebImageView webView]): Changed to use _web_parentWebView.
        (-[WebImageView menuForEvent:]): Changed to use [self webView].
        (-[WebImageView mouseDown:]): Ditto.
        (-[WebImageView mouseDragged:]): Ditto.
        (-[WebImageView draggedImage:endedAt:operation:]): Ditto.

        * WebView.subproj/WebTextView.m:
        (-[WebTextView _textSizeMultiplierFromWebView]): Changed to use _web_parentWebView.
        (-[WebTextView menuForEvent:]): Ditto.
        (-[WebTextView drawPageBorderWithSize:]): Ditto.
        (-[WebTextView knowsPageRange:]): Ditto.

        * Plugins.subproj/WebPluginDatabase.m: Updated filename of WebFrameViewInternal.h.
        * WebCoreSupport.subproj/WebBridge.m: Ditto.
        * WebKit.pbproj/project.pbxproj: Ditto.
        * WebView.subproj/WebFrame.m: Ditto.
        * WebView.subproj/WebView.m: Ditto.
        * Misc.subproj/WebNSViewExtras.m: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7608 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Mon, 20 Sep 2004 18:52:21 +0000 (18:52 +0000)]
    Reviewed by Ken.

        - cleaned up DOM::RangeImpl a little so compareBoundaryPoints can be used outside the class

        * khtml/xml/dom2_rangeimpl.h: Added const to many of the member functions and made the
        compareBoundaryPoints that works on parameters be a const member function.
        * khtml/xml/dom2_rangeimpl.cpp:
        (DOM::RangeImpl::commonAncestorContainer): Added const.
        (DOM::RangeImpl::compareBoundaryPoints): Added const.
        (DOM::RangeImpl::boundaryPointsValid): Added const, and wrote cleaner version.
        (DOM::RangeImpl::insertNode): Simplified by calling containedByReadOnly.
        (DOM::RangeImpl::toString): Added const.
        (DOM::RangeImpl::toHTML): Added const.
        (DOM::RangeImpl::createContextualFragment): Added const.
        (DOM::RangeImpl::cloneRange): Added const.
        (DOM::RangeImpl::surroundContents): Simplified by calling containedByReadOnly.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7607 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Mon, 20 Sep 2004 18:51:24 +0000 (18:51 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3806990> REGRESSION (125-162): Crash on Select All at http://leuf.net/cgi/wikidn?PerlConvertEolScript

        * khtml/rendering/render_replaced.cpp: (RenderWidget::setSelectionState): Added nil check for the
        widget.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7606 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Mon, 20 Sep 2004 18:50:49 +0000 (18:50 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3773740> calling addEventListener on a frame that hasn't loaded yet crashes

        * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Add nil checks for the document.
        The nil check prevents the crash but there's still a bug here; I filed 3807059 about that.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7605 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Mon, 20 Sep 2004 18:49:50 +0000 (18:49 +0000)]
    Reviewed by Ken.

        - fixed problem where up and down arrow keys are not preserving X position

        * khtml/khtml_part.cpp:
        (KHTMLPart::selectionLayoutChanged): Moved code to clear m_xPosForVerticalArrowNavigation out of here.
        (KHTMLPart::notifySelectionChanged): Moved it into here.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7604 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoFix filename.
darin [Mon, 20 Sep 2004 18:48:31 +0000 (18:48 +0000)]
Fix filename.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7603 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Mon, 20 Sep 2004 18:47:32 +0000 (18:47 +0000)]
    Reviewed by Ken.

        - added helper method _web_parentWebView so fewer files need to get at WebFrame private methods

        * Misc.subproj/WebNSViewExtras.h: Added _web_parentWebView.
        * Misc.subproj/WebNSViewExtras.m: (-[NSView _web_parentWebView]): Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7602 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Maciej.
darin [Sun, 19 Sep 2004 01:12:53 +0000 (01:12 +0000)]
    Reviewed by Maciej.

        - fixed <rdar://problem/3805627> -[DOMRange _text] sometimes includes all text to the end of the document for certain ranges

        * khtml/misc/khtml_text_operations.cpp: (khtml::TextIterator::advance):
        Correctly handle the case when we are already on m_endNode. The concept here is that
        m_endNode is a node you must never "leave" when iterating.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7596 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agochange version number to 2.0, 165u for TOT
vicki [Fri, 17 Sep 2004 19:22:35 +0000 (19:22 +0000)]
change version number to 2.0, 165u for TOT

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7595 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoSafari-164 stamp for everything except WebBrowser. In these projects, CFBundleShortV...
vicki [Fri, 17 Sep 2004 19:06:13 +0000 (19:06 +0000)]
Safari-164 stamp for everything except WebBrowser.  In these projects, CFBundleShortVersionString matches CFBundleVersion (164 for both).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7593 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fixed:
cblu [Fri, 17 Sep 2004 18:10:10 +0000 (18:10 +0000)]
Fixed:
<rdar://problem/3805757> don't unnecessarily put RTFD on the pasteboard
<rdar://problem/3805756> strip attachments before generating RTF

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): only put RTFD on the pasteboard if it has attachments, strip attachments when writing RTF

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7592 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by me
kocienda [Fri, 17 Sep 2004 16:49:42 +0000 (16:49 +0000)]
    Reviewed by me

        * layout-tests/editing/selection/unrendered-004-expected.txt: Updated expected results.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7591 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Darin
kocienda [Fri, 17 Sep 2004 16:44:24 +0000 (16:44 +0000)]
    Reviewed by Darin

        Fix for this bug:

        <rdar://problem/3780245> REGRESSION (Mail): some lines are skipped when doing arrow navigation

        * khtml/xml/dom_position.cpp:
        (DOM::Position::previousLinePosition): One-line fix. Make sure that BRs at the end of blocks
        are not skipped.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7590 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Darin
kocienda [Fri, 17 Sep 2004 16:42:39 +0000 (16:42 +0000)]
    Reviewed by Darin

        Fix for this bug:

        <rdar://problem/3805594> REGRESSION (Mail): Second return key stroke does not work when first was in blockquote

        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::toRange): Code to convert caret positions moved the position upstream
        before making a range-compliant position, but erroneously would allow the position
        to cross blocks. Now it will no longer do so.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7589 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Part 1 of the feature requested in
rjw [Fri, 17 Sep 2004 00:58:41 +0000 (00:58 +0000)]
    Part 1 of the feature requested in
        <rdar://problem/3752791> Dashboard: Need a better solution for control regions

        This patch implements the CSS parsing necessary for dashboard regions.
        Here's an example of the syntax we support:

        <style>
        #aDiv {
            -apple-dashboard-region:
                dashboard-region-circle(control 0 0 80 0)
                dashboard-region-rectangle(control,20,0,20,0)
                dashboard-region-circle(control 80 0 0 0);
        }
        </style>

Part 2 will determine the appropriate regions.

        Reviewed by Chris.

        * khtml/css/css_valueimpl.cpp:
        (CSSPrimitiveValueImpl::CSSPrimitiveValueImpl):
        * khtml/css/css_valueimpl.h:
        (DOM::CSSPrimitiveValueImpl::):
        (DOM::DashboardRegionImpl::DashboardRegionImpl):
        (DOM::DashboardRegionImpl::~DashboardRegionImpl):
        (DOM::DashboardRegionImpl::setNext):
        (DOM::DashboardRegionImpl::setLabel):
        * khtml/css/cssparser.cpp:
        (CSSParser::parseValue):
        (CSSParser::parseContent):
        (skipCommaInDashboardRegion):
        (CSSParser::parseDashboardRegions):
        * khtml/css/cssparser.h:
        * khtml/css/cssproperties.c:
        (hash_prop):
        (findProp):
        * khtml/css/cssproperties.h:
        * khtml/css/cssproperties.in:
        * khtml/dom/css_value.h:
        (DOM::CSSPrimitiveValue::):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7588 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago - fixed caret-drawing regression from my last patch
darin [Thu, 16 Sep 2004 23:45:22 +0000 (23:45 +0000)]
    - fixed caret-drawing regression from my last patch

        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::xPosForVerticalArrowNavigation): Pass false, meaning "vertical line caret"
        rather than true meaning "big box for overtyping".
        (DOM::Selection::layoutCaret): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7587 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John.
darin [Thu, 16 Sep 2004 23:09:22 +0000 (23:09 +0000)]
    Reviewed by John.

        - fixed <rdar://problem/3804648> 8A262: Safari crashed in -[WebView(WebPrivate) _editingDelegateForwarder] inside QuickTime Cocoa Plug-in during WebView deallocation

        * WebView.subproj/WebView.m: (-[WebView _editingDelegateForwarder]):
        Check _private for nil before dereferencing it.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7586 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Ken.
darin [Thu, 16 Sep 2004 22:24:15 +0000 (22:24 +0000)]
    Reviewed by Ken.

        - fixed <rdar://problem/3803280> crash in selectAll on page with no contents

        * khtml/khtml_part.cpp: (KHTMLPart::selectAll): Handle case of 0 for documentElement().
        * khtml/xml/dom_position.cpp:
        (DOM::Position::previousWordPosition): Ditto.
        (DOM::Position::nextWordPosition): Ditto.

        - cleaned up caret code
        - changed DOM::Selection to use CaretPosition more

        * khtml/rendering/render_box.cpp: (RenderBox::caretRect): Change to use empty rectangles
        instead of an X value of -1 to mean no rectangle.
        * khtml/rendering/render_image.cpp: (RenderImage::selectionRect): Take advantage of the
        fixed QRect constructor.
        * khtml/rendering/render_object.cpp: (RenderObject::caretRect): Change to use empty
        rectangle instead of an X value of -1 to mean no rectangle.
        * khtml/rendering/render_text.cpp: (RenderText::caretRect): Cleaned up, and changed to use
        an empty rectangle instead of an X value of -1 to mean no rectangle.

        * khtml/xml/dom_caretposition.h: Made conversion from Position to CaretPosition something you
        can do implicitly, since it's an unambiguous conversion. Conversion in the other direction
        needs to be done explicitly. Moved EIncludeLineBreak here, and added startParagraphBoundary
        and endParagraphBoundary functions.
        * khtml/xml/dom_caretposition.cpp:
        (DOM::startParagraphBoundary): Added. Replaces, and made from, member function of DOM::Position.
        (DOM::endParagraphBoundary): Ditto.

        * khtml/xml/dom_position.h: Removed EIncludeLineBreak and startParagraphBoundary and
        endParagraphBoundary.
        * khtml/xml/dom_position.cpp: Removed startParagraphBoundary and endParagraphBoundary.

        * khtml/xml/dom_selection.h: Use CaretPosition instead of Position in a few places.
        Use a QRect for the caret rect. Change nodeIsBeforeNode to be a static member function.
        * khtml/xml/dom_selection.cpp:
        (DOM::Selection::Selection): Change caret to store QRect instead of 3 separate fields.
        (DOM::Selection::init): Ditto.
        (DOM::Selection::operator=): Ditto.
        (DOM::Selection::modifyExtendingRightForward): Change to use CaretPosition instead of Position.
        Check for 0.
        (DOM::Selection::modifyMovingRightForward): Ditto. Check for 0.
        (DOM::Selection::modifyExtendingLeftBackward): Ditto.
        (DOM::Selection::modifyMovingLeftBackward): Ditto.
        (DOM::Selection::modify): Ditto.
        (DOM::Selection::layoutCaret): Change to use a QRect for the caret rect, and use an empty
        one to mean no rectangle.
        (DOM::Selection::getRepaintRect): Ditto.
        (DOM::Selection::paintCaret): Ditto.
        (DOM::Selection::validate): Change to use CaretPosition instead of Position. Also fixed
        PARAGRAPH_BOUNDARY, which was broken and doing the same thing as PARAGRAPH before, but
        it's not really used so that didn't matter. Check for 0.
        (DOM::Selection::nodeIsBeforeNode): Tightened up a bit and added some FIXMEs. This function
        has a number of problems and should probably be discarded in favor of the DOMStringImpl
        method that does the same thing.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7585 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Hyatt
kocienda [Thu, 16 Sep 2004 21:16:25 +0000 (21:16 +0000)]
    Reviewed by Hyatt

        Fix for this bug:

        <rdar://problem/3787168> REGRESSION (Mail): Deleting text from the beginning of a quoted range removes the quoting from the rest

        * khtml/editing/htmlediting_impl.cpp:
        (khtml::DeleteSelectionCommandImpl::moveNodesAfterNode): Only move the text nodes (and their siblings) when
        doing this move between blocks. This serves to mimic NSText behavior very well.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7584 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fixed: <rdar://problem/3779150> REGRESSION: images not copied when copying HTML...
cblu [Thu, 16 Sep 2004 18:38:53 +0000 (18:38 +0000)]
Fixed: <rdar://problem/3779150> REGRESSION: images not copied when copying HTML in Safari and pasting into TextEdit

        Reviewed by john.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): use RTFDFromRange:: for RTFD
        * WebView.subproj/WebHTMLViewPrivate.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7583 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago - fixed Panther build
darin [Thu, 16 Sep 2004 04:57:57 +0000 (04:57 +0000)]
    - fixed Panther build

        * kwq/KWQAccObject.mm: (-[KWQAccObject accessibilityActionDescription:]): Fixed backwards
        check in #if that was compiling the code on Panther only rather than Tiger only.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7582 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John.
darin [Thu, 16 Sep 2004 00:57:57 +0000 (00:57 +0000)]
    Reviewed by John.

        - fixed lockFocus exception I observed; perhaps not a real issue in the field due to exception blocking

        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::imageFromRect): Put most of the function inside a
        big if statement to avoid the exception we get from lockFocus otherwise.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7581 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Dave.
darin [Thu, 16 Sep 2004 00:57:38 +0000 (00:57 +0000)]
    Reviewed by Dave.

        - fixed <rdar://problem/3786467> REGRESSION (Mail): Reproducible crash replying to an HTML message when your preference is for plain text composing.

        * khtml/rendering/render_block.h: Remove removeChildrenFromLineBoxes.
        * khtml/rendering/render_block.cpp: (khtml::RenderBlock::removeChild): Remove calls
        to removeChildrenFromLineBoxes which was the old way of working around this.
        * khtml/rendering/render_flow.cpp: (RenderFlow::detach): Add comments and code to handle
        removing children from line boxes we are about to delete.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7580 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fixed <rdar://problem/3781561> REGRESSION (Mail): typing in Mail became suddenly...
rjw [Thu, 16 Sep 2004 00:52:49 +0000 (00:52 +0000)]
Fixed <rdar://problem/3781561> REGRESSION (Mail): typing in Mail became suddenly really sluggish (substitute font code)

A DocumentMarker may begin before the InLineBox that includes
it.  Ensure that we correctly handle that case.  The paintMarker()
method and code that calls it could do with some cleanup to
make it clearer how all the cases are handled, i.e. marker
within box, or intersecting beginning or end of box.

        Reviewed by Darin.

        * khtml/rendering/render_text.cpp:
        (InlineTextBox::paintMarker):  Minimal change to ensure that we
handle the case of marker starting before box.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7579 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John.
darin [Thu, 16 Sep 2004 00:51:29 +0000 (00:51 +0000)]
    Reviewed by John.

        - get rid of some of the localizable strings in here; we still have to figure out
          how we're going to localize the last few role descriptions

        * kwq/KWQAccObject.mm:
        (-[KWQAccObject roleDescription]): Use NSAccessibilityRoleDescription for most
        descriptions instead of a hard-coded string (inside the UI_STRING placeholder).
        (-[KWQAccObject accessibilityActionDescription:]): Same thing, with NSAccessibilityActionDescription.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7578 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John.
darin [Thu, 16 Sep 2004 00:46:52 +0000 (00:46 +0000)]
    Reviewed by John.

        - did some QRect-related changes to facilitate later bug fixing

        * kwq/KWQPainter.h: Added fillRect overload that takes QRect to match the real Qt one.
        * kwq/KWQPainter.mm: (QPainter::fillRect): Added overload that takes QRect.

        * kwq/KWQRect.mm: (QRect::QRect): Change default constructed QRect to have a width and
        height of 0 rather than 1. Contrary to what we believed earlier, this is what Qt does.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7577 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John.
darin [Thu, 16 Sep 2004 00:41:40 +0000 (00:41 +0000)]
    Reviewed by John.

        - fixed <rdar://problem/3799512> REGRESSION (Mail): caret flashes 1 pixel too far to the left

        * khtml/rendering/render_text.cpp: (RenderText::caretRect): Added one to the horizontal position
        of the caret rect.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7576 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by John.
darin [Thu, 16 Sep 2004 00:31:07 +0000 (00:31 +0000)]
    Reviewed by John.

        - fixed assertion I saw using the font panel

        * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _colorAsString:]):
        Convert color space before trying to get R, G, and B components.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7575 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Hyatt
kocienda [Wed, 15 Sep 2004 20:58:30 +0000 (20:58 +0000)]
    Reviewed by Hyatt

        * khtml/editing/htmlediting_impl.cpp:
        (khtml::DeleteSelectionCommandImpl::doApply): The whitespace fixup code
        that makes sure proper whitespace renders after deletion was getting confused
        in cases where the deletion merged blocks. Basically, I needed to move some
        whitespace fixup code so it runs before deleting in the case where blocks
        need to be merged. It used to run after, and was getting confused by
        whitespace left over at the ends of the block after the deletion.
        * layout-tests/editing/deleting/delete-block-merge-contents-012-expected.txt: Added.
        * layout-tests/editing/deleting/delete-block-merge-contents-012.html: Added.
        * layout-tests/editing/deleting/delete-block-merge-contents-013-expected.txt: Added.
        * layout-tests/editing/deleting/delete-block-merge-contents-013.html: Added.
        * layout-tests/editing/deleting/delete-block-merge-contents-014-expected.txt: Added.
        * layout-tests/editing/deleting/delete-block-merge-contents-014.html: Added.
        * layout-tests/editing/deleting/delete-block-merge-contents-015-expected.txt: Added.
        * layout-tests/editing/deleting/delete-block-merge-contents-015.html: Added.
        * layout-tests/editing/deleting/delete-block-merge-contents-016-expected.txt: Added.
        * layout-tests/editing/deleting/delete-block-merge-contents-016.html: Added.
        * layout-tests/editing/deleting/delete-block-merge-contents-017-expected.txt: Added.
        * layout-tests/editing/deleting/delete-block-merge-contents-017.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7573 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Fixed: <rdar://problem/3802232> REGRESSION (Mail): WebCore Editing must do smart...
cblu [Wed, 15 Sep 2004 18:26:35 +0000 (18:26 +0000)]
Fixed: <rdar://problem/3802232> REGRESSION (Mail): WebCore Editing must do smart copy

        Reviewed by kocienda.

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView _writeSelectionToPasteboard:]): call instance method not class method to get pasteboard types since the types depends on the current selection granularity
        (-[WebHTMLView pasteboardTypesForSelection]): if the selection granularity is "word" include the smart pasteboard type
        (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): put nil on the pasteboard for smart copy

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7572 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Hyatt
kocienda [Wed, 15 Sep 2004 18:02:05 +0000 (18:02 +0000)]
    Reviewed by Hyatt

        * khtml/editing/htmlediting_impl.cpp:
        (khtml::DeleteSelectionCommandImpl::moveNodesAfterNode): Renamed from moveNodesToBlock.
        Just some simplification and cleanup in this function.
        (khtml::DeleteSelectionCommandImpl::doApply): Remove a hunk of start-of-block code I thought
        I was going to get around to improving and refining. However, I no longer need this case.
        * khtml/editing/htmlediting_impl.h: Function name change.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7571 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years agoRemove stray change marker.
darin [Wed, 15 Sep 2004 17:36:39 +0000 (17:36 +0000)]
Remove stray change marker.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7570 268f45cc-cd09-0410-ab3c-d52691b4dbfc

18 years ago Reviewed by Maciej.
darin [Wed, 15 Sep 2004 05:57:49 +0000 (05:57 +0000)]
    Reviewed by Maciej.

        - fixed <rdar://problem/3788894> REGRESSION (Mail): ctrl-t emacs key binding does not work (transpose)
        - fixed <rdar://problem/3798946> REGRESSION (Mail): Cursor does not disappear when typing

        * WebView.subproj/WebHTMLView.m:
        (-[WebHTMLView keyDown:]): Hide cursor by calling setHiddenUntilMouseMoves:YES.
        (-[WebHTMLView transpose:]): Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7569 268f45cc-cd09-0410-ab3c-d52691b4dbfc