Detect when a windows style has changed. For instance starting a lock with borderless fullscreen and changing and option in the menu will cause the window to revert to it's original state.
Describe the bug
Closing the game / application will not cause Display Lock to revert the UI to the not running state. The locking threaded loop will stop however.
To Reproduce
Steps to reproduce the behavior:
Start locking an application
Close the application
Notice the UI is still broken
Expected behavior
UI will revert to stopped state when an application is no longer running
Debug builds should enable logging that will open a file in the users %APPDATA% folder and write to it throughout the duration of the applications lifetime.
This should be simple to implement without external libraries.
Logging code should be placed in it's own project as a static library.
Currently the hotkey button is enabled on the settings menu and should be temporarily disabled until the tab is switched. The key should be unregistered, and re-registered after the switch.
The current hotkey should appear in the Hotkey control box
This will cut down on ram usage. It's currently at 1.2 MB, however we can cut the size down. The point of the program is to squeeze every last ounce of performance as possible, even though it probably doesn't matter on modern systems.
Create a whitelist of applications that should be polled for automatically and start locking when displayed.
This feature should have a enable/disable. The polling should stop after the first application is found or disable is clicked. When an application is found all start / stop controls should be disabled.
There's currently a bug where if the window is already fullscreen or borderless when the user hit's start, the application with add a border to the window. This behavior should be avoided.
Current Results: Users are able to select a window from the system context menu while the lock is running. This causes undefined behavior, as the previous thread would not be disabled.
Expect Results: Windows should be locked while the application is running.
Allow the use of hotkeys. There should be an area in the settings to allow the user to set hotkeys for various actions. Config will need to be updated to store hotkeys.
Allow a user to select a default monitor and choose which monitor to display a full screen application on.
Also need an auto detect option which will select the monitor the app is currently on. This will be done by checking against monitors. A struct will need to be made to store monitor information.
Users should be able to check and uncheck options from the system tray context menu. The code to set things are already in the code base, so this should be a relatively quick thing to implement.
The issue is caused by the alt-tab view being it's own window, and the list being constantly updated on another thread. This should be fine, but in our case we should only update the list when it is clicked by using the CBN_DROPDOWN event.