[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

kocienda kocienda at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 08:35:58 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 6ad0b50f924efa1da8fd5b7f94e20ae2e913315e
Author: kocienda <kocienda at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Apr 22 13:24:35 2004 +0000

    WebCore:
    
            Reviewed by Hyatt
    
            Ensures caret visibility after making an editing action.
    
            * khtml/xml/dom_selection.cpp:
            (DOM::Selection::getRepaintRect): Expose this as public.
            * khtml/xml/dom_selection.h: Ditto.
            * kwq/WebCoreBridge.h: Add ensureCaretVisible method.
            * kwq/WebCoreBridge.mm:
            (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:]):
            Unrelated crash fix. Null-check baseURLString.
            (-[WebCoreBridge ensureCaretVisible]): Added.
    
    WebKit:
    
            Reviewed by Hyatt
    
            Added calls to ensure caret visibility after the editing action is done.
    
            * WebView.subproj/WebView.m:
            (-[WebView _alterCurrentSelection:direction:granularity:]):
            (-[WebView insertNewline:]):
            (-[WebView deleteBackward:]):
            (-[WebView insertText:]):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6449 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 50239a5..39b685a 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,18 @@
+2004-04-22  Ken Kocienda  <kocienda at apple.com>
+
+        Reviewed by Hyatt
+
+        Ensures caret visibility after making an editing action.
+
+        * khtml/xml/dom_selection.cpp:
+        (DOM::Selection::getRepaintRect): Expose this as public.
+        * khtml/xml/dom_selection.h: Ditto.
+        * kwq/WebCoreBridge.h: Add ensureCaretVisible method.
+        * kwq/WebCoreBridge.mm:
+        (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:]):
+        Unrelated crash fix. Null-check baseURLString.
+        (-[WebCoreBridge ensureCaretVisible]): Added.
+
 2004-04-21  David Hyatt  <hyatt at apple.com>
 
 	Fix for 3245627, nested tables don't expand vertically.  I actually fixed the basic problem in the
diff --git a/WebCore/khtml/editing/SelectionController.cpp b/WebCore/khtml/editing/SelectionController.cpp
index 1ae3586..8bc9a20 100644
--- a/WebCore/khtml/editing/SelectionController.cpp
+++ b/WebCore/khtml/editing/SelectionController.cpp
@@ -391,7 +391,7 @@ void Selection::layoutCaret()
     m_needsCaretLayout = false;
 }
 
-QRect Selection::getRepaintRect()
+QRect Selection::getRepaintRect() const
 {
     // EDIT FIXME: fudge a bit to make sure we don't leave behind artifacts
     return QRect(m_caretX - 1, m_caretY - 1, 3, m_caretSize + 2);
diff --git a/WebCore/khtml/editing/SelectionController.h b/WebCore/khtml/editing/SelectionController.h
index 1e67737..ed287cb 100644
--- a/WebCore/khtml/editing/SelectionController.h
+++ b/WebCore/khtml/editing/SelectionController.h
@@ -80,6 +80,7 @@ public:
     Position start() const { return m_start; }
     Position end() const { return m_end; }
 
+    QRect getRepaintRect() const;
     void setNeedsLayout(bool flag=true);
     void clearModifyBias() { m_modifyBiasSet = false; }
     
@@ -111,7 +112,6 @@ private:
 
     void layoutCaret();
     void needsCaretRepaint();
-    QRect getRepaintRect();
     void paintCaret(QPainter *p, const QRect &rect);
 
     bool nodeIsBeforeNode(NodeImpl *n1, NodeImpl *n2);
diff --git a/WebCore/khtml/editing/selection.cpp b/WebCore/khtml/editing/selection.cpp
index 1ae3586..8bc9a20 100644
--- a/WebCore/khtml/editing/selection.cpp
+++ b/WebCore/khtml/editing/selection.cpp
@@ -391,7 +391,7 @@ void Selection::layoutCaret()
     m_needsCaretLayout = false;
 }
 
