protocols: implement image-capture-source-v1 and image-copy-capture-v1 (#11709)
Implements the new screencopy protocols
This commit is contained in:
parent
93dbf88426
commit
b4ee4674f9
37 changed files with 2585 additions and 1078 deletions
|
|
@ -653,6 +653,18 @@ void CWindow::onMap() {
|
|||
},
|
||||
false);
|
||||
|
||||
m_realSize->setUpdateCallback([this](auto) {
|
||||
if (m_isMapped)
|
||||
m_events.resize.emit();
|
||||
});
|
||||
|
||||
m_realPosition->setUpdateCallback([this](auto) {
|
||||
if (m_isMapped && m_monitor != m_prevMonitor) {
|
||||
m_prevMonitor = m_monitor;
|
||||
m_events.monitorChanged.emit();
|
||||
}
|
||||
});
|
||||
|
||||
m_movingFromWorkspaceAlpha->setValueAndWarp(1.F);
|
||||
|
||||
m_reportedSize = m_pendingReportedSize;
|
||||
|
|
@ -687,6 +699,9 @@ void CWindow::onBorderAngleAnimEnd(WP<CBaseAnimatedVariable> pav) {
|
|||
void CWindow::setHidden(bool hidden) {
|
||||
m_hidden = hidden;
|
||||
|
||||
if (hidden)
|
||||
m_events.hide.emit();
|
||||
|
||||
if (hidden && Desktop::focusState()->window() == m_self)
|
||||
Desktop::focusState()->window().reset();
|
||||
|
||||
|
|
@ -2119,6 +2134,7 @@ void CWindow::unmapWindow() {
|
|||
m_originalClosedExtents = getFullWindowExtents();
|
||||
}
|
||||
|
||||
m_events.unmap.emit();
|
||||
g_pEventManager->postEvent(SHyprIPCEvent{"closewindow", std::format("{:x}", m_self.lock())});
|
||||
EMIT_HOOK_EVENT("closeWindow", m_self.lock());
|
||||
|
||||
|
|
|
|||
|
|
@ -109,6 +109,10 @@ namespace Desktop::View {
|
|||
|
||||
struct {
|
||||
CSignalT<> destroy;
|
||||
CSignalT<> unmap;
|
||||
CSignalT<> hide;
|
||||
CSignalT<> resize;
|
||||
CSignalT<> monitorChanged;
|
||||
} m_events;
|
||||
|
||||
WP<CXDGSurfaceResource> m_xdgSurface;
|
||||
|
|
@ -145,7 +149,7 @@ namespace Desktop::View {
|
|||
std::string m_initialTitle = "";
|
||||
std::string m_initialClass = "";
|
||||
PHLWORKSPACE m_workspace;
|
||||
PHLMONITORREF m_monitor;
|
||||
PHLMONITORREF m_monitor, m_prevMonitor;
|
||||
|
||||
bool m_isMapped = false;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue