Skip to content

Commit f60830d

Browse files
committed
Merge remote-tracking branch 'origin/master' into fix-toggle-style-bug
2 parents da523f2 + 4b8bd07 commit f60830d

8 files changed

Lines changed: 47 additions & 4 deletions

File tree

.claude/settings.local.json

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,22 @@
88
"Bash(\"display-lock-unittests.exe\")",
99
"Bash(\"./display-lock-unittests.exe\")",
1010
"Bash(xxd:*)",
11-
"Bash(\"C:\\\\Users\\\\japos\\\\git\\\\Display-Lock\\\\build\\\\tests\\\\Debug\\\\display-lock-unittests.exe\")"
11+
"Bash(\"C:\\\\Users\\\\japos\\\\git\\\\Display-Lock\\\\build\\\\tests\\\\Debug\\\\display-lock-unittests.exe\")",
12+
"Bash(iconv:*)",
13+
"Bash(powershell -ExecutionPolicy Bypass -File fix_resource.ps1)",
14+
"Bash(powershell -Command \"Get-Content ''src/resources/resource.h'' -Encoding Unicode | Select-String ''TRAY_CLOSE''\")",
15+
"Bash(git checkout:*)",
16+
"Bash(python fix_resource.py:*)",
17+
"Bash(python fix_resource_rc.py:*)",
18+
"Bash(git diff:*)",
19+
"Bash(python fix_resource_rc2.py:*)",
20+
"Bash(powershell -Command \"Get-Content ''src/resources/resource.rc'' -Encoding Unicode | Select-String ''TRAY_CLOSE''\")",
21+
"Bash(powershell -Command \"Get-Content ''src/resources/resource.rc'' -Encoding Unicode | Select-String ''STARTUP''\")",
22+
"Bash(python fix_resource_rc3.py:*)",
23+
"Bash(./build/tests/Release/display-lock-unittests.exe:*)",
24+
"Bash(python:*)",
25+
"Bash(ls:*)",
26+
"Bash(./display-lock-unittests.exe:*)"
1227
]
1328
}
1429
}

include/common.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535

3636
#define NOTIFY_MSG (WM_USER + 0x1)
3737
#define APP_SETTINGS_INIT (WM_USER + 0x2)
38+
#define WM_FORCE_CLOSE (WM_USER + 0x3)
3839

3940
#define NOTIFY_SETTINGS_CHANGED (NOTIFY_MSG + 0x1)
4041

@@ -127,6 +128,7 @@ struct SETTINGS_VIEW_CONTROLS
127128
HWND fullScreen;
128129
HWND hotkey;
129130
HWND checkForUpdatesStartup;
131+
HWND minimizeToTray;
130132
};
131133

132134
struct MENU
@@ -146,6 +148,7 @@ struct SETTINGS
146148
BOOL borderless;
147149
BOOL fullScreen;
148150
BOOL checkUpdateStartup;
151+
BOOL minimizeToTray;
149152
};
150153

151154
struct ARGS

src/components/settings.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ void initalizeSettings(HWND hDlg, SETTINGS_VIEW_CONTROLS *settingsControls)
2929
settingsControls->fullScreen = GetDlgItem(hDlg, IDC_CHECK_SETTINGS_FULL_SCREEN);
3030
settingsControls->hotkey = GetDlgItem(hDlg, IDC_HOTKEY);
3131
settingsControls->checkForUpdatesStartup = GetDlgItem(hDlg, IDC_CHECK_STARTUP_UPDATES);
32+
settingsControls->minimizeToTray = GetDlgItem(hDlg, IDC_CHECK_SETTINGS_TRAY_CLOSE);
3233
settingsControls->settingsChanged = FALSE;
3334
}
3435

@@ -52,6 +53,7 @@ void defaultSettings(SETTINGS *settings, const wchar_t *versionStr)
5253
settings->fullScreen = FALSE;
5354
settings->minimize = TRUE;
5455
settings->checkUpdateStartup = TRUE;
56+
settings->minimizeToTray = FALSE;
5557
}
5658

5759
BOOL checkVersion(SETTINGS *settings, const wchar_t *versionStr)

src/main.c

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
138138
hInst = hInstance; // Store instance handle in our global variable
139139

140140
HWND hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPED | WS_MINIMIZEBOX | WS_SYSMENU,
141-
CW_USEDEFAULT, 0, 300, 240, NULL, NULL, hInstance, NULL);
141+
CW_USEDEFAULT, 0, 300, 258, NULL, NULL, hInstance, NULL);
142142

