Ken Thomases : winemac: Mirror the hierarchy of Win32 child windows with Cocoa views.

Alexandre Julliard julliard at wine.codeweavers.com
Sat May 14 10:07:28 CDT 2016


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

Author: Ken Thomases <ken at codeweavers.com>
Date:   Thu May 12 18:50:46 2016 -0500

winemac: Mirror the hierarchy of Win32 child windows with Cocoa views.

This only really affects OpenGL child windows.  GDI rendering to the window
surface is still only blitted to the window's content view.  The descendant
views don't draw and so are transparent, letting the content view show through.

Using Cocoa views for child windows fixes a problem where changes to the
position and visibility of child GL windows didn't properly affect the Cocoa GL
view.  Hiding, showing, and moving the top-level window affected the Cocoa
window and thus, indirectly, the GL view.  Moving the child GL window itself
was propagated to the GL view, so that worked.  But hiding, showing, or moving
any of the intervening ancestors of the child GL window didn't properly affect
the GL view.  Neither did hiding or showing the child GL window itself.

This also slightly improves the clipping of the GL view by its ancestors,
although it still doesn't work quite right due to Cocoa bugs.  There are also
remaining bugs with z-order among multiple GL views and clipping by overlapping
siblings.  I hope to eventually fix those using Core Animation layers, for
which this is a prerequisite.

Signed-off-by: Ken Thomases <ken at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winemac.drv/macdrv.h |   7 +-
 dlls/winemac.drv/opengl.c | 159 ++++++----------------------------
 dlls/winemac.drv/window.c | 213 +++++++++++++++++++++++++++++++++++++++++-----
 3 files changed, 222 insertions(+), 157 deletions(-)

Diff:   http://source.winehq.org/git/wine.git/?a=commitdiff;h=d91e568635c7cd23bd56f3ed688a2ba0b7219097



More information about the wine-cvs mailing list