[webkit-changes] [WebKit/WebKit] ca201a: [Live Range Selection] Expanding selection by gran...

Ryosuke Niwa noreply at github.com
Mon Oct 31 16:40:20 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ca201a717c242c53d1171e58aee57a5665cd5bc5
      https://github.com/WebKit/WebKit/commit/ca201a717c242c53d1171e58aee57a5665cd5bc5
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2022-10-31 (Mon, 31 Oct 2022)

  Changed paths:
    A LayoutTests/editing/selection/double-click-expands-focus-anchor-live-range-expected.txt
    A LayoutTests/editing/selection/double-click-expands-focus-anchor-live-range.html
    M Source/WebCore/editing/VisibleSelection.cpp
    M Source/WebCore/page/EventHandler.cpp
    M Source/WebCore/page/EventHandler.h

  Log Message:
  -----------
  [Live Range Selection] Expanding selection by granularity should expand anchor & focus
https://bugs.webkit.org/show_bug.cgi?id=247239

Reviewed by Wenson Hsieh and Darin Adler.

This patch reverts commits.webkit.org/r268847 and implements a new fix.

Ideally, we fix VisibleSelection::adjustSelectionRespectingGranularity to not expand the end more than
required but that approach causes regressions (e.g. extending selection backwards will end up
deselecting the original word that was double tapped when drag selecting text backwards), some of which
are hard to overcome.

So, this patch instead detects when the ending is expanding unexpectedly, and corrects it in
EventHandler::updateSelectionForMouseDrag.

* LayoutTests/editing/selection/double-click-expands-focus-anchor-live-range-expected.txt: Added.
* LayoutTests/editing/selection/double-click-expands-focus-anchor-live-range.html: Added.

* Source/WebCore/editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::validate): Reverted r268847.

* Source/WebCore/page/EventHandler.cpp:
(WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart):
(WebCore::EventHandler::handleMousePressEventDoubleClick):
(WebCore::EventHandler::updateSelectionForMouseDrag): Detect when the end is erroneously extending,
and correct back to the original end.

* Source/WebCore/page/EventHandler.h:

Canonical link: https://commits.webkit.org/256174@main




More information about the webkit-changes mailing list