https://git.reactos.org/?p=reactos.git;a=commitdiff;h=4e91b6d5dba722bc748bb…
commit 4e91b6d5dba722bc748bb5eda72fd8133e2bc730
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sat Jun 15 18:33:28 2019 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Sat Jun 15 18:33:28 2019 +0200
[MAGNIFY] Minor fixes for zoom handling.
- Zoom factor is unsigned.
- It is comprised between 1 and 9, other values are invalid.
- Check for value validity when reading the zoom string from the combo-list.
---
base/applications/magnify/magnifier.c | 15 ++++++++++-----
base/applications/magnify/magnifier.h | 2 +-
base/applications/magnify/settings.c | 22 +++++++++++-----------
3 files changed, 22 insertions(+), 17 deletions(-)
diff --git a/base/applications/magnify/magnifier.c
b/base/applications/magnify/magnifier.c
index 13a0a3cd190..3b3cc924e90 100644
--- a/base/applications/magnify/magnifier.c
+++ b/base/applications/magnify/magnifier.c
@@ -404,8 +404,8 @@ void Draw(HDC aDc)
DeleteDC(hdcOffscreen);
}
- sourceWidth = AppWidth / iZoom;
- sourceHeight = AppHeight / iZoom;
+ sourceWidth = AppWidth / uiZoom;
+ sourceHeight = AppHeight / uiZoom;
/* Create a memory DC compatible with client area DC */
hdcOffscreen = CreateCompatibleDC(desktopHdc);
@@ -882,7 +882,7 @@ INT_PTR CALLBACK OptionsProc(HWND hDlg, UINT message, WPARAM wParam,
LPARAM lPar
break;
case WM_INITDIALOG:
{
- // Add the zoom items...
+ /* Add the zoom items */
SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0,
(LPARAM)("1"));
SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0,
(LPARAM)("2"));
SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0,
(LPARAM)("3"));
@@ -891,8 +891,10 @@ INT_PTR CALLBACK OptionsProc(HWND hDlg, UINT message, WPARAM wParam,
LPARAM lPar
SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0,
(LPARAM)("6"));
SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0,
(LPARAM)("7"));
SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0,
(LPARAM)("8"));
+ SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0,
(LPARAM)("9"));
- SendDlgItemMessage(hDlg, IDC_ZOOM, CB_SETCURSEL, iZoom - 1, 0);
+ if (uiZoom >= 1 && uiZoom <= 9)
+ SendDlgItemMessage(hDlg, IDC_ZOOM, CB_SETCURSEL, uiZoom - 1, 0);
if (bFollowMouse)
SendDlgItemMessage(hDlg,IDC_FOLLOWMOUSECHECK,BM_SETCHECK , wParam ,0);
@@ -936,7 +938,10 @@ INT_PTR CALLBACK OptionsProc(HWND hDlg, UINT message, WPARAM wParam,
LPARAM lPar
/* Get index of current selection and the text of that selection */
int currentSelectionIndex = ComboBox_GetCurSel(hCombo);
ComboBox_GetLBText(hCombo, currentSelectionIndex, currentZoomValue);
- iZoom = _ttoi(currentZoomValue);
+ uiZoom = (UINT)_ttoi(currentZoomValue);
+ /* The zoom factor cannot be smaller than 1 (and not zero) or greater
than 9 */
+ if (uiZoom < 1 || uiZoom > 9)
+ uiZoom = 1;
/* Trigger the Draw function to rezoom (which will be set false
automatically after rezooming) */
bRecreateOffscreenDC = TRUE;
diff --git a/base/applications/magnify/magnifier.h
b/base/applications/magnify/magnifier.h
index 7f29006b834..01e742d4ff1 100644
--- a/base/applications/magnify/magnifier.h
+++ b/base/applications/magnify/magnifier.h
@@ -24,7 +24,7 @@
#include <stdarg.h>
#include <windef.h>
-extern int iZoom;
+extern UINT uiZoom;
struct _AppBarConfig_t {
DWORD cbSize;
diff --git a/base/applications/magnify/settings.c b/base/applications/magnify/settings.c
index a6d4cf0af53..ab6c585b0ab 100644
--- a/base/applications/magnify/settings.c
+++ b/base/applications/magnify/settings.c
@@ -12,7 +12,7 @@
#include <tchar.h>
#include <winreg.h>
-int iZoom = 3;
+UINT uiZoom = 3;
BOOL bShowWarning = TRUE;
@@ -50,38 +50,38 @@ void LoadSettings()
}
}
- len = 4;
+ len = sizeof(value);
if (RegQueryValueEx(hkey, _T("StationaryMagLevel"), 0, 0, (BYTE
*)&value, &len) == ERROR_SUCCESS)
{
if (value >= 0 && value <= 9)
- iZoom = value;
+ uiZoom = value;
}
- len = 4;
+ len = sizeof(value);
if (RegQueryValueEx(hkey, _T("ShowWarning"), 0, 0, (BYTE *)&value,
&len) == ERROR_SUCCESS)
bShowWarning = (value == 0 ? FALSE : TRUE);
- len = 4;
+ len = sizeof(value);
if (RegQueryValueEx(hkey, _T("StationaryInvertColors"), 0, 0, (BYTE
*)&value, &len) == ERROR_SUCCESS)
bInvertColors = (value == 0 ? FALSE : TRUE);
- len = 4;
+ len = sizeof(value);
if (RegQueryValueEx(hkey, _T("StationaryStartMinimized"), 0, 0, (BYTE
*)&value, &len) == ERROR_SUCCESS)
bStartMinimized = (value == 0 ? FALSE : TRUE);
- len = 4;
+ len = sizeof(value);
if (RegQueryValueEx(hkey, _T("StationaryTrackCursor"), 0, 0, (BYTE
*)&value, &len) == ERROR_SUCCESS)
bFollowMouse = (value == 0 ? FALSE : TRUE);
- len = 4;
+ len = sizeof(value);
if (RegQueryValueEx(hkey, _T("StationaryTrackFocus"), 0, 0, (BYTE
*)&value, &len) == ERROR_SUCCESS)
bFollowFocus = (value == 0 ? FALSE : TRUE);
- len = 4;
+ len = sizeof(value);
if (RegQueryValueEx(hkey, _T("StationaryTrackSecondaryFocus"), 0, 0,
(BYTE *)&value, &len) == ERROR_SUCCESS)
bFollowFocus = (value == 0 ? FALSE : TRUE);
- len = 4;
+ len = sizeof(value);
if (RegQueryValueEx(hkey, _T("StationaryTrackText"), 0, 0, (BYTE
*)&value, &len) == ERROR_SUCCESS)
bFollowCaret = (value == 0 ? FALSE : TRUE);
@@ -98,7 +98,7 @@ void SaveSettings()
{
RegSetValueEx(hkey, _T("AppBar"), 0, REG_BINARY, (BYTE
*)&AppBarConfig, sizeof(AppBarConfig));
- value = iZoom;
+ value = uiZoom;
RegSetValueEx(hkey, _T("StationaryMagLevel"), 0, REG_DWORD, (BYTE
*)&value, sizeof(value));
value = bShowWarning;