[CSS Regions] Selection dragged from a region paints its background
authormvujovic@adobe.com <mvujovic@adobe.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Jun 2013 22:32:50 +0000 (22:32 +0000)
committermvujovic@adobe.com <mvujovic@adobe.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Jun 2013 22:32:50 +0000 (22:32 +0000)
https://bugs.webkit.org/show_bug.cgi?id=117607

Reviewed by Alexandru Chiculita.

.:

Add a manual test for the painting of a dragged selection from a region. We don't have an
automated way to test this yet. This test is similar to the other manual selection dragging
tests (e.g. ManualTests/drag-image.html).

* ManualTests/regions/drag-selection-painting.html: Added.

Source/WebCore:

When a RenderFlowThread is in the selection paint phase, tell its layer to paint with the
selection only behavior. This way, only foregrounds and not backgrounds will be painted in
the dragged selection.

Manual test: ManualTests/regions/drag-selection-painting.html

* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):

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

ChangeLog
ManualTests/regions/drag-selection-painting.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderFlowThread.cpp

index d7e9b23..9aa2508 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2013-06-13  Max Vujovic  <mvujovic@adobe.com>
+
+        [CSS Regions] Selection dragged from a region paints its background
+        https://bugs.webkit.org/show_bug.cgi?id=117607
+
+        Reviewed by Alexandru Chiculita.
+
+        Add a manual test for the painting of a dragged selection from a region. We don't have an
+        automated way to test this yet. This test is similar to the other manual selection dragging
+        tests (e.g. ManualTests/drag-image.html).
+
+        * ManualTests/regions/drag-selection-painting.html: Added.
+
 2013-06-13  Xabier Rodriguez Calvar  <calvaris@igalia.com>
 
         [GTK] [WK2] Found missing symbol when running some tests
diff --git a/ManualTests/regions/drag-selection-painting.html b/ManualTests/regions/drag-selection-painting.html
new file mode 100644 (file)
index 0000000..93311ae
--- /dev/null
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <style>
+        #content-for-region {
+            background-color: yellow;
+            -webkit-flow-into: flow;
+            width: 100px;
+            height: 100px;
+        }
+        #region {
+            background-color: gray;
+            -webkit-flow-from: flow;
+            width: 200px;
+            height: 200px;
+        }
+    </style>
+</head>
+<body>
+    <p>This test verifies that a selection in a region is painted correctly when a user drags it.</p>
+    <p>Steps:</p>
+    <ol>
+        <li>Starting at "Some text", select all of the text in the yellow box.</li>
+        <li>While the text is selected, press the mouse down on the link. Do not release the mouse.</li>
+        <li>Drag the selection to the whitespace on the right.</li>
+    </ol>
+    <p>Expected Results:</p>
+    <ul>
+        <li>A faded image of the selected text and link should follow the mouse as you drag.</li>
+        <li>The faded image should only contain the selected text and link.</li>
+        <li>The faded image should have a transparent background, not yellow and not gray.</li>
+    </ul>
+    <div id="content-for-region">
+        Some text, followed by a <a href="#">link</a>.
+    </div>
+    <div id="region"></div>
+</body>
+</html>
index f6a56ba..1abf934 100644 (file)
@@ -1,3 +1,19 @@
+2013-06-13  Max Vujovic  <mvujovic@adobe.com>
+
+        [CSS Regions] Selection dragged from a region paints its background
+        https://bugs.webkit.org/show_bug.cgi?id=117607
+
+        Reviewed by Alexandru Chiculita.
+
+        When a RenderFlowThread is in the selection paint phase, tell its layer to paint with the
+        selection only behavior. This way, only foregrounds and not backgrounds will be painted in
+        the dragged selection.
+
+        Manual test: ManualTests/regions/drag-selection-painting.html
+
+        * rendering/RenderFlowThread.cpp:
+        (WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
+
 2013-06-13  Zoltan Horvath  <zoltan@webkit.org>
 
         [CSS Shapes][CSS Regions] Respect bottom positioned shapes and content adjustment inside shapes
index 23b88af..70208f6 100644 (file)
@@ -306,6 +306,8 @@ void RenderFlowThread::paintFlowThreadPortionInRegion(PaintInfo& paintInfo, Rend
         PaintBehavior paintBehavior = 0;
         if (info.phase == PaintPhaseTextClip)
             paintBehavior |= PaintBehaviorForceBlackText;
+        else if (info.phase == PaintPhaseSelection)
+            paintBehavior |= PaintBehaviorSelectionOnly;
 
         layer()->paint(context, info.rect, paintBehavior, 0, region, RenderLayer::PaintLayerTemporaryClipRects);