desktop/workspaceHistory: fix tracking for multiple monitors (#12979)

This commit is contained in:
Vaxry 2026-01-15 17:00:47 +01:00 committed by GitHub
parent e0cf88809d
commit ac9df44788
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 110 additions and 50 deletions

View file

@ -32,21 +32,19 @@ namespace Desktop::History {
SWorkspaceIDName previousWorkspaceIDName(PHLWORKSPACE ws, PHLMONITOR restrict);
private:
struct SMonitorData {
struct SLastWorkspaceData {
PHLMONITORREF monitor;
PHLWORKSPACEREF workspace;
std::string workspaceName = "";
WORKSPACEID workspaceID = WORKSPACE_INVALID;
};
} m_lastWorkspaceData;
std::vector<SWorkspacePreviousData> m_datas;
std::vector<SMonitorData> m_monitorDatas;
void track(PHLWORKSPACE w);
void track(PHLMONITOR mon);
void gc();
void setLastWorkspaceData(PHLWORKSPACE w);
SMonitorData& dataFor(PHLMONITOR mon);
SWorkspacePreviousData& dataFor(PHLWORKSPACE ws);
};