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

Unified Diff: chrome/browser/ui/views/tabs/tab_drag_controller.cc

Issue 669243002: MacViews: Get c/b/ui/views/tabs to build on Mac (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 2 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
« no previous file with comments | « no previous file | chrome/browser/ui/views/tabs/window_finder.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/tabs/tab_drag_controller.cc
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.cc b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
index 2d2b5506a210d74b40e95851e6779f9b8f7c1308..7c737fd3426c3c3d424b5b89a570ab90cc80fd34 100644
--- a/chrome/browser/ui/views/tabs/tab_drag_controller.cc
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
@@ -38,14 +38,17 @@
#include "ui/views/focus/view_storage.h"
#include "ui/views/widget/root_view.h"
#include "ui/views/widget/widget.h"
-#include "ui/wm/core/coordinate_conversion.h"
-#include "ui/wm/core/window_modality_controller.h"
#if defined(USE_ASH)
#include "ash/accelerators/accelerator_commands.h"
#include "ash/shell.h"
#include "ash/wm/maximize_mode/maximize_mode_controller.h"
#include "ash/wm/window_state.h"
+#include "ui/wm/core/coordinate_conversion.h"
+#endif
+
+#if defined(USE_AURA)
+#include "ui/wm/core/window_modality_controller.h"
#endif
using base::UserMetricsAction;
@@ -94,6 +97,17 @@ bool IsDockedOrSnapped(const TabStrip* tab_strip) {
}
#endif
+#if defined(USE_AURA)
+gfx::NativeWindow GetModalTransient(gfx::NativeWindow window) {
+ return wm::GetModalTransient(window);
+}
+#else
+gfx::NativeWindow GetModalTransient(gfx::NativeWindow window) {
+ NOTIMPLEMENTED();
+ return NULL;
+}
+#endif
+
// Returns true if |bounds| contains the y-coordinate |y|. The y-coordinate
// of |bounds| is adjusted by |vertical_adjustment|.
bool DoesRectContainVerticalPointExpanded(
@@ -123,7 +137,7 @@ class WindowPositionManagedUpdater : public views::WidgetObserver {
public:
virtual void OnWidgetVisibilityChanged(views::Widget* widget,
bool visible) override {
- SetWindowPositionManaged(widget->GetNativeView(), false);
+ SetWindowPositionManaged(widget->GetNativeWindow(), false);
}
};
@@ -217,7 +231,7 @@ TabDragController::~TabDragController() {
if (move_loop_widget_) {
move_loop_widget_->RemoveObserver(this);
- SetWindowPositionManaged(move_loop_widget_->GetNativeView(), true);
+ SetWindowPositionManaged(move_loop_widget_->GetNativeWindow(), true);
}
if (source_tabstrip_)
@@ -608,7 +622,7 @@ TabDragController::DragBrowserToNewTabStrip(
// The window is going away. Since the drag is still on going we don't want
// that to effect the position of any windows.
- SetWindowPositionManaged(browser_widget->GetNativeView(), false);
+ SetWindowPositionManaged(browser_widget->GetNativeWindow(), false);
#if !defined(OS_LINUX) || defined(OS_CHROMEOS)
// EndMoveLoop is going to snap the window back to its original location.
@@ -826,7 +840,7 @@ TabStrip* TabDragController::GetTargetTabStripForPoint(
GetLocalProcessWindow(point_in_screen, is_dragging_window_);
// Do not allow dragging into a window with a modal dialog, it causes a weird
// behavior. See crbug.com/336691
- if (!wm::GetModalTransient(local_window)) {
+ if (!GetModalTransient(local_window)) {
TabStrip* tab_strip = GetTabStripForWindow(local_window);
if (tab_strip && DoesTabStripContain(tab_strip, point_in_screen))
return tab_strip;
@@ -1337,7 +1351,7 @@ void TabDragController::EndDragImpl(EndDragType type) {
waiting_for_run_loop_to_exit_ = true;
if (type == NORMAL || (type == TAB_DESTROYED && drag_data_.size() > 1)) {
- SetWindowPositionManaged(GetAttachedBrowserWidget()->GetNativeView(),
+ SetWindowPositionManaged(GetAttachedBrowserWidget()->GetNativeWindow(),
true);
}
@@ -1553,7 +1567,7 @@ gfx::Rect TabDragController::GetViewScreenBounds(
void TabDragController::BringWindowUnderPointToFront(
const gfx::Point& point_in_screen) {
- aura::Window* window = GetLocalProcessWindow(point_in_screen, true);
+ gfx::NativeWindow window = GetLocalProcessWindow(point_in_screen, true);
// Only bring browser windows to front - only windows with a TabStrip can
// be tab drag targets.
@@ -1561,11 +1575,12 @@ void TabDragController::BringWindowUnderPointToFront(
return;
if (window) {
- views::Widget* widget_window = views::Widget::GetWidgetForNativeView(
+ views::Widget* widget_window = views::Widget::GetWidgetForNativeWindow(
window);
if (!widget_window)
return;
+#if defined(USE_ASH)
if (host_desktop_type_ == chrome::HOST_DESKTOP_TYPE_ASH) {
// TODO(varkha): The code below ensures that the phantom drag widget
// is shown on top of browser windows. The code should be moved to ash/
@@ -1597,6 +1612,9 @@ void TabDragController::BringWindowUnderPointToFront(
} else {
widget_window->StackAtTop();
}
+#else
+ widget_window->StackAtTop();
+#endif
// The previous call made the window appear on top of the dragged window,
// move the dragged window to the front.
@@ -1733,6 +1751,7 @@ Browser* TabDragController::CreateBrowserForDrag(
}
gfx::Point TabDragController::GetCursorScreenPoint() {
+#if defined(USE_ASH)
if (host_desktop_type_ == chrome::HOST_DESKTOP_TYPE_ASH &&
event_source_ == EVENT_SOURCE_TOUCH &&
aura::Env::GetInstance()->is_touch_down()) {
@@ -1749,6 +1768,7 @@ gfx::Point TabDragController::GetCursorScreenPoint() {
wm::ConvertPointToScreen(widget_window->GetRootWindow(), &touch_point);
return touch_point;
}
+#endif
return screen_->GetCursorScreenPoint();
}
@@ -1767,10 +1787,10 @@ gfx::Vector2d TabDragController::GetWindowOffset(
gfx::NativeWindow TabDragController::GetLocalProcessWindow(
const gfx::Point& screen_point,
bool exclude_dragged_view) {
- std::set<aura::Window*> exclude;
+ std::set<gfx::NativeWindow> exclude;
if (exclude_dragged_view) {
- aura::Window* dragged_window =
- attached_tabstrip_->GetWidget()->GetNativeView();
+ gfx::NativeWindow dragged_window =
+ attached_tabstrip_->GetWidget()->GetNativeWindow();
if (dragged_window)
exclude.insert(dragged_window);
}
« no previous file with comments | « no previous file | chrome/browser/ui/views/tabs/window_finder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698