From a4464ffb4b788c612c899a28c497c13709a9dbfc Mon Sep 17 00:00:00 2001 From: "syed.amer@gilani.eu" Date: Sun, 29 Mar 2009 13:14:07 +0000 Subject: [PATCH] Fixed Issue #24: Display not turning on from Synergy Input --- lib/platform/CXWindowsScreen.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/platform/CXWindowsScreen.cpp b/lib/platform/CXWindowsScreen.cpp index 1a813e84..693164c4 100644 --- a/lib/platform/CXWindowsScreen.cpp +++ b/lib/platform/CXWindowsScreen.cpp @@ -36,6 +36,9 @@ # define XK_MISCELLANY # define XK_XKB_KEYS # include + extern "C" { +# include + } # if HAVE_X11_EXTENSIONS_XTEST_H # include # else @@ -230,6 +233,19 @@ CXWindowsScreen::enter() XSetInputFocus(m_display, m_lastFocus, m_lastFocusRevert, CurrentTime); } + // Force the DPMS to turn screen back on since we don't + // actually cause physical hardware input to trigger it + int dummy; + CARD16 powerlevel; + BOOL enabled; + if (DPMSQueryExtension(m_display, &dummy, &dummy) && + DPMSCapable(m_display) && + DPMSInfo(m_display, &powerlevel, &enabled)) + { + if (enabled && powerlevel != DPMSModeOn) + DPMSForceLevel(m_display, DPMSModeOn); + } + // unmap the hider/grab window. this also ungrabs the mouse and // keyboard if they're grabbed. XUnmapWindow(m_display, m_window);