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
56206376
Commit
56206376
authored
Jan 11, 2005
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Desktop window is repainted on WM_ERASEBKGND, it must never get a
WM_PAINT.
parent
e2a71810
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
13 additions
and
6 deletions
+13
-6
painting.c
dlls/user/painting.c
+6
-3
desktop.c
dlls/x11drv/desktop.c
+1
-2
window.c
server/window.c
+6
-1
No files found.
dlls/user/painting.c
View file @
56206376
...
...
@@ -265,7 +265,7 @@ static BOOL send_erase( HWND hwnd, UINT flags, HRGN client_rgn,
}
if
(
!
hdc_ret
)
{
if
(
need_erase
)
/* FIXME: mark it as needing erase again */
if
(
need_erase
&&
hwnd
!=
GetDesktopWindow
()
)
/* FIXME: mark it as needing erase again */
RedrawWindow
(
hwnd
,
NULL
,
client_rgn
,
RDW_INVALIDATE
|
RDW_ERASE
|
RDW_NOCHILDREN
);
ReleaseDC
(
hwnd
,
hdc
);
}
...
...
@@ -282,7 +282,7 @@ static BOOL send_erase( HWND hwnd, UINT flags, HRGN client_rgn,
*
* Implementation of RDW_ERASENOW behavior.
*/
void
erase_now
(
HWND
hwnd
,
UINT
rdw_flags
)
static
void
erase_now
(
HWND
hwnd
,
UINT
rdw_flags
)
{
HWND
child
;
HRGN
hrgn
;
...
...
@@ -324,10 +324,13 @@ void erase_now( HWND hwnd, UINT rdw_flags )
* HIWORD(lParam) = hwndSkip (not used; always NULL)
*
*/
void
update_now
(
HWND
hwnd
,
UINT
rdw_flags
)
static
void
update_now
(
HWND
hwnd
,
UINT
rdw_flags
)
{
HWND
child
;
/* desktop window never gets WM_PAINT, only WM_ERASEBKGND */
if
(
hwnd
==
GetDesktopWindow
())
erase_now
(
hwnd
,
rdw_flags
|
RDW_NOCHILDREN
);
/* loop while we find a child to repaint */
for
(;;)
{
...
...
dlls/x11drv/desktop.c
View file @
56206376
...
...
@@ -44,8 +44,7 @@ static LRESULT WINAPI desktop_winproc( HWND hwnd, UINT message, WPARAM wParam, L
case
WM_ERASEBKGND
:
PaintDesktop
(
(
HDC
)
wParam
);
ValidateRect
(
hwnd
,
NULL
);
break
;
return
TRUE
;
case
WM_SYSCOMMAND
:
if
((
wParam
&
0xfff0
)
==
SC_CLOSE
)
ExitWindows
(
0
,
0
);
...
...
server/window.c
View file @
56206376
...
...
@@ -1660,7 +1660,12 @@ DECL_HANDLER(get_update_region)
else
{
if
(
reply
->
flags
&
UPDATE_NONCLIENT
)
validate_non_client
(
win
);
if
(
reply
->
flags
&
UPDATE_ERASE
)
win
->
paint_flags
&=
~
PAINT_ERASE
;
if
(
reply
->
flags
&
UPDATE_ERASE
)
{
win
->
paint_flags
&=
~
PAINT_ERASE
;
/* desktop window only gets erased, not repainted */
if
(
win
==
top_window
)
validate_whole_window
(
win
);
}
}
}
...
...
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