| Index: chrome/browser/ui/views/toolbar/browser_actions_container.cc
|
| diff --git a/chrome/browser/ui/views/toolbar/browser_actions_container.cc b/chrome/browser/ui/views/toolbar/browser_actions_container.cc
|
| index df22b9b3287323a545827a4cc5ff7cdd3e768826..faae39a6e02f785a54441e2e9e704e569ff4fdee 100644
|
| --- a/chrome/browser/ui/views/toolbar/browser_actions_container.cc
|
| +++ b/chrome/browser/ui/views/toolbar/browser_actions_container.cc
|
| @@ -265,6 +265,15 @@ bool BrowserActionsContainer::ShownInsideMenu() const {
|
| return in_overflow_mode();
|
| }
|
|
|
| +void BrowserActionsContainer::OnBrowserActionViewDragDone() {
|
| + // We notify here as well as in OnPerformDrop because the dragged view is
|
| + // removed in OnPerformDrop, so it will never get its OnDragDone() call.
|
| + // TODO(devlin): we should see about fixing that.
|
| + FOR_EACH_OBSERVER(BrowserActionsContainerObserver,
|
| + observers_,
|
| + OnBrowserActionDragDone());
|
| +}
|
| +
|
| void BrowserActionsContainer::AddObserver(
|
| BrowserActionsContainerObserver* observer) {
|
| observers_.AddObserver(observer);
|
| @@ -373,18 +382,15 @@ void BrowserActionsContainer::Layout() {
|
| bool BrowserActionsContainer::GetDropFormats(
|
| int* formats,
|
| std::set<OSExchangeData::CustomFormat>* custom_formats) {
|
| - custom_formats->insert(BrowserActionDragData::GetBrowserActionCustomFormat());
|
| -
|
| - return true;
|
| + return BrowserActionDragData::GetDropFormats(custom_formats);
|
| }
|
|
|
| bool BrowserActionsContainer::AreDropTypesRequired() {
|
| - return true;
|
| + return BrowserActionDragData::AreDropTypesRequired();
|
| }
|
|
|
| bool BrowserActionsContainer::CanDrop(const OSExchangeData& data) {
|
| - BrowserActionDragData drop_data;
|
| - return drop_data.Read(data) ? drop_data.IsFromProfile(profile_) : false;
|
| + return BrowserActionDragData::CanDrop(data, profile_);
|
| }
|
|
|
| void BrowserActionsContainer::OnDragEntered(
|
| @@ -499,6 +505,9 @@ int BrowserActionsContainer::OnPerformDrop(
|
| browser_action_views_[data.index()]->button()->extension(), i);
|
|
|
| OnDragExited(); // Perform clean up after dragging.
|
| + FOR_EACH_OBSERVER(BrowserActionsContainerObserver,
|
| + observers_,
|
| + OnBrowserActionDragDone());
|
| return ui::DragDropTypes::DRAG_MOVE;
|
| }
|
|
|
|
|