-QRect Selection::getRepaintRect()
+QRect Selection::getRepaintRect() const
 {
     // EDIT FIXME: fudge a bit to make sure we don't leave behind artifacts
     return QRect(m_caretX - 1, m_caretY - 1, 3, m_caretSize + 2);
diff --git a/WebCore/khtml/editing/selection.h b/WebCore/khtml/editing/selection.h
index 1e67737..ed287cb 100644
--- a/WebCore/khtml/editing/selection.h
+++ b/WebCore/khtml/editing/selection.h
@@ -80,6 +80,7 @@ public:
     Position start() const { return m_start; }
     Position end() const { return m_end; }
 
+    QRect getRepaintRect() const;
     void setNeedsLayout(bool flag=true);
     void clearModifyBias() { m_modifyBiasSet = false; }
     
@@ -111,7 +112,6 @@ private:
 
     void layoutCaret();
     void needsCaretRepaint();
-    QRect getRepaintRect();
     void paintCaret(QPainter *p, const QRect &rect);
 
     bool nodeIsBeforeNode(NodeImpl *n1, NodeImpl *n2);
diff --git a/WebCore/khtml/xml/dom_selection.cpp b/WebCore/khtml/xml/dom_selection.cpp
index 1ae3586..8bc9a20 100644
--- a/WebCore/khtml/xml/dom_selection.cpp
+++ b/WebCore/khtml/xml/dom_selection.cpp
@@ -391,7 +391,7 @@ void Selection::layoutCaret()
     m_needsCaretLayout = false;
 }
 
-QRect Selection::getRepaintRect()
+QRect Selection::getRepaintRect() const
 {
     // EDIT FIXME: fudge a bit to make sure we don't leave behind artifacts
     return QRect(m_caretX - 1, m_caretY - 1, 3, m_caretSize + 2);
diff --git a/WebCore/khtml/xml/dom_selection.h b/WebCore/khtml/xml/dom_selection.h
index 1e67737..ed287cb 100644
--- a/WebCore/khtml/xml/dom_selection.h
+++ b/WebCore/khtml/xml/dom_selection.h
@@ -80,6 +80,7 @@ public:
     Position start() const { return m_start; }
     Position end() const { return m_end; }
 
+    QRect getRepaintRect() const;
     void setNeedsLayout(bool flag=true);
     void clearModifyBias() { m_modifyBiasSet = false; }
     
@@ -111,7 +112,6 @@ private:
 
     void layoutCaret();
     void needsCaretRepaint();
-    QRect getRepaintRect();
     void paintCaret(QPainter *p, const QRect &rect);
 
     bool nodeIsBeforeNode(NodeImpl *n1, NodeImpl *n2);
diff --git a/WebCore/kwq/WebCoreBridge.h b/WebCore/kwq/WebCoreBridge.h
index 13a69bc..dad4db9 100644
--- a/WebCore/kwq/WebCoreBridge.h
+++ b/WebCore/kwq/WebCoreBridge.h
@@ -290,6 +290,7 @@ typedef enum {
 - (void)deleteSelection;
 - (void)deleteKeyPressed;
 - (void)applyStyle:(DOMCSSStyleDeclaration *)style toElementsInDOMRange:(DOMRange *)range;
+- (void)ensureCaretVisible;
 
 - (void)bindObject:(id)object withName:(NSString *)name;
 
diff --git a/WebCore/kwq/WebCoreBridge.mm b/WebCore/kwq/WebCoreBridge.mm
index c2b93f2..1de6dfd 100644
--- a/WebCore/kwq/WebCoreBridge.mm
+++ b/WebCore/kwq/WebCoreBridge.mm
@@ -1394,7 +1394,7 @@ static HTMLFormElementImpl *formElementFromDOMElement(DOMElement *element)
     if (!_part || !_part->xmlDocImpl() || !markupString)
         return;
     
-    PasteMarkupCommand cmd(_part->xmlDocImpl(), markupString, baseURLString);
+    PasteMarkupCommand cmd(_part->xmlDocImpl(), markupString, baseURLString ? baseURLString : @"");
     cmd.apply();
 }
 
@@ -1432,4 +1432,18 @@ static HTMLFormElementImpl *formElementFromDOMElement(DOMElement *element)
     ERROR("unimplemented");
 }
 
