Reduce rate of X11 screensave interrupt to once/minute
This commit is contained in:
@@ -7,6 +7,7 @@
|
|||||||
#include "RageDisplay.h" // VideoModeParams
|
#include "RageDisplay.h" // VideoModeParams
|
||||||
#include "DisplaySpec.h"
|
#include "DisplaySpec.h"
|
||||||
#include "LocalizedString.h"
|
#include "LocalizedString.h"
|
||||||
|
#include "RageTimer.h"
|
||||||
|
|
||||||
#include "RageDisplay_OGL_Helpers.h"
|
#include "RageDisplay_OGL_Helpers.h"
|
||||||
using namespace RageDisplay_Legacy_Helpers;
|
using namespace RageDisplay_Legacy_Helpers;
|
||||||
@@ -623,16 +624,20 @@ void LowLevelWindow_X11::SwapBuffers()
|
|||||||
* it's already active.
|
* it's already active.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
XLockDisplay( Dpy );
|
auto now = RageTimer::GetTimeSinceStartFast();
|
||||||
|
if( (now - m_lastScreensaverInterrupt) > m_screensaverInterruptInterval ) {
|
||||||
|
m_lastScreensaverInterrupt = now;
|
||||||
|
XLockDisplay( Dpy );
|
||||||
|
|
||||||
int event_base, error_base, major, minor;
|
int event_base, error_base, major, minor;
|
||||||
if( XTestQueryExtension( Dpy, &event_base, &error_base, &major, &minor ) )
|
if( XTestQueryExtension( Dpy, &event_base, &error_base, &major, &minor ) )
|
||||||
{
|
{
|
||||||
XTestFakeRelativeMotionEvent( Dpy, 0, 0, 0 );
|
XTestFakeRelativeMotionEvent( Dpy, 0, 0, 0 );
|
||||||
XSync( Dpy, False );
|
XSync( Dpy, False );
|
||||||
|
}
|
||||||
|
|
||||||
|
XUnlockDisplay( Dpy );
|
||||||
}
|
}
|
||||||
|
|
||||||
XUnlockDisplay( Dpy );
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,9 @@ private:
|
|||||||
|
|
||||||
bool m_bWasWindowed;
|
bool m_bWasWindowed;
|
||||||
ActualVideoModeParams CurrentParams;
|
ActualVideoModeParams CurrentParams;
|
||||||
|
|
||||||
|
float m_lastScreensaverInterrupt = 0.0f;
|
||||||
|
float m_screensaverInterruptInterval = 60.0f;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef ARCH_LOW_LEVEL_WINDOW
|
#ifdef ARCH_LOW_LEVEL_WINDOW
|
||||||
|
|||||||
Reference in New Issue
Block a user