Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
5ef349e4
Commit
5ef349e4
authored
Jan 22, 2018
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winex11: Don't allocate a window surface for off-screen windows.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
ae49bc94
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
10 deletions
+10
-10
window.c
dlls/winex11.drv/window.c
+10
-10
No files found.
dlls/winex11.drv/window.c
View file @
5ef349e4
...
...
@@ -2151,17 +2151,17 @@ done:
}
static
inline
RECT
get_surface_rect
(
const
RECT
*
visibl
e_rect
)
static
inline
BOOL
get_surface_rect
(
const
RECT
*
visible_rect
,
RECT
*
surfac
e_rect
)
{
RECT
rect
=
get_virtual_screen_rect
();
*
surface_
rect
=
get_virtual_screen_rect
();
IntersectRect
(
&
rect
,
&
rect
,
visible_rect
)
;
OffsetRect
(
&
rect
,
-
visible_rect
->
left
,
-
visible_rect
->
top
);
rect
.
left
&=
~
31
;
rect
.
top
&=
~
31
;
rect
.
right
=
max
(
rect
.
left
+
32
,
(
rect
.
right
+
31
)
&
~
31
);
rect
.
bottom
=
max
(
rect
.
top
+
32
,
(
rect
.
bottom
+
31
)
&
~
31
);
return
rect
;
if
(
!
IntersectRect
(
surface_rect
,
surface_rect
,
visible_rect
))
return
FALSE
;
OffsetRect
(
surface_
rect
,
-
visible_rect
->
left
,
-
visible_rect
->
top
);
surface_rect
->
left
&=
~
31
;
surface_rect
->
top
&=
~
31
;
surface_rect
->
right
=
max
(
surface_rect
->
left
+
32
,
(
surface_rect
->
right
+
31
)
&
~
31
);
surface_rect
->
bottom
=
max
(
surface_rect
->
top
+
32
,
(
surface_rect
->
bottom
+
31
)
&
~
31
);
return
TRUE
;
}
...
...
@@ -2198,6 +2198,7 @@ void CDECL X11DRV_WindowPosChanging( HWND hwnd, HWND insert_after, UINT swp_flag
if
(
!
data
->
whole_window
&&
!
data
->
embedded
)
goto
done
;
if
(
swp_flags
&
SWP_HIDEWINDOW
)
goto
done
;
if
(
data
->
vis
.
visualid
!=
default_visual
.
visualid
)
goto
done
;
if
(
!
get_surface_rect
(
visible_rect
,
&
surface_rect
))
goto
done
;
if
(
*
surface
)
window_surface_release
(
*
surface
);
*
surface
=
NULL
;
/* indicate that we want to draw directly to the window */
...
...
@@ -2207,7 +2208,6 @@ void CDECL X11DRV_WindowPosChanging( HWND hwnd, HWND insert_after, UINT swp_flag
if
(
data
->
client_window
)
goto
done
;
if
(
!
client_side_graphics
&&
!
layered
)
goto
done
;
surface_rect
=
get_surface_rect
(
visible_rect
);
if
(
data
->
surface
)
{
if
(
EqualRect
(
&
data
->
surface
->
rect
,
&
surface_rect
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment