Index: chrome/browser/ui/panels/panel_browser_window_cocoa.mm |
diff --git a/chrome/browser/ui/panels/panel_browser_window_cocoa.mm b/chrome/browser/ui/panels/panel_browser_window_cocoa.mm |
index bfb64c41c99ab43b564bf5750e7129d2bb1ef094..958fcd6d86de24be59e0c174e9f28e5160909181 100644 |
--- a/chrome/browser/ui/panels/panel_browser_window_cocoa.mm |
+++ b/chrome/browser/ui/panels/panel_browser_window_cocoa.mm |
@@ -39,6 +39,16 @@ NSRect ConvertCoordinatesToCocoa(const gfx::Rect& bounds) { |
bounds.width(), bounds.height()); |
} |
+// Converts a point from the platfrom-independent screen coordinates (with the |
+// (0,0) in the top-left corner of the primary screen) to the Cocoa screen |
+// coordinates (with (0,0) in the low-left corner). |
+NSPoint ConvertPointToCocoaCoordinates(const gfx::Point& point) { |
+ // Flip coordinates based on the primary screen. |
+ NSScreen* screen = [[NSScreen screens] objectAtIndex:0]; |
+ |
+ return NSMakePoint(point.x(), NSHeight([screen frame]) - point.y()); |
+} |
+ |
} // namespace |
// This creates a shim window class, which in turn creates a Cocoa window |
@@ -266,6 +276,10 @@ void PanelBrowserWindowCocoa::SetPanelAppIconVisibility(bool visible) { |
// TODO(dimich): to be implemented. |
} |
+void PanelBrowserWindowCocoa::SetPanelAlwaysOnTop(bool on_top) { |
+ [controller_ setAlwaysOnTop:on_top]; |
+} |
+ |
void PanelBrowserWindowCocoa::DidCloseNativeWindow() { |
DCHECK(!isClosed()); |
panel_->OnNativePanelClosed(); |
@@ -310,9 +324,10 @@ class NativePanelTestingCocoa : public NativePanelTesting { |
NativePanelTestingCocoa(NativePanel* native_panel); |
virtual ~NativePanelTestingCocoa() { } |
// Overridden from NativePanelTesting |
- virtual void PressLeftMouseButtonTitlebar(const gfx::Point& point) OVERRIDE; |
+ virtual void PressLeftMouseButtonTitlebar( |
+ const gfx::Point& mouse_location) OVERRIDE; |
virtual void ReleaseMouseButtonTitlebar() OVERRIDE; |
- virtual void DragTitlebar(int delta_x, int delta_y) OVERRIDE; |
+ virtual void DragTitlebar(const gfx::Point& mouse_location) OVERRIDE; |
virtual void CancelDragTitlebar() OVERRIDE; |
virtual void FinishDragTitlebar() OVERRIDE; |
virtual bool VerifyDrawingAttention() const OVERRIDE; |
@@ -340,16 +355,17 @@ PanelTitlebarViewCocoa* NativePanelTestingCocoa::titlebar() const { |
} |
void NativePanelTestingCocoa::PressLeftMouseButtonTitlebar( |
- const gfx::Point& point) { |
- [titlebar() pressLeftMouseButtonTitlebar]; |
+ const gfx::Point& mouse_location) { |
+ [titlebar() pressLeftMouseButtonTitlebar:ConvertPointToCocoaCoordinates( |
+ mouse_location)]; |
} |
void NativePanelTestingCocoa::ReleaseMouseButtonTitlebar() { |
[titlebar() releaseLeftMouseButtonTitlebar]; |
} |
-void NativePanelTestingCocoa::DragTitlebar(int delta_x, int delta_y) { |
- [titlebar() dragTitlebarDeltaX:delta_x deltaY:delta_y]; |
+void NativePanelTestingCocoa::DragTitlebar(const gfx::Point& mouse_location) { |
+ [titlebar() dragTitlebar:ConvertPointToCocoaCoordinates(mouse_location)]; |
} |
void NativePanelTestingCocoa::CancelDragTitlebar() { |