Bug 1152585 - Implement GetClientOffset in nsChildView to fix child offset calculation when drawInTitlebar=false r=mstange

This commit is contained in:
David Parks 2015-04-29 08:41:19 -07:00
Родитель 67e80ebb07
Коммит f8adab0ca9
2 изменённых файлов: 13 добавлений и 0 удалений

Просмотреть файл

@ -543,6 +543,8 @@ public:
bool IsPluginFocused() { return mPluginFocused; }
virtual nsIntPoint GetClientOffset() override;
protected:
virtual ~nsChildView();

Просмотреть файл

@ -1485,6 +1485,17 @@ void nsChildView::ReportSizeEvent()
#pragma mark -
nsIntPoint nsChildView::GetClientOffset()
{
NS_OBJC_BEGIN_TRY_ABORT_BLOCK_RETURN;
NSPoint origin = [mView convertPoint:NSMakePoint(0, 0) toView:nil];
origin.y = [[mView window] frame].size.height - origin.y;
return CocoaPointsToDevPixels(origin);
NS_OBJC_END_TRY_ABORT_BLOCK_RETURN(nsIntPoint(0, 0));
}
// Return the offset between this child view and the screen.
// @return -- widget origin in device-pixel coords
LayoutDeviceIntPoint nsChildView::WidgetToScreenOffset()