Author: dchapyshev
Date: Thu Dec 18 06:32:46 2008
New Revision: 38172
URL: 
http://svn.reactos.org/svn/reactos?rev=38172&view=rev
Log:
- Revert r37085. It fix work kbswitch, but I think, that somewhere (in kbswitch) there is
a memory leak. Help somebody to find it
Modified:
    trunk/reactos/base/applications/kbswitch/kbswitch.c
Modified: trunk/reactos/base/applications/kbswitch/kbswitch.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/kbswitch…
==============================================================================
--- trunk/reactos/base/applications/kbswitch/kbswitch.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/kbswitch/kbswitch.c [iso-8859-1] Thu Dec 18 06:32:46
2008
@@ -24,8 +24,6 @@
 HANDLE    hProcessHeap;
 HMODULE   hDllLib;
 ULONG     ulCurrentLayoutNum = 1;
-UINT      cxSmIcon, cySmIcon;
-
 static HICON
 CreateTrayIcon(LPTSTR szLCID)
@@ -51,18 +49,18 @@
     hdcsrc = GetDC(NULL);
     hdc = CreateCompatibleDC(hdcsrc);
-    hBitmap = CreateCompatibleBitmap(hdcsrc, cxSmIcon, cySmIcon);
+    hBitmap = CreateCompatibleBitmap(hdcsrc, 16, 16);
     ReleaseDC(NULL, hdcsrc);
     if (hdc && hBitmap)
     {
-        hBmpNew = CreateBitmap(cxSmIcon, cySmIcon, 1, 1, NULL);
+        hBmpNew = CreateBitmap(16, 16, 1, 1, NULL);
         if (hBmpNew)
         {
             hBmpOld = SelectObject(hdc, hBitmap);
-            rect.right = cxSmIcon;
+            rect.right = 16;
             rect.left = 0;
-            rect.bottom = cySmIcon;
+            rect.bottom = 16;
             rect.top = 0;
             bkColor = SetBkColor(hdc, GetSysColor(COLOR_HIGHLIGHT));
@@ -70,14 +68,14 @@
             ExtTextOut(hdc, rect.left, rect.top, ETO_OPAQUE, &rect, _T(""),
0, NULL);
-            hFont = (HFONT) GetStockObject(DEFAULT_GUI_FONT);
-            if (!hFont)
-                goto End;
+            hFont = CreateFont(-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE,
ANSI_CHARSET,
+                               OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
+                               DEFAULT_QUALITY, FF_DONTCARE, _T("Tahoma"));
             hFontOld = SelectObject(hdc, hFont);
             DrawText(hdc, _tcsupr(szBuf), 2, &rect,
DT_SINGLELINE|DT_CENTER|DT_VCENTER);
             SelectObject(hdc, hBmpNew);
-            PatBlt(hdc, 0, 0, cxSmIcon, cySmIcon, BLACKNESS);
+            PatBlt(hdc, 0, 0, 16, 16, BLACKNESS);
             SelectObject(hdc, hBmpOld);
             SelectObject(hdc, hFontOld);
@@ -86,15 +84,15 @@
             IconInfo.fIcon = TRUE;
             hIcon = CreateIconIndirect(&IconInfo);
-End:
-            if (hBmpNew) DeleteObject(hBmpNew);
-            if (hBmpOld) DeleteObject(hBmpOld);
-            if (hFont) DeleteObject(hFont);
-        }
-    }
-
-    if (hdc) DeleteDC(hdc);
-    if (hBitmap) DeleteObject(hBitmap);
+
+            DeleteObject(hBmpNew);
+            DeleteObject(hBmpOld);
+            DeleteObject(hFont);
+        }
+    }
+
+    DeleteDC(hdc);
+    DeleteObject(hBitmap);
     return hIcon;
 }
@@ -386,23 +384,6 @@
     return -1;
 }
-static VOID
-SettingsChanging(HWND hwnd)
-{
-    UINT cxSmIconCur = 0, cySmIconCur = 0;
-
-    cxSmIconCur = GetSystemMetrics(SM_CXSMICON);
-    cySmIconCur = GetSystemMetrics(SM_CYSMICON);
-
-    if ((cxSmIcon != cxSmIconCur) || (cySmIcon != cySmIconCur))
-    {
-        cxSmIcon = cxSmIconCur;
-        cySmIcon = cySmIconCur;
-    }
-
-    ActivateLayout(hwnd, ulCurrentLayoutNum);
-}
-
 LRESULT CALLBACK
 WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
 {
@@ -413,9 +394,6 @@
     {
         case WM_CREATE:
         {
-            cxSmIcon = GetSystemMetrics(SM_CXSMICON);
-            cySmIcon = GetSystemMetrics(SM_CYSMICON);
-
             SetHooks();
             AddTrayIcon(hwnd);
             hRightPopupMenu = GetSubMenu(LoadMenu(hInst, MAKEINTRESOURCE(IDR_POPUP)), 0);
@@ -511,8 +489,6 @@
         case WM_SETTINGCHANGE:
         {
-            SettingsChanging(hwnd);
-
             if (wParam == SPI_SETDEFAULTINPUTLANG)
             {
                 //FIXME: Should detect default language changes by CPL applet or by other
tools and update UI