Alexandre Julliard : server: Trigger a repaint on layered windows the first time the attributes are set .

Alexandre Julliard julliard at winehq.org
Mon Sep 16 16:57:22 CDT 2013


Module: wine
Branch: master
Commit: f9c76be08437c8360722374066a672d8338b0e85
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f9c76be08437c8360722374066a672d8338b0e85

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Sat Sep 14 13:53:08 2013 +0200

server: Trigger a repaint on layered windows the first time the attributes are set.

---

 server/window.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/server/window.c b/server/window.c
index e141f93..1696fce 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 );
 }




More information about the wine-cvs mailing list