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__ %ifdef __UNIXSDL__
EXTSYM numlockptr EXTSYM numlockptr
%elifdef __WIN32__ %elifdef __WIN32__
EXTSYM initDirectDraw,reInitSound EXTSYM initDirectDraw,reInitSound,CheckAlwaysOnTop,CheckPriority,CheckScreenSaver
%elifdef __MSDOS__ %elifdef __MSDOS__
EXTSYM dssel,SetInputDevice209,initvideo2 EXTSYM dssel,SetInputDevice209,initvideo2
%endif %endif

View File

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

View File

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

View File

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