Fixed disable Screensaver option.

This commit is contained in:
jbo_85
2006-02-19 20:51:53 +00:00
parent b8363cdeef
commit fd33cf0e3b
4 changed files with 28 additions and 35 deletions

View File

@@ -148,7 +148,7 @@ EXTSYM MovieVideoMode, MovieAudioMode
%ifdef __UNIXSDL__
EXTSYM numlockptr
%elifdef __WIN32__
EXTSYM initDirectDraw,reInitSound
EXTSYM initDirectDraw,reInitSound,CheckAlwaysOnTop,CheckPriority,CheckScreenSaver
%elifdef __MSDOS__
EXTSYM dssel,SetInputDevice209,initvideo2
%endif

View File

@@ -770,6 +770,9 @@ GUIOptionKeys:
GUIKeyCheckbox SidewinderFix,'I'
%elifdef __WIN32__
GUIKeyCheckbox HighPriority,'H'
pushad
call CheckPriority
popad
%endif
GUIKeyCheckbox FPSAtStart,'F'
GUIKeyCheckbox Turbo30hz,'E'
@@ -785,6 +788,9 @@ GUIOptionKeys:
%endif
%ifdef __WIN32__
GUIKeyCheckbox DisableScreenSaver,'I'
pushad
call CheckScreenSaver
popad
%endif
ret

View File

@@ -20,8 +20,6 @@
%ifdef __WIN32__
EXTSYM CheckPriority
EXTSYM CheckAlwaysOnTop
EXTSYM MinimizeWindow
%endif
@@ -1357,24 +1355,6 @@ GUIWinClicked:
%%noclick
%endmacro
%macro GUIClickCButtonW 3
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
xor %3,1
%%noclick
%ifdef __WIN32__
pushad
call CheckPriority
popad
%endif
%endmacro
%macro GUIClickCButtonI 3
cmp eax,%1+1
jl %%noclick
@@ -2343,9 +2323,11 @@ DisplayGUIOptionClick:
GUIClickCButtonM 11,50,byte[pl12s34]
%ifdef __MSDOS__
GUIClickCButton 11,60,byte[SidewinderFix]
%endif
%ifdef __WIN32__
GUIClickCButtonW 11,60,byte[HighPriority]
%elifdef __WIN32__
GUIClickCButton 11,60,byte[HighPriority]
pushad
call CheckPriority
popad
%endif
GUIClickCButton 11,70,byte[FPSAtStart]
GUIClickCButton 11,80,byte[Turbo30hz]
@@ -2360,7 +2342,10 @@ DisplayGUIOptionClick:
GUIClickCButton 11,160,byte[PauseFocusChange]
%endif
%ifdef __WIN32__
GUIClickCButtonW 11,170,byte[DisableScreenSaver]
GUIClickCButton 11,170,byte[DisableScreenSaver]
pushad
call CheckScreenSaver
popad
%endif
ret

View File

@@ -456,6 +456,12 @@ extern "C" void CheckAlwaysOnTop()
else SetWindowPos(hMainWindow, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
}
extern "C" void CheckScreenSaver()
{
if (DisableScreenSaver == 1 && IsActivated == 1) SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, FALSE, 0, SPIF_SENDCHANGE);
else SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, TRUE, 0, SPIF_SENDCHANGE);
}
extern "C" void MinimizeWindow()
{
ShowWindow(hMainWindow, SW_MINIMIZE);
@@ -544,6 +550,7 @@ void ExitFunction()
if (debugWindow) FreeConsole();
IsActivated = 0;
CheckScreenSaver();
ReleaseDirectInput();
ReleaseDirectSound();
ReleaseDirectDraw();
@@ -667,6 +674,7 @@ LRESULT CALLBACK Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
if (FirstActivate == 1) FirstActivate = 0;
if (FullScreen == 1) Clear2xSaIBuffer();
CheckPriority();
CheckScreenSaver();
}
if (LOWORD(wParam) == WA_INACTIVE)
{
@@ -674,32 +682,25 @@ LRESULT CALLBACK Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
if (PauseFocusChange) EMUPause = 1;
InputDeAcquire();
if (GUIOn || GUIOn2 || EMUPause) SetPriorityClass(GetCurrentProcess(), IDLE_PRIORITY_CLASS);
CheckScreenSaver();
}
break;
case WM_SETFOCUS:
if (FullScreen == 0) ShowWindow(hMainWindow, SW_SHOWNORMAL);
CheckPriority();
CheckScreenSaver();
InputAcquire();
break;
case WM_KILLFOCUS:
InputDeAcquire();
IsActivated = 0;
if (GUIOn || GUIOn2 || EMUPause) SetPriorityClass(GetCurrentProcess(), IDLE_PRIORITY_CLASS);
CheckScreenSaver();
break;
case WM_DESTROY:
break;
case WM_CLOSE:
break;
case WM_SYSCOMMAND:
if (DisableScreenSaver)
{
switch (wParam)
{
case SC_MONITORPOWER:
return 0;
}
}
break;
}
return DefWindowProc(hWnd,uMsg,wParam,lParam);;
}
@@ -2097,6 +2098,7 @@ void initwinvideo(void)
CheckPriority();
CheckAlwaysOnTop();
CheckScreenSaver();
if (!hMainWindow)
{