https://git.reactos.org/?p=reactos.git;a=commitdiff;h=92763e2901a077177cecf6411fe81b6e9f2b5c45

commit 92763e2901a077177cecf6411fe81b6e9f2b5c45
Author:     Hermès Bélusca-Maïto <[email protected]>
AuthorDate: Mon Dec 10 00:56:08 2018 +0100
Commit:     Hermès Bélusca-Maïto <[email protected]>
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);
 

Reply via email to