diff options
author | benwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-06 01:46:08 +0000 |
---|---|---|
committer | benwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-06 01:46:08 +0000 |
commit | e6f44bb8cde247bdf8e7458404763832168b1994 (patch) | |
tree | 25950e2e4b49bfa5e7a78fee488da4a3965e32c2 /ui/views/bubble | |
parent | d2626945e68094cc967f8960e2ce8745078cb3cd (diff) | |
download | chromium_src-e6f44bb8cde247bdf8e7458404763832168b1994.zip chromium_src-e6f44bb8cde247bdf8e7458404763832168b1994.tar.gz chromium_src-e6f44bb8cde247bdf8e7458404763832168b1994.tar.bz2 |
Revert 186022 - [win] Make 'Close Window' from taskbar work for app launcher.
This involves not making bubbles not be frameless windows if they do
not have a parent. This makes them get a non client view, which does not change their appearance but means they are delivered WM_CLOSE messages.
BUG=173728
Review URL: https://chromiumcodereview.appspot.com/12328132
TBR=benwells@chromium.org
Review URL: https://codereview.chromium.org/12467003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186324 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views/bubble')
-rw-r--r-- | ui/views/bubble/bubble_delegate.cc | 23 | ||||
-rw-r--r-- | ui/views/bubble/bubble_delegate.h | 3 | ||||
-rw-r--r-- | ui/views/bubble/tray_bubble_view.cc | 10 | ||||
-rw-r--r-- | ui/views/bubble/tray_bubble_view.h | 3 |
4 files changed, 14 insertions, 25 deletions
diff --git a/ui/views/bubble/bubble_delegate.cc b/ui/views/bubble/bubble_delegate.cc index 8ade700..ecee2a0 100644 --- a/ui/views/bubble/bubble_delegate.cc +++ b/ui/views/bubble/bubble_delegate.cc @@ -35,6 +35,7 @@ Widget* CreateBubbleWidget(BubbleDelegateView* bubble) { bubble_params.parent = bubble->anchor_widget()->GetNativeView(); bubble_params.can_activate = bubble->CanActivate(); #if defined(OS_WIN) && !defined(USE_AURA) + bubble_params.type = Widget::InitParams::TYPE_WINDOW_FRAMELESS; bubble_params.transparent = false; #endif bubble_widget->Init(bubble_params); @@ -66,7 +67,7 @@ class BubbleBorderDelegate : public WidgetDelegate, virtual const Widget* GetWidget() const OVERRIDE { return widget_; } virtual NonClientFrameView* CreateNonClientFrameView( Widget* widget) OVERRIDE { - return bubble_->CreateBubbleFrameView(); + return bubble_->CreateNonClientFrameView(widget); } // WidgetObserver overrides: @@ -186,13 +187,11 @@ View* BubbleDelegateView::GetContentsView() { NonClientFrameView* BubbleDelegateView::CreateNonClientFrameView( Widget* widget) { -#if defined(OS_WIN) && !defined(USE_AURA) - // On non-aura windows the bubble frame is owned by the border widget. The - // main widget uses the default non client view, so return NULL here. - return NULL; -#else - return CreateBubbleFrameView(); -#endif + BubbleFrameView* frame = new BubbleFrameView(margins()); + BubbleBorder::ArrowLocation arrow = base::i18n::IsRTL() ? + BubbleBorder::horizontal_mirror(arrow_location()) : arrow_location(); + frame->SetBubbleBorder(new BubbleBorder(arrow, shadow(), color())); + return frame; } void BubbleDelegateView::OnWidgetDestroying(Widget* widget) { @@ -272,14 +271,6 @@ void BubbleDelegateView::SetAlignment(BubbleBorder::BubbleAlignment alignment) { SizeToContents(); } -BubbleFrameView* BubbleDelegateView::CreateBubbleFrameView() { - BubbleFrameView* frame = new BubbleFrameView(margins()); - BubbleBorder::ArrowLocation arrow = base::i18n::IsRTL() ? - BubbleBorder::horizontal_mirror(arrow_location()) : arrow_location(); - frame->SetBubbleBorder(new BubbleBorder(arrow, shadow(), color())); - return frame; -} - bool BubbleDelegateView::AcceleratorPressed( const ui::Accelerator& accelerator) { if (!close_on_esc() || accelerator.key_code() != ui::VKEY_ESCAPE) diff --git a/ui/views/bubble/bubble_delegate.h b/ui/views/bubble/bubble_delegate.h index 371f5d9..080bdcb 100644 --- a/ui/views/bubble/bubble_delegate.h +++ b/ui/views/bubble/bubble_delegate.h @@ -123,9 +123,6 @@ class VIEWS_EXPORT BubbleDelegateView : public WidgetDelegateView, // after calling CreateBubble. void SetAlignment(BubbleBorder::BubbleAlignment alignment); - // Create the bubble frame for the bubble. - virtual BubbleFrameView* CreateBubbleFrameView(); - protected: // Get bubble bounds from the anchor point and client view's preferred size. virtual gfx::Rect GetBubbleBounds(); diff --git a/ui/views/bubble/tray_bubble_view.cc b/ui/views/bubble/tray_bubble_view.cc index 739b614..88bdeea 100644 --- a/ui/views/bubble/tray_bubble_view.cc +++ b/ui/views/bubble/tray_bubble_view.cc @@ -344,16 +344,16 @@ gfx::Rect TrayBubbleView::GetAnchorRect() { params_.anchor_alignment); } -BubbleFrameView* TrayBubbleView::CreateBubbleFrameView() { +bool TrayBubbleView::CanActivate() const { + return params_.can_activate; +} + +NonClientFrameView* TrayBubbleView::CreateNonClientFrameView(Widget* widget) { BubbleFrameView* frame = new BubbleFrameView(margins()); frame->SetBubbleBorder(bubble_border_); return frame; } -bool TrayBubbleView::CanActivate() const { - return params_.can_activate; -} - bool TrayBubbleView::WidgetHasHitTestMask() const { return true; } diff --git a/ui/views/bubble/tray_bubble_view.h b/ui/views/bubble/tray_bubble_view.h index f9d8457..2cb12d1 100644 --- a/ui/views/bubble/tray_bubble_view.h +++ b/ui/views/bubble/tray_bubble_view.h @@ -142,12 +142,13 @@ class VIEWS_EXPORT TrayBubbleView : public views::BubbleDelegateView { // Overridden from views::WidgetDelegate. virtual bool CanActivate() const OVERRIDE; + virtual views::NonClientFrameView* CreateNonClientFrameView( + views::Widget* widget) OVERRIDE; virtual bool WidgetHasHitTestMask() const OVERRIDE; virtual void GetWidgetHitTestMask(gfx::Path* mask) const OVERRIDE; // Overridden from views::BubbleDelegateView. virtual gfx::Rect GetAnchorRect() OVERRIDE; - virtual BubbleFrameView* CreateBubbleFrameView() OVERRIDE; // Overridden from views::View. virtual gfx::Size GetPreferredSize() OVERRIDE; |