From: Zebediah Figura zfigura@codeweavers.com
Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/winex11.drv/window.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 14b6a7a..55ac2d2 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -1759,6 +1759,22 @@ BOOL create_desktop_win_data( Window win ) return TRUE; }
+static WNDPROC desktop_orig_wndproc; + +#define WM_WINE_NOTIFY_ACTIVITY WM_USER + +static LRESULT CALLBACK desktop_wndproc_wrapper( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ) +{ + switch (msg) + { + case WM_WINE_NOTIFY_ACTIVITY: + XResetScreenSaver( gdi_display ); + XFlush( gdi_display ); + break; + } + return desktop_orig_wndproc( hwnd, msg, wp, lp ); +} + /********************************************************************** * CreateDesktopWindow (X11DRV.@) */ @@ -1766,6 +1782,9 @@ BOOL CDECL X11DRV_CreateDesktopWindow( HWND hwnd ) { unsigned int width, height;
+ desktop_orig_wndproc = (WNDPROC)SetWindowLongPtrW( GetDesktopWindow(), + GWLP_WNDPROC, (LONG_PTR)desktop_wndproc_wrapper ); + /* retrieve the real size of the desktop */ SERVER_START_REQ( get_window_rectangles ) {
From: Zebediah Figura zfigura@codeweavers.com
Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/winemac.drv/window.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
diff --git a/dlls/winemac.drv/window.c b/dlls/winemac.drv/window.c index 48b44a6..bad1dfe 100644 --- a/dlls/winemac.drv/window.c +++ b/dlls/winemac.drv/window.c @@ -1506,6 +1506,23 @@ static void perform_window_command(HWND hwnd, DWORD style_any, DWORD style_none, PostMessageW(hwnd, WM_SYSCOMMAND, command, 0); }
+static WNDPROC desktop_orig_wndproc; + +#define WM_WINE_NOTIFY_ACTIVITY WM_USER + +static LRESULT CALLBACK desktop_wndproc_wrapper( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ) +{ + switch (msg) + { + case WM_WINE_NOTIFY_ACTIVITY: + { + static IOPMAssertionID assertion; + IOPMAssertionDeclareUserActivity(CFSTR("Wine user input"), kIOPMUserActiveLocal, &assertion); + break; + } + } + return desktop_orig_wndproc( hwnd, msg, wp, lp ); +}
/********************************************************************** * CreateDesktopWindow (MACDRV.@) @@ -1516,6 +1533,9 @@ BOOL CDECL macdrv_CreateDesktopWindow(HWND hwnd)
TRACE("%p\n", hwnd);
+ desktop_orig_wndproc = (WNDPROC)SetWindowLongPtrW( GetDesktopWindow(), + GWLP_WNDPROC, (LONG_PTR)desktop_wndproc_wrapper ); + /* retrieve the real size of the desktop */ SERVER_START_REQ(get_window_rectangles) {
Zebediah Figura z.figura12@gmail.com writes:
This is still not the right place. You want to do that when X11DRV_CreateWindow() is called for the desktop window.