summaryrefslogtreecommitdiffstats
path: root/ui/views/bubble
diff options
context:
space:
mode:
authorbenwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-06 01:46:08 +0000
committerbenwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-06 01:46:08 +0000
commite6f44bb8cde247bdf8e7458404763832168b1994 (patch)
tree25950e2e4b49bfa5e7a78fee488da4a3965e32c2 /ui/views/bubble
parentd2626945e68094cc967f8960e2ce8745078cb3cd (diff)
downloadchromium_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.cc23
-rw-r--r--ui/views/bubble/bubble_delegate.h3
-rw-r--r--ui/views/bubble/tray_bubble_view.cc10
-rw-r--r--ui/views/bubble/tray_bubble_view.h3
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;