OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/views/tabs/dragged_tab_controller.h" | 5 #include "chrome/browser/ui/views/tabs/dragged_tab_controller.h" |
6 | 6 |
7 #include <math.h> | 7 #include <math.h> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
530 window_create_point_.Offset(mouse_offset_.x(), mouse_offset_.y()); | 530 window_create_point_.Offset(mouse_offset_.x(), mouse_offset_.y()); |
531 } | 531 } |
532 | 532 |
533 gfx::Point DraggedTabController::GetWindowCreatePoint() const { | 533 gfx::Point DraggedTabController::GetWindowCreatePoint() const { |
534 gfx::Point cursor_point = GetCursorScreenPoint(); | 534 gfx::Point cursor_point = GetCursorScreenPoint(); |
535 if (dock_info_.type() != DockInfo::NONE) { | 535 if (dock_info_.type() != DockInfo::NONE) { |
536 // If we're going to dock, we need to return the exact coordinate, | 536 // If we're going to dock, we need to return the exact coordinate, |
537 // otherwise we may attempt to maximize on the wrong monitor. | 537 // otherwise we may attempt to maximize on the wrong monitor. |
538 return cursor_point; | 538 return cursor_point; |
539 } | 539 } |
540 // If the cursor is outside the monitor area, move it inside. For example, | |
541 // dropping a tab onto the task bar on Windows produces this situation. | |
542 DockInfo dock_info_for_cursor = DockInfo::GetDockInfoAtPoint(cursor_point, | |
543 std::set<gfx::NativeView>()); | |
sky
2011/01/21 18:55:19
this should be indented by 4.
Using DockInfo to g
| |
544 if (cursor_point.x() < dock_info_for_cursor.monitor_bounds().x()) | |
545 cursor_point.set_x(dock_info_for_cursor.monitor_bounds().x()); | |
546 else if (cursor_point.x() > dock_info_for_cursor.monitor_bounds().right()) | |
547 cursor_point.set_x(dock_info_for_cursor.monitor_bounds().right()); | |
548 if (cursor_point.y() < dock_info_for_cursor.monitor_bounds().y()) | |
549 cursor_point.set_y(dock_info_for_cursor.monitor_bounds().y()); | |
550 else if (cursor_point.y() > dock_info_for_cursor.monitor_bounds().bottom()) | |
551 cursor_point.set_y(dock_info_for_cursor.monitor_bounds().bottom()); | |
540 return gfx::Point(cursor_point.x() - window_create_point_.x(), | 552 return gfx::Point(cursor_point.x() - window_create_point_.x(), |
541 cursor_point.y() - window_create_point_.y()); | 553 cursor_point.y() - window_create_point_.y()); |
542 } | 554 } |
543 | 555 |
544 void DraggedTabController::UpdateDockInfo(const gfx::Point& screen_point) { | 556 void DraggedTabController::UpdateDockInfo(const gfx::Point& screen_point) { |
545 // Update the DockInfo for the current mouse coordinates. | 557 // Update the DockInfo for the current mouse coordinates. |
546 DockInfo dock_info = GetDockInfoAtPoint(screen_point); | 558 DockInfo dock_info = GetDockInfoAtPoint(screen_point); |
547 if (source_tabstrip_->type() == BaseTabStrip::VERTICAL_TAB_STRIP && | 559 if (source_tabstrip_->type() == BaseTabStrip::VERTICAL_TAB_STRIP && |
548 ((dock_info.type() == DockInfo::LEFT_OF_WINDOW && | 560 ((dock_info.type() == DockInfo::LEFT_OF_WINDOW && |
549 !base::i18n::IsRTL()) || | 561 !base::i18n::IsRTL()) || |
(...skipping 786 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1336 #else | 1348 #else |
1337 NOTIMPLEMENTED(); | 1349 NOTIMPLEMENTED(); |
1338 #endif | 1350 #endif |
1339 } | 1351 } |
1340 } | 1352 } |
1341 | 1353 |
1342 TabStripModel* DraggedTabController::GetModel(BaseTabStrip* tabstrip) const { | 1354 TabStripModel* DraggedTabController::GetModel(BaseTabStrip* tabstrip) const { |
1343 return static_cast<BrowserTabStripController*>(tabstrip->controller())-> | 1355 return static_cast<BrowserTabStripController*>(tabstrip->controller())-> |
1344 model(); | 1356 model(); |
1345 } | 1357 } |
OLD | NEW |