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

Side by Side Diff: chrome/browser/ui/views/tabs/tab_drag_controller.cc

Issue 1608733002: Remove ui/gfx/screen_type_delegate.h (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@metro-mode-4
Patch Set: and another rebase Created 4 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/tab_drag_controller.h" 5 #include "chrome/browser/ui/views/tabs/tab_drag_controller.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 #include <set> 8 #include <set>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 // static 191 // static
192 const int TabDragController::kTouchVerticalDetachMagnetism = 50; 192 const int TabDragController::kTouchVerticalDetachMagnetism = 50;
193 193
194 // static 194 // static
195 const int TabDragController::kVerticalDetachMagnetism = 15; 195 const int TabDragController::kVerticalDetachMagnetism = 15;
196 196
197 TabDragController::TabDragController() 197 TabDragController::TabDragController()
198 : event_source_(EVENT_SOURCE_MOUSE), 198 : event_source_(EVENT_SOURCE_MOUSE),
199 source_tabstrip_(NULL), 199 source_tabstrip_(NULL),
200 attached_tabstrip_(NULL), 200 attached_tabstrip_(NULL),
201 screen_(NULL),
202 host_desktop_type_(chrome::HOST_DESKTOP_TYPE_NATIVE), 201 host_desktop_type_(chrome::HOST_DESKTOP_TYPE_NATIVE),
203 can_release_capture_(true), 202 can_release_capture_(true),
204 offset_to_width_ratio_(0), 203 offset_to_width_ratio_(0),
205 old_focused_view_id_( 204 old_focused_view_id_(
206 views::ViewStorage::GetInstance()->CreateStorageID()), 205 views::ViewStorage::GetInstance()->CreateStorageID()),
207 last_move_screen_loc_(0), 206 last_move_screen_loc_(0),
208 started_drag_(false), 207 started_drag_(false),
209 active_(true), 208 active_(true),
210 source_tab_index_(std::numeric_limits<size_t>::max()), 209 source_tab_index_(std::numeric_limits<size_t>::max()),
211 initial_move_(true), 210 initial_move_(true),
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 const gfx::Point& mouse_offset, 255 const gfx::Point& mouse_offset,
257 int source_tab_offset, 256 int source_tab_offset,
258 const ui::ListSelectionModel& initial_selection_model, 257 const ui::ListSelectionModel& initial_selection_model,
259 MoveBehavior move_behavior, 258 MoveBehavior move_behavior,
260 EventSource event_source) { 259 EventSource event_source) {
261 DCHECK(!tabs.empty()); 260 DCHECK(!tabs.empty());
262 DCHECK(std::find(tabs.begin(), tabs.end(), source_tab) != tabs.end()); 261 DCHECK(std::find(tabs.begin(), tabs.end(), source_tab) != tabs.end());
263 source_tabstrip_ = source_tabstrip; 262 source_tabstrip_ = source_tabstrip;
264 was_source_maximized_ = source_tabstrip->GetWidget()->IsMaximized(); 263 was_source_maximized_ = source_tabstrip->GetWidget()->IsMaximized();
265 was_source_fullscreen_ = source_tabstrip->GetWidget()->IsFullscreen(); 264 was_source_fullscreen_ = source_tabstrip->GetWidget()->IsFullscreen();
266 screen_ = gfx::Screen::GetScreenFor(
267 source_tabstrip->GetWidget()->GetNativeView());
268 host_desktop_type_ = chrome::GetHostDesktopTypeForNativeView( 265 host_desktop_type_ = chrome::GetHostDesktopTypeForNativeView(
269 source_tabstrip->GetWidget()->GetNativeView()); 266 source_tabstrip->GetWidget()->GetNativeView());
270 // Do not release capture when transferring capture between widgets on: 267 // Do not release capture when transferring capture between widgets on:
271 // - Desktop Linux 268 // - Desktop Linux
272 // Mouse capture is not synchronous on desktop Linux. Chrome makes 269 // Mouse capture is not synchronous on desktop Linux. Chrome makes
273 // transferring capture between widgets without releasing capture appear 270 // transferring capture between widgets without releasing capture appear
274 // synchronous on desktop Linux, so use that. 271 // synchronous on desktop Linux, so use that.
275 // - Ash 272 // - Ash
276 // Releasing capture on Ash cancels gestures so avoid it. 273 // Releasing capture on Ash cancels gestures so avoid it.
277 #if defined(OS_LINUX) 274 #if defined(OS_LINUX)
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 views::View* first_tab = source_tabstrip_->tab_at(0); 472 views::View* first_tab = source_tabstrip_->tab_at(0);
476 views::View::ConvertPointToWidget(first_tab, &first_source_tab_point_); 473 views::View::ConvertPointToWidget(first_tab, &first_source_tab_point_);
477 window_create_point_ = first_source_tab_point_; 474 window_create_point_ = first_source_tab_point_;
478 window_create_point_.Offset(mouse_offset_.x(), mouse_offset_.y()); 475 window_create_point_.Offset(mouse_offset_.x(), mouse_offset_.y());
479 } 476 }
480 477
481 gfx::Point TabDragController::GetWindowCreatePoint( 478 gfx::Point TabDragController::GetWindowCreatePoint(
482 const gfx::Point& origin) const { 479 const gfx::Point& origin) const {
483 // If the cursor is outside the monitor area, move it inside. For example, 480 // If the cursor is outside the monitor area, move it inside. For example,
484 // dropping a tab onto the task bar on Windows produces this situation. 481 // dropping a tab onto the task bar on Windows produces this situation.
485 gfx::Rect work_area = screen_->GetDisplayNearestPoint(origin).work_area(); 482 gfx::Rect work_area =
483 gfx::Screen::GetScreen()->GetDisplayNearestPoint(origin).work_area();
486 gfx::Point create_point(origin); 484 gfx::Point create_point(origin);
487 if (!work_area.IsEmpty()) { 485 if (!work_area.IsEmpty()) {
488 if (create_point.x() < work_area.x()) 486 if (create_point.x() < work_area.x())
489 create_point.set_x(work_area.x()); 487 create_point.set_x(work_area.x());
490 else if (create_point.x() > work_area.right()) 488 else if (create_point.x() > work_area.right())
491 create_point.set_x(work_area.right()); 489 create_point.set_x(work_area.right());
492 if (create_point.y() < work_area.y()) 490 if (create_point.y() < work_area.y())
493 create_point.set_y(work_area.y()); 491 create_point.set_y(work_area.y());
494 else if (create_point.y() > work_area.bottom()) 492 else if (create_point.y() > work_area.bottom())
495 create_point.set_y(work_area.bottom()); 493 create_point.set_y(work_area.bottom());
(...skipping 1144 matching lines...) Expand 10 before | Expand all | Expand 10 after
1640 } 1638 }
1641 1639
1642 gfx::Rect TabDragController::CalculateDraggedBrowserBounds( 1640 gfx::Rect TabDragController::CalculateDraggedBrowserBounds(
1643 TabStrip* source, 1641 TabStrip* source,
1644 const gfx::Point& point_in_screen, 1642 const gfx::Point& point_in_screen,
1645 std::vector<gfx::Rect>* drag_bounds) { 1643 std::vector<gfx::Rect>* drag_bounds) {
1646 gfx::Point center(0, source->height() / 2); 1644 gfx::Point center(0, source->height() / 2);
1647 views::View::ConvertPointToWidget(source, &center); 1645 views::View::ConvertPointToWidget(source, &center);
1648 gfx::Rect new_bounds(source->GetWidget()->GetRestoredBounds()); 1646 gfx::Rect new_bounds(source->GetWidget()->GetRestoredBounds());
1649 1647
1650 gfx::Rect work_area = 1648 gfx::Rect work_area = gfx::Screen::GetScreen()
1651 screen_->GetDisplayNearestPoint(last_point_in_screen_).work_area(); 1649 ->GetDisplayNearestPoint(last_point_in_screen_)
1650 .work_area();
1652 if (new_bounds.size().width() >= work_area.size().width() && 1651 if (new_bounds.size().width() >= work_area.size().width() &&
1653 new_bounds.size().height() >= work_area.size().height()) { 1652 new_bounds.size().height() >= work_area.size().height()) {
1654 new_bounds = work_area; 1653 new_bounds = work_area;
1655 new_bounds.Inset(kMaximizedWindowInset, kMaximizedWindowInset, 1654 new_bounds.Inset(kMaximizedWindowInset, kMaximizedWindowInset,
1656 kMaximizedWindowInset, kMaximizedWindowInset); 1655 kMaximizedWindowInset, kMaximizedWindowInset);
1657 // Behave as if the |source| was maximized at the start of a drag since this 1656 // Behave as if the |source| was maximized at the start of a drag since this
1658 // is consistent with a browser window creation logic in case of windows 1657 // is consistent with a browser window creation logic in case of windows
1659 // that are as large as the |work_area|. 1658 // that are as large as the |work_area|.
1660 was_source_maximized_ = true; 1659 was_source_maximized_ = true;
1661 } 1660 }
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
1775 gfx::PointF touch_point_f; 1774 gfx::PointF touch_point_f;
1776 bool got_touch_point = ui::GestureRecognizer::Get()-> 1775 bool got_touch_point = ui::GestureRecognizer::Get()->
1777 GetLastTouchPointForTarget(widget_window, &touch_point_f); 1776 GetLastTouchPointForTarget(widget_window, &touch_point_f);
1778 CHECK(got_touch_point); 1777 CHECK(got_touch_point);
1779 gfx::Point touch_point = gfx::ToFlooredPoint(touch_point_f); 1778 gfx::Point touch_point = gfx::ToFlooredPoint(touch_point_f);
1780 wm::ConvertPointToScreen(widget_window->GetRootWindow(), &touch_point); 1779 wm::ConvertPointToScreen(widget_window->GetRootWindow(), &touch_point);
1781 return touch_point; 1780 return touch_point;
1782 } 1781 }
1783 #endif 1782 #endif
1784 1783
1785 return screen_->GetCursorScreenPoint(); 1784 return gfx::Screen::GetScreen()->GetCursorScreenPoint();
1786 } 1785 }
1787 1786
1788 gfx::Vector2d TabDragController::GetWindowOffset( 1787 gfx::Vector2d TabDragController::GetWindowOffset(
1789 const gfx::Point& point_in_screen) { 1788 const gfx::Point& point_in_screen) {
1790 TabStrip* owning_tabstrip = attached_tabstrip_ ? 1789 TabStrip* owning_tabstrip = attached_tabstrip_ ?
1791 attached_tabstrip_ : source_tabstrip_; 1790 attached_tabstrip_ : source_tabstrip_;
1792 views::View* toplevel_view = owning_tabstrip->GetWidget()->GetContentsView(); 1791 views::View* toplevel_view = owning_tabstrip->GetWidget()->GetContentsView();
1793 1792
1794 gfx::Point point = point_in_screen; 1793 gfx::Point point = point_in_screen;
1795 views::View::ConvertPointFromScreen(toplevel_view, &point); 1794 views::View::ConvertPointFromScreen(toplevel_view, &point);
(...skipping 22 matching lines...) Expand all
1818 it != browser_list->end(); ++it) { 1817 it != browser_list->end(); ++it) {
1819 if ((*it)->tab_strip_model()->empty()) 1818 if ((*it)->tab_strip_model()->empty())
1820 exclude.insert((*it)->window()->GetNativeWindow()); 1819 exclude.insert((*it)->window()->GetNativeWindow());
1821 } 1820 }
1822 #endif 1821 #endif
1823 return GetLocalProcessWindowAtPoint(host_desktop_type_, 1822 return GetLocalProcessWindowAtPoint(host_desktop_type_,
1824 screen_point, 1823 screen_point,
1825 exclude); 1824 exclude);
1826 1825
1827 } 1826 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698