aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cocoa/PlatCocoa.mm16
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();