diff options
author | dbeam@chromium.org <dbeam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-20 02:46:37 +0000 |
---|---|---|
committer | dbeam@chromium.org <dbeam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-20 02:46:37 +0000 |
commit | 415fe1d7c0dc7c06aaae7840c4d42d8120420fcf (patch) | |
tree | 0dfb1c998c8dae6fe5ecd5d458fefba56b5b2770 /ui/views/bubble | |
parent | b963516676ef524cfa75da691a05b6aff1a3d175 (diff) | |
download | chromium_src-415fe1d7c0dc7c06aaae7840c4d42d8120420fcf.zip chromium_src-415fe1d7c0dc7c06aaae7840c4d42d8120420fcf.tar.gz chromium_src-415fe1d7c0dc7c06aaae7840c4d42d8120420fcf.tar.bz2 |
Breaking KioskModeTest.EnableKioskModeTest on Linux ChromiumOS Tests (dbg)(3)
reliably and reverting locally fixed.
Revert 133057 - Reland Propagate OnNativeWidgetMove to delegate/observers, etc.
Continuation of reverted CL http://codereview.chromium.org/10021029
The original CL was reverted due to a naming conflict between:
WidgetDelegate::OnWidgetMove and Widget::Observer::OnWidgetMove.
I renamed the new Observer method to OnWidgetMoved.
Original description:
Propagate OnNativeWidgetMove to delegate/observers, etc.
NativeWidget[Aura|Win] calls new Widget::OnNativeWidgetMove.
Widgets alert delegates and new Widget::Observer::OnWidgetMove.
TabDragController2: consume new observer method, simplify.
Nix BrowserWindowMoveObserver; use Widget::Observer instead.
Replace move_loop_browser_view_ with move_loop_widget.
Replace GetAttachedBrowserView with GetAttachedBrowserWidget.
BubbleDelegateView: consume new observer method.
Make bubbles move with their anchor_view's Widgets.
SchedulePaint on BubbleFrameView when mirroring its arrow.
BUG=105151, 116336
TEST=Bubbles can move with the browser window (inspecting extension popups, etc.); no Ash / --enable-tab-browser-dragging regressions.
Review URL: http://codereview.chromium.org/10025039
TBR=msw@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10142008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133132 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views/bubble')
-rw-r--r-- | ui/views/bubble/bubble_delegate.cc | 36 | ||||
-rw-r--r-- | ui/views/bubble/bubble_delegate.h | 2 | ||||
-rw-r--r-- | ui/views/bubble/bubble_frame_view.cc | 7 |
3 files changed, 13 insertions, 32 deletions
diff --git a/ui/views/bubble/bubble_delegate.cc b/ui/views/bubble/bubble_delegate.cc index 1fd3d4f..3942c92 100644 --- a/ui/views/bubble/bubble_delegate.cc +++ b/ui/views/bubble/bubble_delegate.cc @@ -171,30 +171,19 @@ NonClientFrameView* BubbleDelegateView::CreateNonClientFrameView( return new BubbleFrameView(arrow_location(), color(), margin()); } -void BubbleDelegateView::OnWidgetClosing(Widget* widget) { - if (anchor_view() && anchor_view()->GetWidget() == widget) - anchor_view_ = NULL; -} - void BubbleDelegateView::OnWidgetVisibilityChanged(Widget* widget, bool visible) { - if (widget != GetWidget()) - return; - - Widget* anchor_widget = anchor_view() ? anchor_view()->GetWidget() : NULL; - if (visible) { - if (border_widget_) - border_widget_->Show(); - if (anchor_widget) - anchor_widget->AddObserver(this); - GetFocusManager()->SetFocusedView(GetInitiallyFocusedView()); - if (anchor_widget && anchor_widget->GetTopLevelWidget()) - anchor_widget->GetTopLevelWidget()->DisableInactiveRendering(); - } else { - if (border_widget_) + if (widget == GetWidget()) { + if (visible) { + if (border_widget_) + border_widget_->Show(); + GetFocusManager()->SetFocusedView(GetInitiallyFocusedView()); + Widget* anchor_widget = anchor_view() ? anchor_view()->GetWidget() : NULL; + if (anchor_widget && anchor_widget->GetTopLevelWidget()) + anchor_widget->GetTopLevelWidget()->DisableInactiveRendering(); + } else if (border_widget_) { border_widget_->Hide(); - if (anchor_widget) - anchor_widget->RemoveObserver(this); + } } } @@ -204,11 +193,6 @@ void BubbleDelegateView::OnWidgetActivationChanged(Widget* widget, GetWidget()->Close(); } -void BubbleDelegateView::OnWidgetMoved(Widget* widget) { - if (anchor_view() && anchor_view()->GetWidget() == widget) - SizeToContents(); -} - gfx::Rect BubbleDelegateView::GetAnchorRect() { return anchor_view() ? anchor_view()->GetScreenBounds() : gfx::Rect(); } diff --git a/ui/views/bubble/bubble_delegate.h b/ui/views/bubble/bubble_delegate.h index 145faf8..75f6c16 100644 --- a/ui/views/bubble/bubble_delegate.h +++ b/ui/views/bubble/bubble_delegate.h @@ -47,10 +47,8 @@ class VIEWS_EXPORT BubbleDelegateView : public WidgetDelegateView, views::Widget* widget) OVERRIDE; // Widget::Observer overrides: - virtual void OnWidgetClosing(Widget* widget) OVERRIDE; virtual void OnWidgetVisibilityChanged(Widget* widget, bool visible) OVERRIDE; virtual void OnWidgetActivationChanged(Widget* widget, bool active) OVERRIDE; - virtual void OnWidgetMoved(Widget* widget) OVERRIDE; bool close_on_esc() const { return close_on_esc_; } void set_close_on_esc(bool close_on_esc) { close_on_esc_ = close_on_esc; } diff --git a/ui/views/bubble/bubble_frame_view.cc b/ui/views/bubble/bubble_frame_view.cc index 176c010..ab2ae24 100644 --- a/ui/views/bubble/bubble_frame_view.cc +++ b/ui/views/bubble/bubble_frame_view.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -117,10 +117,9 @@ void BubbleFrameView::MirrorArrowIfOffScreen( bubble_border_->GetBounds(anchor_rect, client_size); // Restore the original arrow if mirroring doesn't show more of the bubble. if (GetOffScreenLength(monitor_rect, mirror_bounds, vertical) >= - GetOffScreenLength(monitor_rect, window_bounds, vertical)) + GetOffScreenLength(monitor_rect, window_bounds, vertical)) { bubble_border_->set_arrow_location(arrow); - else - SchedulePaint(); + } } } |