Module: wine Branch: master Commit: 94c817e311e4ae1915461d27b17e8394f9ee9433 URL: http://source.winehq.org/git/wine.git/?a=commit;h=94c817e311e4ae1915461d27b1...
Author: Dmitry Timoshkov dmitry@baikal.ru Date: Wed Jun 6 14:47:45 2012 +0900
server: Make sure that region and rectangle have the same origin before calling rect_in_region().
---
server/window.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/server/window.c b/server/window.c index 329fdb6..3456e1a 100644 --- a/server/window.c +++ b/server/window.c @@ -2457,7 +2457,12 @@ DECL_HANDLER(update_window_zorder) if (!(ptr->style & WS_VISIBLE)) continue; if (ptr->ex_style & WS_EX_TRANSPARENT) continue; if (!intersect_rect( &tmp, &ptr->visible_rect, &rect )) continue; - if (ptr->win_region && !rect_in_region( ptr->win_region, &rect )) continue; + if (ptr->win_region) + { + tmp = rect; + offset_rect( &tmp, -ptr->window_rect.left, -ptr->window_rect.top ); + if (!rect_in_region( ptr->win_region, &tmp )) continue; + } /* found a window obscuring the rectangle, now move win above this one */ /* making sure to not violate the topmost rule */ if (!(ptr->ex_style & WS_EX_TOPMOST) || (win->ex_style & WS_EX_TOPMOST))