diff options
author | das <das> | 2007-12-12 23:44:21 (GMT) |
---|---|---|
committer | das <das> | 2007-12-12 23:44:21 (GMT) |
commit | eab645efcaf1952d13741e71ca0568212af825b5 (patch) | |
tree | 40bd58482b0bf7ee90a5ccb229822b551da0f0ec /macosx/tkMacOSXMouseEvent.c | |
parent | 1f1ea982a78eacbb0d096ed73ca61e5fe2ba5add (diff) | |
download | tk-eab645efcaf1952d13741e71ca0568212af825b5.zip tk-eab645efcaf1952d13741e71ca0568212af825b5.tar.gz tk-eab645efcaf1952d13741e71ca0568212af825b5.tar.bz2 |
* macosx/tkMacOSXWm.c (ApplyMasterOverrideChanges): Revert 2007-10-26
change to window class of transient toplevels that are not also
overrideredirect. [Bug 1845899]
* macosx/tkMacOSXWm.c (ApplyMasterOverrideChanges): Implement more
* macosx/tkMacOSXMouseEvent.c (BringWindowForward): X11-like transient
* macosx/tkMacOSXSubwindows.c (XDestroyWindow): behaviour by adding
transient windows to a window group owned by the master window, this
ensures transients always remain in front of and are collapsed with the
master; bring master to front when selecting transient windows; restore
default window group of transients if master destroyed. [Bug 1845899]
Diffstat (limited to 'macosx/tkMacOSXMouseEvent.c')
-rw-r--r-- | macosx/tkMacOSXMouseEvent.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/macosx/tkMacOSXMouseEvent.c b/macosx/tkMacOSXMouseEvent.c index e8396b6..507fc31 100644 --- a/macosx/tkMacOSXMouseEvent.c +++ b/macosx/tkMacOSXMouseEvent.c @@ -54,7 +54,7 @@ * software in accordance with the terms specified in this * license. * - * RCS: @(#) $Id: tkMacOSXMouseEvent.c,v 1.32 2007/07/09 08:31:54 das Exp $ + * RCS: @(#) $Id: tkMacOSXMouseEvent.c,v 1.33 2007/12/12 23:44:22 das Exp $ */ #include "tkMacOSXPrivate.h" @@ -555,6 +555,29 @@ BringWindowForward( ChkErr(GetWindowModality, frontWindow, &frontWindowModality, NULL); } if (frontWindowModality != kWindowModalityAppModal) { + Window window = TkMacOSXGetXWindow(wRef); + + if (window != None) { + TkDisplay *dispPtr = TkGetDisplayList(); + TkWindow * winPtr = (TkWindow *)Tk_IdToWindow(dispPtr->display, + window); + + if (winPtr && winPtr->wmInfoPtr && + winPtr->wmInfoPtr->master != None) { + TkWindow *masterWinPtr = (TkWindow *)Tk_IdToWindow( + dispPtr->display, winPtr->wmInfoPtr->master); + + if (masterWinPtr && masterWinPtr->window != None && + TkMacOSXHostToplevelExists(masterWinPtr)) { + WindowRef masterMacWin = + TkMacOSXDrawableWindow(masterWinPtr->window); + + if (masterMacWin) { + BringToFront(masterMacWin); + } + } + } + } SelectWindow(wRef); } else { frontWindowOnly = 0; |