Vincent Pelletier : user32: Fix SPI_GETMOUSESPEED and SPI_SETMOUSESPEED.

Alexandre Julliard julliard at winehq.org
Tue Dec 23 13:41:35 CST 2008


Module: wine
Branch: master
Commit: 878c2a83325b66cea79c24dc7379e5a6ee976044
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=878c2a83325b66cea79c24dc7379e5a6ee976044

Author: Vincent Pelletier <plr.vincent at gmail.com>
Date:   Mon Dec 22 21:56:14 2008 +0100

user32: Fix SPI_GETMOUSESPEED and SPI_SETMOUSESPEED.

---

 dlls/user32/sysparams.c |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/dlls/user32/sysparams.c b/dlls/user32/sysparams.c
index 4e48299..9d72688 100644
--- a/dlls/user32/sysparams.c
+++ b/dlls/user32/sysparams.c
@@ -85,6 +85,7 @@ enum spi_index
     SPI_MINIMIZEDMETRICS_IDX,
     SPI_SETFOREGROUNDLOCKTIMEOUT_IDX,
     SPI_CARETWIDTH_IDX,
+    SPI_SETMOUSESPEED_IDX,
     SPI_INDEX_COUNT
 };
 
@@ -221,6 +222,8 @@ static const WCHAR SPI_SETFOREGROUNDLOCKTIMEOUT_REGKEY[]=     {'C','o','n','t','
 static const WCHAR SPI_SETFOREGROUNDLOCKTIMEOUT_VALNAME[]=    {'F','o','r','e','g','r','o','u','n','d','L','o','c','k','T','i','m','e','o','u','t',0};
 static const WCHAR SPI_CARETWIDTH_REGKEY[]=                   {'C','o','n','t','r','o','l',' ','P','a','n','e','l','\\','D','e','s','k','t','o','p',0};
 static const WCHAR SPI_CARETWIDTH_VALNAME[]=                  {'C','a','r','e','t','W','i','d','t','h',0};
+static const WCHAR SPI_SETMOUSESPEED_REGKEY[]=                {'C','o','n','t','r','o','l',' ','P','a','n','e','l','\\','M','o','u','s','e',0};
+static const WCHAR SPI_SETMOUSESPEED_VALNAME[]=               {'M','o','u','s','e','S','e','n','s','i','t','i','v','i','t','y',0};
 
 /* FIXME - real values */
 static const WCHAR SPI_SETSCREENSAVERRUNNING_REGKEY[]=   {'C','o','n','t','r','o','l',' ','P','a','n','e','l','\\','D','e','s','k','t','o','p',0};
@@ -312,6 +315,7 @@ static BOOL snap_to_default_button = FALSE;
 static BOOL swap_buttons = FALSE;
 static UINT foreground_lock_timeout = 0;
 static UINT caret_width = 1;
+static UINT mouse_sensitivity = 10;
 static BYTE user_prefs[4];
 
 static MINIMIZEDMETRICS minimized_metrics =
@@ -2159,20 +2163,20 @@ BOOL WINAPI SystemParametersInfoW( UINT uiAction, UINT uiParam,
     WINE_SPI_FIXME(SPI_SETSHOWIMEUI);		/*    111  _WIN32_WINNT >= 0x400 || _WIN32_WINDOW > 0x400 */
 
     case SPI_GETMOUSESPEED:             /*    112  _WIN32_WINNT >= 0x500 || _WIN32_WINDOW > 0x400 */
-    {
-        int buf[3];
-        ret = SystemParametersInfoW (SPI_GETMOUSE, 0, buf, fWinIni);
-        *(INT *)pvParam = buf[2];
+        ret = get_uint_param( SPI_SETMOUSESPEED_IDX,
+                              SPI_SETMOUSESPEED_REGKEY,
+                              SPI_SETMOUSESPEED_VALNAME,
+                              &mouse_sensitivity, pvParam );
         break;
-    }
 
     case SPI_SETMOUSESPEED:                     /*    113  _WIN32_WINNT >= 0x500 || _WIN32_WINDOW > 0x400 */
-    {
-        ret = save_int_param( SPI_SETMOUSE_REGKEY, SPI_SETMOUSE_VALNAME3,
-                              &mouse_speed, PtrToInt(pvParam), fWinIni);
+        if (!pvParam) return FALSE;
+        ret = set_uint_param( SPI_SETMOUSESPEED_IDX,
+                              SPI_SETMOUSESPEED_REGKEY,
+                              SPI_SETMOUSESPEED_VALNAME,
+                              &mouse_sensitivity, *(UINT *) pvParam, fWinIni );
 
         break;
-    }
 
     case SPI_GETSCREENSAVERRUNNING:
         ret = get_bool_param( SPI_SETSCREENSAVERRUNNING_IDX,




More information about the wine-cvs mailing list