{"record":{"id":"611c98f9748268da","repo":"JosefNemec/Playnite","slug":"not-supported-in-fullscreen-mode-611c98","errorCode":null,"errorMessage":"Not supported in Fullscreen mode.","messagePattern":"Not supported in Fullscreen mode\\.","errorType":"exception","errorClass":"NotSupportedInFullscreenException","httpStatus":null,"severity":"warning","filePath":"source/Playnite/ViewModels/SearchViewModel.cs","lineNumber":1083,"sourceCode":"        private void ToggleHint()\r\n        {\r\n            var context = searchContextStack.Peek();\r\n            if (!context.Hint.IsNullOrWhiteSpace())\r\n            {\r\n                ContextHintVisible = !ContextHintVisible;\r\n            }\r\n        }\r\n\r\n        private void OpenSearchSettings()\r\n        {\r\n            Close();\r\n            if (mainModel.App.Mode == ApplicationMode.Desktop)\r\n            {\r\n                mainModel.OpenSettings((int)DesktopSettingsPage.Search);\r\n            }\r\n            else\r\n            {\r\n                throw new NotSupportedInFullscreenException();\r\n            }\r\n        }\r\n\r\n        private void ToggleInstalledFilter()\r\n        {\r\n            FilterHint = GameFilterSettings.Uninstalled ? ResourceProvider.GetString(LOC.SearchFilterUninstalledExcluded) : ResourceProvider.GetString(LOC.SearchFilterUninstalledIncluded);\r\n            GameFilterSettings.Uninstalled = !GameFilterSettings.Uninstalled;\r\n            FilterHintVisible = true;\r\n            FilterHintVisible = false;\r\n        }\r\n\r\n        private void ToggleHiddenFilter()\r\n        {\r\n            FilterHint = GameFilterSettings.Hidden ? ResourceProvider.GetString(LOC.SearchFilterHiddenalledExcluded) : ResourceProvider.GetString(LOC.SearchFilterHiddenIncluded);\r\n            GameFilterSettings.Hidden = !GameFilterSettings.Hidden;\r\n            FilterHintVisible = true;\r\n            FilterHintVisible = false;\r\n        }\r","sourceCodeStart":1065,"sourceCodeEnd":1101,"githubUrl":"https://github.com/JosefNemec/Playnite/blob/5911f4e964e628aa7a69c2030ab35101afa63067/source/Playnite/ViewModels/SearchViewModel.cs#L1065-L1101","documentation":"Thrown by SearchViewModel.OpenSearchSettings when the app is in Fullscreen mode (mainModel.App.Mode != ApplicationMode.Desktop). The search settings page only exists in Desktop mode, so in Fullscreen the call throws NotSupportedInFullscreenException to signal the unsupported UI path.","triggerScenarios":"User triggers the 'Open Search Settings' action from the search view while ApplicationMode is Fullscreen; the else branch at line 1082 throws.","commonSituations":"A theme or input binding binds the search-settings command and is invoked under Fullscreen. A code path that doesn't gate on ApplicationMode calls OpenSearchSettings unconditionally. User switched to Fullscreen and an old Desktop binding still fires.","solutions":["Gate the caller on ApplicationMode.Desktop before invoking OpenSearchSettings (or the command bound to it).","Hide/disable the search-settings control in Fullscreen themes.","Re-map the offending input binding so it does not fire under Fullscreen.","Catch NotSupportedInFullscreenException at the command-invocation boundary and ignore/suppress in Fullscreen."],"exampleFix":"// before\nprivate void OpenSearchSettings()\n{\n    Close();\n    if (mainModel.App.Mode == ApplicationMode.Desktop) mainModel.OpenSettings(...);\n    else throw new NotSupportedInFullscreenException();\n}\n\n// after — guard the caller (e.g. command CanExecute)\nOpenSearchSettingsCommand.CanExecute = () => mainModel.App.Mode == ApplicationMode.Desktop;","handlingStrategy":"validation","validationCode":"if (mainModel.App.Mode != ApplicationMode.Desktop)\n{\n    // skip / hide rather than throw\n    return;\n}\nmainModel.OpenSettings((int)DesktopSettingsPage.Search);","typeGuard":"static bool CanOpenSearchSettings(MainViewModelBase m) => m.App.Mode == ApplicationMode.Desktop;","tryCatchPattern":"try { OpenSearchSettings(); }\ncatch (NotSupportedInFullscreenException) { /* silently ignore in Fullscreen */ }","preventionTips":["Bind the command's CanExecute to ApplicationMode.Desktop so it cannot fire in Fullscreen.","Hide the search-settings control in Fullscreen themes.","Audit input bindings that could route Desktop-only commands under Fullscreen."],"tags":["ui","fullscreen","application-mode","view-model","playnite"],"backgroundTag":null,"analyzedSha":"5911f4e964e628aa7a69c2030ab35101afa63067","analyzedAt":"2026-08-13T17:38:25.713Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}