https://git.reactos.org/?p=reactos.git;a=commitdiff;h=92763e2901a077177cecf…
commit 92763e2901a077177cecf6411fe81b6e9f2b5c45
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Mon Dec 10 00:56:08 2018 +0100
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Mon Dec 10 00:56:54 2018 +0100
[OSK] Set also the large icon (that appears in the App Switcher) and move the code in
OSK_DlgInitDialog().
---
base/applications/osk/main.c | 40 +++++++++++-----------------------------
1 file changed, 11 insertions(+), 29 deletions(-)
diff --git a/base/applications/osk/main.c b/base/applications/osk/main.c
index 7f5a5e9869..463b72d38d 100644
--- a/base/applications/osk/main.c
+++ b/base/applications/osk/main.c
@@ -58,32 +58,6 @@ int OSK_SetImage(int IdDlgItem, int IdResource)
return TRUE;
}
-/***********************************************************************
- *
- * OSK_SetAppIcon
- *
- * Set the application's icon
- */
-BOOL OSK_SetAppIcon()
-{
- HICON hIconSmall;
-
- /* Load the icon */
- hIconSmall = LoadImageW(Globals.hInstance, MAKEINTRESOURCEW(IDI_OSK), IMAGE_ICON, 0,
0, LR_DEFAULTSIZE);
-
- /* Send a message window indicating that the icon has to be set */
- SendMessageW(Globals.hMainWnd, WM_SETICON, ICON_SMALL, (LPARAM)hIconSmall);
-
- if (!hIconSmall)
- {
- /* If we fail then return FALSE and bail out */
- DestroyIcon(hIconSmall);
- return FALSE;
- }
-
- return TRUE;
-}
-
/***********************************************************************
*
* OSK_WarningProc
@@ -134,7 +108,8 @@ INT_PTR CALLBACK OSK_WarningProc(HWND hDlg, UINT Msg, WPARAM wParam,
LPARAM lPar
*/
int OSK_DlgInitDialog(HWND hDlg)
{
- HMONITOR monitor;
+ HICON hIcon, hIconSm;
+ HMONITOR monitor;
MONITORINFO info;
POINT Pt;
RECT rcWindow;
@@ -146,11 +121,18 @@ int OSK_DlgInitDialog(HWND hDlg)
LoadDataFromRegistry();
/* Set the application's icon */
- OSK_SetAppIcon();
+ hIcon = LoadImageW(Globals.hInstance, MAKEINTRESOURCEW(IDI_OSK), IMAGE_ICON, 0, 0,
LR_SHARED | LR_DEFAULTSIZE);
+ hIconSm = CopyImage(hIcon, IMAGE_ICON, GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON), LR_COPYFROMRESOURCE);
+ if (hIcon || hIconSm)
+ {
+ /* Set the window icons (they are deleted when the process terminates) */
+ SendMessageW(Globals.hMainWnd, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
+ SendMessageW(Globals.hMainWnd, WM_SETICON, ICON_SMALL, (LPARAM)hIconSm);
+ }
/* Get screen info */
memset(&Pt, 0, sizeof(Pt));
- monitor = MonitorFromPoint(Pt, MONITOR_DEFAULTTOPRIMARY );
+ monitor = MonitorFromPoint(Pt, MONITOR_DEFAULTTOPRIMARY);
info.cbSize = sizeof(info);
GetMonitorInfoW(monitor, &info);