<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 4/19/22 16:14, Zhiyi Zhang wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:410490ae-a1a5-1825-62cb-a98538c9b864@codeweavers.com">
      <pre class="moz-quote-pre" wrap="">
On 4/19/22 21:30, Jacek Caban wrote:
</pre>
      <blockquote type="cite" style="color: #007cff;">
        <pre class="moz-quote-pre" wrap="">Signed-off-by: Jacek Caban <a class="moz-txt-link-rfc2396E" href="mailto:jacek@codeweavers.com" moz-do-not-send="true"><jacek@codeweavers.com></a>
---
 dlls/winex11.drv/window.c | 27 +++------------------------
 1 file changed, 3 insertions(+), 24 deletions(-)


0003-winex11-Use-NtUserGetVirtualScreenRect-for-is_window_r.txt

diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index 4c4e47884ff..4a08921d5c8 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -284,32 +284,11 @@ static inline BOOL is_window_resizable( struct x11drv_win_data *data, DWORD styl
     return is_window_rect_full_screen( &data->whole_rect );
 }
 
-struct monitor_info
-{
-    const RECT *rect;
-    BOOL full_screen;
-};
-
-static BOOL CALLBACK enum_monitor_proc( HMONITOR monitor, HDC hdc, RECT *monitor_rect, LPARAM lparam )
-{
-    struct monitor_info *info = (struct monitor_info *)lparam;
-
-    if (info->rect->left <= monitor_rect->left && info->rect->right >= monitor_rect->right &&
-        info->rect->top <= monitor_rect->top && info->rect->bottom >= monitor_rect->bottom)
-    {
-        info->full_screen = TRUE;
-        return FALSE;
-    }
-
-    return TRUE;
-}
-
 BOOL is_window_rect_full_screen( const RECT *rect )
 {
-    struct monitor_info info = {rect, FALSE};
-
-    EnumDisplayMonitors( NULL, NULL, enum_monitor_proc, (LPARAM)&info );
-    return info.full_screen;
+    RECT work_rect = NtUserGetVirtualScreenRect();
+    return rect->left <= work_rect.left && rect->right >= work_rect.right &&
+        rect->top <= work_rect.top && rect->bottom >= work_rect.bottom;
 }
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">Hi Jacek,

I don't think this is correct for multi-monitor cases. is_window_rect_full_screen() should return TRUE if it covers
any one of the monitors. With this change, it only returns TRUE if it covers all of the monitors.</pre>
    </blockquote>
    <p><br>
    </p>
    <p>Oh, right, I messed it up. Let's skip this patch for now.</p>
    <p><br>
    </p>
    <p>Thanks,</p>
    <p>Jacek<br>
    </p>
  </body>
</html>