From f9c76be08437c8360722374066a672d8338b0e85 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Sat, 14 Sep 2013 13:53:08 +0200 Subject: [PATCH] server: Trigger a repaint on layered windows the first time the attributes are set. --- server/window.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/window.c b/server/window.c index e141f934cef..1696fce33e7 100644 --- a/server/window.c +++ b/server/window.c @@ -2794,12 +2794,16 @@ DECL_HANDLER(set_window_layered_info) if (win->ex_style & WS_EX_LAYERED) { + int was_layered = win->is_layered; + if (req->flags & LWA_ALPHA) win->alpha = req->alpha; else if (!win->is_layered) win->alpha = 0; /* alpha init value is 0 */ win->color_key = req->color_key; win->layered_flags = req->flags; win->is_layered = 1; + /* repaint since we know now it's not going to use UpdateLayeredWindow */ + if (!was_layered) redraw_window( win, 0, 1, RDW_INVALIDATE | RDW_ERASE | RDW_FRAME ); } else set_win32_error( ERROR_INVALID_WINDOW_HANDLE ); }