[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
hyatt at apple.com
hyatt at apple.com
Wed Dec 22 15:26:55 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 7748aa37666c93970316c7087d5da4de9ed5e8ad
Author: hyatt at apple.com <hyatt at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Nov 3 20:11:57 2010 +0000
https://bugs.webkit.org/show_bug.cgi?id=48945
Reviewed by Dan Bernstein.
Patch logicalLeftSelectionOffset and logicalRightSelectionOffset to be directionally abstract.
Also make sure writing mode roots are also selection painting roots.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isSelectionRoot):
(WebCore::RenderBlock::logicalLeftSelectionOffset):
(WebCore::RenderBlock::logicalRightSelectionOffset):
* rendering/RenderBlock.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71259 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 54b0519..79b695f 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2010-11-03 David Hyatt <hyatt at apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ https://bugs.webkit.org/show_bug.cgi?id=48945
+
+ Patch logicalLeftSelectionOffset and logicalRightSelectionOffset to be directionally abstract.
+
+ Also make sure writing mode roots are also selection painting roots.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::isSelectionRoot):
+ (WebCore::RenderBlock::logicalLeftSelectionOffset):
+ (WebCore::RenderBlock::logicalRightSelectionOffset):
+ * rendering/RenderBlock.h:
+
2010-11-03 Pavel Feldman <pfeldman at chromium.org>
Reviewed by Timothy Hatcher.
diff --git a/WebCore/rendering/RenderBlock.cpp b/WebCore/rendering/RenderBlock.cpp
index 1c39985..cad47f7 100644
--- a/WebCore/rendering/RenderBlock.cpp
+++ b/WebCore/rendering/RenderBlock.cpp
@@ -2526,7 +2526,7 @@ bool RenderBlock::isSelectionRoot() const
if (isBody() || isRoot() || hasOverflowClip() || isRelPositioned() ||
isFloatingOrPositioned() || isTableCell() || isInlineBlockOrInlineTable() || hasTransform() ||
- hasReflection() || hasMask())
+ hasReflection() || hasMask() || isWritingModeRoot())
return true;
if (view() && view()->selectionStart()) {
@@ -2833,43 +2833,43 @@ void RenderBlock::getSelectionGapInfo(SelectionState state, bool& leftGap, bool&
(state == RenderObject::SelectionEnd && !ltr);
}
-int RenderBlock::logicalLeftSelectionOffset(RenderBlock* rootBlock, int yPos)
+int RenderBlock::logicalLeftSelectionOffset(RenderBlock* rootBlock, int position)
{
- int left = logicalLeftOffsetForLine(yPos, false);
- if (left == borderLeft() + paddingLeft()) {
+ int logicalLeft = logicalLeftOffsetForLine(position, false);
+ if (logicalLeft == logicalLeftOffsetForContent()) {
if (rootBlock != this)
// The border can potentially be further extended by our containingBlock().
- return containingBlock()->logicalLeftSelectionOffset(rootBlock, yPos + y());
- return left;
+ return containingBlock()->logicalLeftSelectionOffset(rootBlock, position + logicalTop());
+ return logicalLeft;
}
else {
RenderBlock* cb = this;
while (cb != rootBlock) {
- left += cb->x();
+ logicalLeft += cb->logicalLeft();
cb = cb->containingBlock();
}
}
- return left;
+ return logicalLeft;
}
-int RenderBlock::logicalRightSelectionOffset(RenderBlock* rootBlock, int yPos)
+int RenderBlock::logicalRightSelectionOffset(RenderBlock* rootBlock, int position)
{
- int right = logicalRightOffsetForLine(yPos, false);
- if (right == (contentWidth() + (borderLeft() + paddingLeft()))) {
+ int logicalRight = logicalRightOffsetForLine(position, false);
+ if (logicalRight == logicalRightOffsetForContent()) {
if (rootBlock != this)
// The border can potentially be further extended by our containingBlock().
- return containingBlock()->logicalRightSelectionOffset(rootBlock, yPos + y());
- return right;
+ return containingBlock()->logicalRightSelectionOffset(rootBlock, position + logicalTop());
+ return logicalRight;
}
else {
RenderBlock* cb = this;
while (cb != rootBlock) {
- right += cb->x();
+ logicalRight += cb->logicalLeft();
cb = cb->containingBlock();
}
}
- return right;
+ return logicalRight;
}
void RenderBlock::insertPositionedObject(RenderBox* o)
diff --git a/WebCore/rendering/RenderBlock.h b/WebCore/rendering/RenderBlock.h
index 5befa0e..9370f49 100644
--- a/WebCore/rendering/RenderBlock.h
+++ b/WebCore/rendering/RenderBlock.h
@@ -539,8 +539,8 @@ private:
int& lastTop, int& lastLeft, int& lastRight, const PaintInfo*);
IntRect fillBlockSelectionGap(int lastTop, int lastLeft, int lastRight, int bottomY, RenderBlock* rootBlock,
int blockX, int blockY, const PaintInfo*);
- int logicalLeftSelectionOffset(RenderBlock* rootBlock, int y);
- int logicalRightSelectionOffset(RenderBlock* rootBlock, int y);
+ int logicalLeftSelectionOffset(RenderBlock* rootBlock, int position);
+ int logicalRightSelectionOffset(RenderBlock* rootBlock, int position);
virtual void absoluteRects(Vector<IntRect>&, int tx, int ty);
virtual void absoluteQuads(Vector<FloatQuad>&);
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list