⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 286733 in webkit


Ignore:
Timestamp:
Dec 8, 2021, 1:26:29 PM (5 years ago)
Author:
Alan Coon
Message:

Cherry-pick r286631. rdar://problem/85928816

[Scroll Momentum Generator] Pages lose ability to momentum scroll after dragging between displays
https://bugs.webkit.org/show_bug.cgi?id=233948
rdar://86110813

Reviewed by Tim Horton.

This is a conservative fix for the bug. When a view moves to a new screen, WebPageProxy
needs to unregister for full speed updates using the old displayID, and register
using the new one.

Longer term, it would be better if "full speed updates" was a per-observer concept,
but that would mean registering an observer while wheel events are being received,
which needs a bit more thought.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::windowScreenDidChange):

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

Location:
branches/safari-612.4.2.1-branch/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-612.4.2.1-branch/Source/WebKit/ChangeLog

    r286732 r286733  
     12021-12-08  Alan Coon  <alancoon@apple.com>
     2
     3        Cherry-pick r286631. rdar://problem/85928816
     4
     5    [Scroll Momentum Generator] Pages lose ability to momentum scroll after dragging between displays
     6    https://bugs.webkit.org/show_bug.cgi?id=233948
     7    rdar://86110813
     8   
     9    Reviewed by Tim Horton.
     10   
     11    This is a conservative fix for the bug. When a view moves to a new screen, WebPageProxy
     12    needs to unregister for full speed updates using the old displayID, and register
     13    using the new one.
     14   
     15    Longer term, it would be better if "full speed updates" was a per-observer concept,
     16    but that would mean registering an observer while wheel events are being received,
     17    which needs a bit more thought.
     18   
     19    * UIProcess/WebPageProxy.cpp:
     20    (WebKit::WebPageProxy::windowScreenDidChange):
     21   
     22   
     23    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286631 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     24
     25    2021-12-07  Simon Fraser  <simon.fraser@apple.com>
     26
     27            [Scroll Momentum Generator] Pages lose ability to momentum scroll after dragging between displays
     28            https://bugs.webkit.org/show_bug.cgi?id=233948
     29            rdar://86110813
     30
     31            Reviewed by Tim Horton.
     32
     33            This is a conservative fix for the bug. When a view moves to a new screen, WebPageProxy
     34            needs to unregister for full speed updates using the old displayID, and register
     35            using the new one.
     36
     37            Longer term, it would be better if "full speed updates" was a per-observer concept,
     38            but that would mean registering an observer while wheel events are being received,
     39            which needs a bit more thought.
     40
     41            * UIProcess/WebPageProxy.cpp:
     42            (WebKit::WebPageProxy::windowScreenDidChange):
     43
    1442021-12-06  Alan Coon  <alancoon@apple.com>
    245
  • branches/safari-612.4.2.1-branch/Source/WebKit/UIProcess/WebPageProxy.cpp

    r286717 r286733  
    40034003void WebPageProxy::windowScreenDidChange(PlatformDisplayID displayID, std::optional<unsigned> nominalFramesPerSecond)
    40044004{
     4005#if HAVE(CVDISPLAYLINK)
     4006    if (hasRunningProcess() && m_displayID && m_registeredForFullSpeedUpdates)
     4007        process().processPool().setDisplayLinkForDisplayWantsFullSpeedUpdates(*m_process->connection(), *m_displayID, false);
     4008
     4009    m_registeredForFullSpeedUpdates = false;
     4010#endif
     4011
    40054012    m_displayID = displayID;
    40064013
     
    40104017    send(Messages::EventDispatcher::PageScreenDidChange(m_webPageID, displayID));
    40114018    send(Messages::WebPage::WindowScreenDidChange(displayID, nominalFramesPerSecond));
     4019#if HAVE(CVDISPLAYLINK)
     4020    updateDisplayLinkFrequency();
     4021#endif
    40124022}
    40134023
Note: See TracChangeset for help on using the changeset viewer.