summaryrefslogtreecommitdiffstats
path: root/macosx/tkMacOSXWindowEvent.c
diff options
context:
space:
mode:
Diffstat (limited to 'macosx/tkMacOSXWindowEvent.c')
-rw-r--r--macosx/tkMacOSXWindowEvent.c23
1 files changed, 4 insertions, 19 deletions
diff --git a/macosx/tkMacOSXWindowEvent.c b/macosx/tkMacOSXWindowEvent.c
index ad6af30..212381e 100644
--- a/macosx/tkMacOSXWindowEvent.c
+++ b/macosx/tkMacOSXWindowEvent.c
@@ -75,12 +75,10 @@ extern NSString *NSWindowDidOrderOffScreenNotification;
if (winPtr) {
WmInfo *wmPtr = winPtr->wmInfoPtr;
NSRect bounds = [w frame];
- NSRect screenRect = [[w screen] frame];
int x, y, width = -1, height = -1, flags = 0;
- int minY = 1 + [[NSApp mainMenu] menuBarHeight];
x = bounds.origin.x;
- y = screenRect.size.height - (bounds.origin.y + bounds.size.height);
+ y = tkMacOSXZeroScreenHeight - (bounds.origin.y + bounds.size.height);
if (winPtr->changes.x != x || winPtr->changes.y != y) {
flags |= TK_LOCATION_CHANGED;
} else {
@@ -101,20 +99,6 @@ extern NSString *NSWindowDidOrderOffScreenNotification;
flags |= TK_MACOSX_HANDLE_EVENT_IMMEDIATELY;
}
- /*
- * Mac windows cannot go higher than the bottom of the menu bar. The
- * Tk window manager can request that a window be drawn so that it
- * overlaps the menu bar, but it will actually be drawn immediately
- * below the menu bar. In such a case it saves a lot of trouble and
- * causes no harm if we let Tk think that the window is located at the
- * requested point. (Many of the the tests assume that this is the
- * case, especially for windows with upper left corner at (0,0).) So
- * we just tell a harmless white lie here.
- */
-
- if (y == minY && wmPtr->y < minY) {
- y = wmPtr->y;
- }
TkGenWMConfigureEvent((Tk_Window) winPtr, x, y, width, height, flags);
}
@@ -523,7 +507,9 @@ GenerateActivateEvents(
int activeFlag)
{
TkGenerateActivateEvents(winPtr, activeFlag);
- TkMacOSXGenerateFocusEvent(winPtr, activeFlag);
+ if (activeFlag || ![NSApp isActive]) {
+ TkMacOSXGenerateFocusEvent(winPtr, activeFlag);
+ }
return true;
}
@@ -680,7 +666,6 @@ TkGenWMConfigureEvent(
if (flags & TK_LOCATION_CHANGED) {
wmPtr->x = x;
wmPtr->y = y;
- //wmPtr->flags &= ~(WM_NEGATIVE_X | WM_NEGATIVE_Y);
}
if ((flags & TK_SIZE_CHANGED) && !(wmPtr->flags & WM_SYNC_PENDING) &&
((width != Tk_Width(tkwin)) || (height != Tk_Height(tkwin)))) {