| OLD | NEW |
| 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_strip.h" | 5 #include "chrome/browser/ui/views/tabs/tab_strip.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <windowsx.h> | 8 #include <windowsx.h> |
| 9 #endif | 9 #endif |
| 10 | 10 |
| (...skipping 1109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1120 // is maximized or fullscreen, we know there are no other tabbed browsers the | 1120 // is maximized or fullscreen, we know there are no other tabbed browsers the |
| 1121 // user can drag to. | 1121 // user can drag to. |
| 1122 const chrome::HostDesktopType host_desktop_type = | 1122 const chrome::HostDesktopType host_desktop_type = |
| 1123 chrome::GetHostDesktopTypeForNativeView(widget->GetNativeView()); | 1123 chrome::GetHostDesktopTypeForNativeView(widget->GetNativeView()); |
| 1124 if (host_desktop_type == chrome::HOST_DESKTOP_TYPE_ASH && | 1124 if (host_desktop_type == chrome::HOST_DESKTOP_TYPE_ASH && |
| 1125 (widget->IsMaximized() || widget->IsFullscreen()) && | 1125 (widget->IsMaximized() || widget->IsFullscreen()) && |
| 1126 static_cast<int>(tabs.size()) == tab_count() && | 1126 static_cast<int>(tabs.size()) == tab_count() && |
| 1127 gfx::Screen::GetScreenFor(widget->GetNativeView())->GetNumDisplays() == 1) | 1127 gfx::Screen::GetScreenFor(widget->GetNativeView())->GetNumDisplays() == 1) |
| 1128 detach_behavior = TabDragController::NOT_DETACHABLE; | 1128 detach_behavior = TabDragController::NOT_DETACHABLE; |
| 1129 | 1129 |
| 1130 #if defined(OS_CHROMEOS) | |
| 1131 // TODO(wittman): This is a temporary workaround to avoid crbug.com/275274 and | |
| 1132 // crbug.com/274856 in M30 and should be reverted after merge, as we have a | |
| 1133 // solution to these bugs in trunk. | |
| 1134 // | |
| 1135 // Don't allow detaching if the tab has a WebContentsModalDialogView opened. | |
| 1136 if (controller()->IsTabShowingWebViewModalDialog(GetModelIndexOfTab(tab))) | |
| 1137 detach_behavior = TabDragController::NOT_DETACHABLE; | |
| 1138 #endif | |
| 1139 | |
| 1140 #if defined(OS_WIN) | 1130 #if defined(OS_WIN) |
| 1141 // It doesn't make sense to drag tabs out on Win8's single window Metro mode. | 1131 // It doesn't make sense to drag tabs out on Win8's single window Metro mode. |
| 1142 if (win8::IsSingleWindowMetroMode()) | 1132 if (win8::IsSingleWindowMetroMode()) |
| 1143 detach_behavior = TabDragController::NOT_DETACHABLE; | 1133 detach_behavior = TabDragController::NOT_DETACHABLE; |
| 1144 #endif | 1134 #endif |
| 1145 // Gestures don't automatically do a capture. We don't allow multiple drags at | 1135 // Gestures don't automatically do a capture. We don't allow multiple drags at |
| 1146 // the same time, so we explicitly capture. | 1136 // the same time, so we explicitly capture. |
| 1147 if (event.type() == ui::ET_GESTURE_BEGIN) | 1137 if (event.type() == ui::ET_GESTURE_BEGIN) |
| 1148 widget->SetCapture(this); | 1138 widget->SetCapture(this); |
| 1149 drag_controller_.reset(new TabDragController); | 1139 drag_controller_.reset(new TabDragController); |
| (...skipping 1572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2722 if (!adjust_layout_) | 2712 if (!adjust_layout_) |
| 2723 return false; | 2713 return false; |
| 2724 | 2714 |
| 2725 #if !defined(OS_CHROMEOS) | 2715 #if !defined(OS_CHROMEOS) |
| 2726 if (ui::GetDisplayLayout() != ui::LAYOUT_TOUCH) | 2716 if (ui::GetDisplayLayout() != ui::LAYOUT_TOUCH) |
| 2727 return false; | 2717 return false; |
| 2728 #endif | 2718 #endif |
| 2729 | 2719 |
| 2730 return true; | 2720 return true; |
| 2731 } | 2721 } |
| OLD | NEW |