diff options
Diffstat (limited to 'cocoa/PlatCocoa.mm')
| -rw-r--r-- | cocoa/PlatCocoa.mm | 16 | 
1 files changed, 14 insertions, 2 deletions
| diff --git a/cocoa/PlatCocoa.mm b/cocoa/PlatCocoa.mm index 8a0f942f4..1d62385cc 100644 --- a/cocoa/PlatCocoa.mm +++ b/cocoa/PlatCocoa.mm @@ -1329,16 +1329,28 @@ PRectangle Window::GetMonitorRect(Point)    if (wid)    {      id idWin = reinterpret_cast<id>(wid); +    if ([idWin isKindOfClass: [NSView class]]) +    { +      NSView* view = reinterpret_cast<NSView*>(idWin); +      idWin = [view window]; +    }      if ([idWin isKindOfClass: [NSWindow class]])      { +      PRectangle rcPosition = GetPosition(); +        NSWindow* win = reinterpret_cast<NSWindow*>(idWin);        NSScreen* screen = [win screen]; -      NSRect rect = [screen frame]; +      NSRect rect = [screen visibleFrame];        CGFloat screenHeight = rect.origin.y + rect.size.height;        // Invert screen positions to match Scintilla -      return PRectangle( +      PRectangle rcWork(            static_cast<XYPOSITION>(NSMinX(rect)), static_cast<XYPOSITION>(screenHeight - NSMaxY(rect)),            static_cast<XYPOSITION>(NSMaxX(rect)), static_cast<XYPOSITION>(screenHeight - NSMinY(rect))); +      PRectangle rcMonitor(rcWork.left - rcPosition.left, +                           rcWork.top - rcPosition.top, +                           rcWork.right - rcPosition.left, +                           rcWork.bottom - rcPosition.top); +      return rcMonitor;      }    }    return PRectangle(); | 