+- (void)ensureCaretVisible
+{
+    if (!_part)
+        return;
+    
+    KHTMLView *v = _part->view();
+    if (!v)
+        return;
+
+    QRect r(_part->selection().getRepaintRect());
+    v->ensureVisible(r.right(), r.bottom());
+    v->ensureVisible(r.left(), r.top());
+}
+
 @end
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index eee0f83..ddfc635 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,15 @@
+2004-04-22  Ken Kocienda  <kocienda at apple.com>
+
+        Reviewed by Hyatt
+
+        Added calls to ensure caret visibility after the editing action is done.
+
+        * WebView.subproj/WebView.m:
+        (-[WebView _alterCurrentSelection:direction:granularity:]):
+        (-[WebView insertNewline:]):
+        (-[WebView deleteBackward:]):
+        (-[WebView insertText:]):
+
 2004-04-20  Chris Blumenberg  <cblu at apple.com>
 
 	Fixed: <rdar://problem/3605209>: "HITLIST: REGRESSION (131-132): iframes/frames no longer dump on layout tests"
diff --git a/WebKit/WebView.subproj/WebView.m b/WebKit/WebView.subproj/WebView.m
index a333b0a..6049eb1 100644
--- a/WebKit/WebView.subproj/WebView.m
+++ b/WebKit/WebView.subproj/WebView.m
@@ -2049,6 +2049,7 @@ static WebFrame *incrementFrame(WebFrame *curr, BOOL forward, BOOL wrapFlag)
     DOMRange *proposedRange = [bridge rangeByAlteringCurrentSelection:alteration direction:direction granularity:granularity];
     if ([[self _editingDelegateForwarder] webView:self shouldChangeSelectedDOMRange:[self selectedDOMRange] toDOMRange:proposedRange stillSelecting:NO]) {
         [bridge alterCurrentSelection:alteration direction:direction granularity:granularity];
+        [bridge ensureCaretVisible];
     }
 }
 
@@ -2768,7 +2769,9 @@ static WebFrame *incrementFrame(WebFrame *curr, BOOL forward, BOOL wrapFlag)
 - (void)insertNewline:(id)sender
 {
     if ([self _currentSelectionIsEditable]) {
-        [[self _bridgeForCurrentSelection] replaceSelectionWithNewline];
+        WebBridge *bridge = [self _bridgeForCurrentSelection];
+        [bridge replaceSelectionWithNewline];
+        [bridge ensureCaretVisible];
         return;
     }
     [[self nextResponder] tryToPerform:@selector(insertNewline:) with:sender];
@@ -2837,7 +2840,9 @@ static WebFrame *incrementFrame(WebFrame *curr, BOOL forward, BOOL wrapFlag)
 - (void)deleteBackward:(id)sender
 {
     if ([self _currentSelectionIsEditable]) {
-        [[self _bridgeForCurrentSelection] deleteKeyPressed];
+        WebBridge *bridge = [self _bridgeForCurrentSelection];
+        [bridge deleteKeyPressed];
+        [bridge ensureCaretVisible];
         return;
     }
     [[self nextResponder] tryToPerform:@selector(deleteBackward:) with:sender];
@@ -2977,7 +2982,9 @@ static WebFrame *incrementFrame(WebFrame *curr, BOOL forward, BOOL wrapFlag)
 - (void)insertText:(NSString *)text
 {
     if ([self _currentSelectionIsEditable]) {
-        [[self _bridgeForCurrentSelection] replaceSelectionWithText:text];
+        WebBridge *bridge = [self _bridgeForCurrentSelection];
+        [bridge replaceSelectionWithText:text];
+        [bridge ensureCaretVisible];
         return;
     }
     [[self nextResponder] tryToPerform:@selector(insertText:) with:text];

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list