mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-08-22 23:21:29 +00:00
[idd] helper: retry topology after desktop access failure
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled
The interactive Helper can start when the console user token exists but before WinSta0\Default is ready. SetDisplayConfig then returns ERROR_ACCESS_DENIED while recovery exit caches the failure and keeps topology enforcement suppressed. Keep the recovery request pending while desktop access is transient. Move the pipe worker to the input desktop and retry without caching intermediate failures. Leave an exhausted access failure uncached so a later replay can recover. Restore the periodic enforcement timer and retry topology without reapplying a display mode that Windows has already accepted.
This commit is contained in:
@@ -57,7 +57,7 @@ private:
|
||||
|
||||
void WriteMsg(const LGPipeMsg& msg);
|
||||
|
||||
void SetActiveDesktop();
|
||||
bool SetActiveDesktop(bool quiet = false);
|
||||
|
||||
static DWORD WINAPI DisplayModeThreadProc(void * context);
|
||||
void DisplayModeThread();
|
||||
@@ -65,9 +65,10 @@ private:
|
||||
void StopDisplayModeThread();
|
||||
bool ApplyDisplayMode(const LGPipeMsg& msg, LONG& result);
|
||||
|
||||
bool EnsureOnlyDisplayLocked();
|
||||
bool EnsureOnlyDisplayLocked(uint32_t * error = nullptr,
|
||||
bool logResult = true);
|
||||
uint32_t RestoreSavedTopologyLocked() const;
|
||||
uint32_t RestoreLGTopologyLocked();
|
||||
uint32_t RestoreLGTopologyLocked(bool logResult = true);
|
||||
|
||||
void HandleSetCursorPos(const LGPipeMsg& msg);
|
||||
void HandleSetDisplayMode(const LGPipeMsg& msg);
|
||||
|
||||
Reference in New Issue
Block a user