移除旧截图,引入 treeland-capture-snap - #1307
Conversation
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: glyvut The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Reviewer's GuideReplace the old capture module and client demo with a new Sequence diagram for treeland-capture-snap snap session flowsequenceDiagram
actor Client
participant treeland_capture_snap_v1
participant CaptureSnapV1
participant WSeat
participant WCursor
participant SnapDetector
Client->>treeland_capture_snap_v1: start
treeland_capture_snap_v1->>CaptureSnapV1: startRequested
CaptureSnapV1->>CaptureSnapV1: onStartRequested
CaptureSnapV1->>SnapDetector: collect(m_renderWindow, m_captureMaskSurface)
SnapDetector-->>CaptureSnapV1: snapshot (QList<QRectF>)
CaptureSnapV1->>WSeat: seat()
WSeat-->>CaptureSnapV1: WSeat*
CaptureSnapV1->>WCursor: connect(positionChanged)
WCursor-->>CaptureSnapV1: positionChanged
CaptureSnapV1->>CaptureSnapV1: onCursorMoved
CaptureSnapV1->>CaptureSnapV1: updateSnapRegion
CaptureSnapV1->>SnapDetector: hitTest(cursorPos, m_snapshot)
SnapDetector-->>CaptureSnapV1: QRectF region
CaptureSnapV1->>CaptureSnapV1: sendSnapRegion(region)
CaptureSnapV1-->>treeland_capture_snap_v1: sendSnapRegion(x, y, w, h)
Client->>treeland_capture_snap_v1: stop
treeland_capture_snap_v1->>CaptureSnapV1: stopRequested
CaptureSnapV1->>CaptureSnapV1: onStopRequested / stopSnapping
Sequence diagram for capture mask tagging and integration with CaptureSnapV1sequenceDiagram
participant WXdgToplevelSurface
participant ShellHandler
participant SurfaceWrapper
participant SurfaceContainer_capture
participant CaptureSnapV1
WXdgToplevelSurface-->>ShellHandler: tagChanged
ShellHandler->>ShellHandler: applyIfTaggedSurface()
ShellHandler->>ShellHandler: checkAndApplyPrivilegedOverlay(wrapperPtr)
ShellHandler->>ShellHandler: m_imCandidatePanelManager->checkAndApplyIMCandidatePanel(wrapperPtr)
alt tag == org.deepin.treeland.capture-mask and !wrapperPtr->isCaptureMask()
ShellHandler->>ShellHandler: applyCaptureMask(wrapper)
ShellHandler->>SurfaceWrapper: setSkipSwitcher(true), setSkipDockPreView(true), setSkipMutiTaskView(true)
ShellHandler->>SurfaceWrapper: setNoTitleBar(true), setNoCornerRadius(true), setNoDecoration(true)
ShellHandler->>SurfaceWrapper: disableWindowAnimation()
ShellHandler->>SurfaceWrapper: setPositionAutomatic(false)
ShellHandler->>SurfaceContainer_capture: addSurface(wrapper)
ShellHandler->>SurfaceWrapper: setHasInitializeContainer(true)
ShellHandler->>SurfaceWrapper: setZ(CaptureLayerZOrder)
ShellHandler->>SurfaceWrapper: setCaptureMask(true)
ShellHandler->>SurfaceWrapper: setNormalGeometry(desktopRect)
ShellHandler->>SurfaceWrapper: resize(desktopRect.size())
ShellHandler->>CaptureSnapV1: setCaptureMaskSurface(wrapper->surface())
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
TAG Bot New tag: 0.9.0 |
前置:linuxdeepin/treeland-protocols#87
Summary by Sourcery
Replace the legacy screen-capture selection system with the treeland-capture-snap protocol and a dedicated snap-capture example.
New Features:
Enhancements:
Build:
Chores: