Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(575)

Unified Diff: chrome/browser/ui/panels/panel_window_controller_cocoa.mm

Issue 9546001: Support detaching/attaching panels via inter-strip drags. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix per feedback Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/panels/panel_window_controller_cocoa.mm
diff --git a/chrome/browser/ui/panels/panel_window_controller_cocoa.mm b/chrome/browser/ui/panels/panel_window_controller_cocoa.mm
index 5ce263b6cdcc58c6439651ae6f79399caba4bc23..2d883bc3b97e68610c06647eee17093d634aef8e 100644
--- a/chrome/browser/ui/panels/panel_window_controller_cocoa.mm
+++ b/chrome/browser/ui/panels/panel_window_controller_cocoa.mm
@@ -58,6 +58,20 @@ enum {
#endif // MAC_OS_X_VERSION_10_6
+namespace {
+
+// Converts a point from the Cocoa screen coordinates (with (0,0) in the
+// low-left corner of the primary screen) to the platfrom-independent screen
+// coordinates (with the (0,0) in the top-left corner).
+gfx::Point ConvertPointFromCocoaCoordinates(NSPoint point) {
jennb 2012/03/03 02:19:33 ConvertCoordinatesFromCocoa ? matches better with
jianli 2012/03/07 19:14:31 Renamed the other one to ConvertRectToCocoaCoordin
+ // Flip coordinates based on the primary screen.
+ NSScreen* screen = [[NSScreen screens] objectAtIndex:0];
+
+ return gfx::Point(point.x, NSHeight([screen frame]) - point.y);
+}
+
+} // namespace
+
@implementation PanelWindowCocoaImpl
- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen {
return frameRect;
@@ -402,9 +416,10 @@ enum {
return windowShim_->panel()->draggable();
}
-- (void)startDrag {
+- (void)startDrag:(NSPoint)mouseLocation {
animateOnBoundsChange_ = NO;
- windowShim_->panel()->manager()->StartDragging(windowShim_->panel());
+ windowShim_->panel()->manager()->StartDragging(
+ windowShim_->panel(), ConvertPointFromCocoaCoordinates(mouseLocation));
}
- (void)endDrag:(BOOL)cancelled {
@@ -412,9 +427,9 @@ enum {
windowShim_->panel()->manager()->EndDragging(cancelled);
}
-- (void)dragWithDeltaX:(int)deltaX
- deltaY:(int)deltaY {
- windowShim_->panel()->manager()->Drag(deltaX, deltaY);
+- (void)drag:(NSPoint)mouseLocation {
+ windowShim_->panel()->manager()->Drag(
+ ConvertPointFromCocoaCoordinates(mouseLocation));
}
- (void)setPanelFrame:(NSRect)frame
@@ -624,4 +639,9 @@ enum {
// cases when minimized Panel is getting keyboard input, invisibly.
return windowShim_->panel()->expansion_state() == Panel::EXPANDED;
}
+
+- (void)setAlwaysOnTop:(bool)onTop {
+ NSWindow* window = [self window];
+ [window setLevel:(onTop ? NSStatusWindowLevel : NSNormalWindowLevel)];
+}
@end

Powered by Google App Engine
This is Rietveld 408576698