Index: views/view.cc |
=================================================================== |
--- views/view.cc (revision 75182) |
+++ views/view.cc (working copy) |
@@ -536,7 +536,7 @@ |
View* View::GetSelectedViewForGroup(int group_id) { |
std::vector<View*> views; |
- GetRootView()->GetViewsWithGroup(group_id, &views); |
+ GetWidget()->GetRootView()->GetViewsWithGroup(group_id, &views); |
if (views.size() > 0) |
return views[0]; |
else |
@@ -796,19 +796,10 @@ |
} |
--registered_accelerator_count_; |
- RootView* root_view = GetRootView(); |
- if (!root_view) { |
- // We are not part of a view hierarchy, so there is nothing to do as we |
- // removed ourselves from accelerators_, we won't be registered when added |
- // to one. |
- return; |
- } |
- |
- // If accelerator_focus_manager_ is NULL then we did not registered |
- // accelerators so there is nothing to unregister. |
- if (accelerator_focus_manager_) { |
+ // Providing we are attached to a Widget and registered with a focus manager, |
+ // we should de-register from that focus manager now. |
+ if (GetWidget() && accelerator_focus_manager_) |
accelerator_focus_manager_->UnregisterAccelerator(accelerator, this); |
- } |
} |
void View::ResetAccelerators() { |
@@ -861,9 +852,9 @@ |
} |
void View::RequestFocus() { |
- RootView* rv = GetRootView(); |
- if (rv && IsFocusableInRootView()) |
- rv->FocusView(this); |
+ FocusManager* focus_manager = GetFocusManager(); |
+ if (focus_manager && IsFocusableInRootView()) |
+ focus_manager->SetFocusedView(this); |
} |
void View::WillGainFocus() { |
@@ -937,6 +928,9 @@ |
return ui::DragDropTypes::DRAG_NONE; |
} |
+void View::OnDragDone() { |
+} |
+ |
// static |
bool View::ExceededDragThreshold(int delta_x, int delta_y) { |
return (abs(delta_x) > GetHorizontalDragThreshold() || |
@@ -1130,12 +1124,9 @@ |
drag_controller_->WriteDragData(this, press_pt, data); |
} |
-void View::OnDragDone() { |
-} |
- |
bool View::InDrag() { |
- RootView* root_view = GetRootView(); |
- return root_view ? (root_view->GetDragView() == this) : false; |
+ Widget* widget = GetWidget(); |
+ return widget ? widget->GetDraggedView() == this : false; |
} |
//////////////////////////////////////////////////////////////////////////////// |
@@ -1461,10 +1452,8 @@ |
return; |
} |
- RootView* root_view = GetRootView(); |
- if (!root_view) { |
- // We are not yet part of a view hierarchy, we'll register ourselves once |
- // added to one. |
+ if (!GetWidget()) { |
+ // The view is not yet attached to a widget, defer registration until then. |
return; |
} |
@@ -1497,8 +1486,7 @@ |
if (!accelerators_.get()) |
return; |
- RootView* root_view = GetRootView(); |
- if (root_view) { |
+ if (GetWidget()) { |
if (accelerator_focus_manager_) { |
// We may not have a FocusManager if the window containing us is being |
// closed, in which case the FocusManager is being deleted so there is |
@@ -1593,8 +1581,7 @@ |
// Message the RootView to do the drag and drop. That way if we're removed |
// the RootView can detect it and avoid calling us back. |
- RootView* root_view = GetRootView(); |
- root_view->StartDragForViewFromMouseEvent(this, data, drag_operations); |
+ GetWidget()->StartDragForViewFromMouseEvent(this, data, drag_operations); |
} |
} // namespace views |