143143
if (!hWnd)
144144
{
@@ -236,7 +236,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
236236
ShowWindow(hWnd, TRUE);
237237
break;
238238
case ID_CONTEXTMENU_EXIT:
239-
SendMessage(hWnd, WM_CLOSE, 0, 0);
239+
SendMessage(hWnd, WM_FORCE_CLOSE, 0, 0);
240240
break;
241241
case ID_CONTEXTMENU_SETTINGS_MINIMIZE:
242242
settings.minimize = !settings.minimize;
@@ -269,7 +269,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
269269
}
270270
case IDM_EXIT:
271271
{
272-
SendMessage(hWnd, WM_CLOSE, 0, 0);
272+
SendMessage(hWnd, WM_FORCE_CLOSE, 0, 0);
273273
break;
274274
}
275275
default:
@@ -292,6 +292,19 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
292292
}
293293
break;
294294
case WM_CLOSE:
295+
if (settings.minimizeToTray)
296+
{
297+
ShowWindow(hWnd, SW_HIDE);
298+
}
299+
else
300+
{
301+
Shell_NotifyIcon(NIM_DELETE, &sysTray);
302+
shutDown(settings);
303+
DestroyWindow(hWnd);
304+
}
305+
break;
306+
307+
case WM_FORCE_CLOSE:
295308
Shell_NotifyIcon(NIM_DELETE, &sysTray);
296309
shutDown(settings);
297310
DestroyWindow(hWnd);
@@ -481,6 +494,12 @@ INT_PTR CALLBACK settingsViewProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM
481494
settings.checkUpdateStartup = (BOOL)SendMessage(settingsControls.checkForUpdatesStartup, BM_GETCHECK, 0, 0);
482495
break;
483496

497+
case IDC_CHECK_SETTINGS_TRAY_CLOSE:
498+
EnableWindow(GetDlgItem(hDlg, IDC_BUTTON_SETTINGS_SAVE), TRUE);
499+
settingsControls.settingsChanged = TRUE;
500+
settings.minimizeToTray = (BOOL)SendMessage(settingsControls.minimizeToTray, BM_GETCHECK, 0, 0);
501+
break;
502+
484503
case IDC_HOTKEY:
485504
EnableWindow(GetDlgItem(hDlg, IDC_BUTTON_SETTINGS_SAVE), TRUE);
486505
settingsControls.settingsChanged = TRUE;

src/resources/resource.h

92 Bytes
Binary file not shown.

src/resources/resource.rc

260 Bytes
Binary file not shown.

src/ui.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,13 +122,15 @@ void settingsShowWindow(SETTINGS_VIEW_CONTROLS settingsControls, SETTINGS *setti
122122
SendMessage(settingsControls.fullScreen, BM_SETCHECK, settings->fullScreen, 0);
123123
SendMessage(settingsControls.minimize, BM_SETCHECK, settings->minimize, 0);
124124
SendMessage(settingsControls.checkForUpdatesStartup, BM_SETCHECK, settings->checkUpdateStartup, 0);
125+
SendMessage(settingsControls.minimizeToTray, BM_SETCHECK, settings->minimizeToTray, 0);
125126

126127
EnableWindow(settingsControls.borderless, !running);
127128
EnableWindow(settingsControls.foreground, !running);
128129
EnableWindow(settingsControls.fullScreen, !running);
129130
EnableWindow(settingsControls.minimize, !running);
130131
EnableWindow(settingsControls.hotkey, !running);
131132
EnableWindow(settingsControls.checkForUpdatesStartup, !running);
133+
EnableWindow(settingsControls.minimizeToTray, !running);
132134
}
133135

134136
void settingsSave(HWND hWnd, SETTINGS_VIEW_CONTROLS settingsControls, SETTINGS settings, SETTINGS *previousSettings)
@@ -138,6 +140,7 @@ void settingsSave(HWND hWnd, SETTINGS_VIEW_CONTROLS settingsControls, SETTINGS s
138140
settings.fullScreen = (BOOL)SendMessage(settingsControls.fullScreen, BM_GETCHECK, 0, 0);
139141
settings.minimize = (BOOL)SendMessage(settingsControls.minimize, BM_GETCHECK, 0, 0);
140142
settings.checkUpdateStartup = (BOOL)SendMessage(settingsControls.checkForUpdatesStartup, BM_GETCHECK, 0, 0);
143+
settings.minimizeToTray = (BOOL)SendMessage(settingsControls.minimizeToTray, BM_GETCHECK, 0, 0);
141144

142145
*previousSettings = settings;
143146
}
@@ -150,6 +153,7 @@ void settingsCancel(SETTINGS_VIEW_CONTROLS settingsControls, SETTINGS *settings,
150153
SendMessage(settingsControls.fullScreen, BM_SETCHECK, settings->fullScreen, 0);
151154
SendMessage(settingsControls.minimize, BM_SETCHECK, settings->minimize, 0);
152155
SendMessage(settingsControls.checkForUpdatesStartup, BM_SETCHECK, settings->checkUpdateStartup, 0);
156+
SendMessage(settingsControls.minimizeToTray, BM_SETCHECK, settings->minimizeToTray, 0);
153157
// SendMessage(settingsControls.hotkey, HKM_SETHOTKEY, 0, 0);
154158
}
155159

tests/test_resources/test1.DLOCK

4 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)