diff options
-rw-r--r-- | chrome/browser/chromeos/frame/panel_controller.cc | 3 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/background_view.cc | 2 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/screen_locker.cc | 3 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/user_controller.cc | 2 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/user_controller_gtk.cc | 3 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/views_oobe_display.cc | 2 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/webui_login_display_host.cc | 3 | ||||
-rw-r--r-- | chrome/browser/chromeos/notifications/notification_panel.cc | 2 | ||||
-rw-r--r-- | chrome/browser/chromeos/panels/panel_scroller.cc | 3 | ||||
-rw-r--r-- | chrome/browser/ui/views/browser_bubble_gtk.cc | 3 | ||||
-rw-r--r-- | chrome/browser/ui/views/bubble/bubble.cc | 4 | ||||
-rw-r--r-- | views/widget/native_widget_gtk.cc | 16 | ||||
-rw-r--r-- | views/widget/native_widget_win.cc | 3 | ||||
-rw-r--r-- | views/widget/widget.h | 2 |
14 files changed, 36 insertions, 15 deletions
diff --git a/chrome/browser/chromeos/frame/panel_controller.cc b/chrome/browser/chromeos/frame/panel_controller.cc index 2bed72b..37f07bc 100644 --- a/chrome/browser/chromeos/frame/panel_controller.cc +++ b/chrome/browser/chromeos/frame/panel_controller.cc @@ -184,7 +184,8 @@ void PanelController::Init(bool initial_focus, gfx::Rect title_bounds(0, 0, window_bounds.width(), kTitleHeight); title_window_ = new views::Widget; - views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP); + views::Widget::InitParams params( + views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); params.transparent = true; params.bounds = title_bounds; title_window_->Init(params); diff --git a/chrome/browser/chromeos/login/background_view.cc b/chrome/browser/chromeos/login/background_view.cc index c0eca72..80bd3c7 100644 --- a/chrome/browser/chromeos/login/background_view.cc +++ b/chrome/browser/chromeos/login/background_view.cc @@ -129,7 +129,7 @@ views::Widget* BackgroundView::CreateWindowContainingView( const GURL& background_url, BackgroundView** view) { Widget* window = new Widget; - Widget::InitParams params(Widget::InitParams::TYPE_POPUP); + Widget::InitParams params(Widget::InitParams::TYPE_WINDOW_FRAMELESS); params.bounds = bounds; window->Init(params); *view = new BackgroundView(); diff --git a/chrome/browser/chromeos/login/screen_locker.cc b/chrome/browser/chromeos/login/screen_locker.cc index 06e6c6c..0e4f68de 100644 --- a/chrome/browser/chromeos/login/screen_locker.cc +++ b/chrome/browser/chromeos/login/screen_locker.cc @@ -734,7 +734,8 @@ void ScreenLocker::Init() { LockWindow* lock_window = new LockWindow(); lock_window_ = lock_window->GetWidget(); - views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP); + views::Widget::InitParams params( + views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); params.bounds = init_bounds; params.native_widget = lock_window; lock_window_->Init(params); diff --git a/chrome/browser/chromeos/login/user_controller.cc b/chrome/browser/chromeos/login/user_controller.cc index 47fe14b..63a7a9f 100644 --- a/chrome/browser/chromeos/login/user_controller.cc +++ b/chrome/browser/chromeos/login/user_controller.cc @@ -421,7 +421,7 @@ void UserController::CreateBorderWindow(int index, } border_window_ = new Widget; - Widget::InitParams params(Widget::InitParams::TYPE_POPUP); + Widget::InitParams params(Widget::InitParams::TYPE_WINDOW_FRAMELESS); params.transparent = true; params.bounds = gfx::Rect(0, 0, width, height); border_window_->Init(params); diff --git a/chrome/browser/chromeos/login/user_controller_gtk.cc b/chrome/browser/chromeos/login/user_controller_gtk.cc index 1c59130..7ca2464 100644 --- a/chrome/browser/chromeos/login/user_controller_gtk.cc +++ b/chrome/browser/chromeos/login/user_controller_gtk.cc @@ -58,7 +58,8 @@ class ClickNotifyingWidget : public NativeWidgetGtk { views::Widget* InitWidget(views::WidgetDelegate* delegate, views::NativeWidget* native_widget, const gfx::Rect& bounds) { - views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP); + views::Widget::InitParams params( + views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); params.delegate = delegate; params.transparent = true; params.bounds = bounds; diff --git a/chrome/browser/chromeos/login/views_oobe_display.cc b/chrome/browser/chromeos/login/views_oobe_display.cc index 5296f1f..847ad6f 100644 --- a/chrome/browser/chromeos/login/views_oobe_display.cc +++ b/chrome/browser/chromeos/login/views_oobe_display.cc @@ -216,7 +216,7 @@ views::Widget* ViewsOobeDisplay::CreateScreenWindow( const gfx::Rect& bounds, bool initial_show) { widget_ = new views::Widget; views::Widget::InitParams widget_params( - views::Widget::InitParams::TYPE_POPUP); + views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); // Window transparency makes background flicker through controls that // are constantly updating its contents (like image view with video // stream). Hence enabling double buffer. diff --git a/chrome/browser/chromeos/login/webui_login_display_host.cc b/chrome/browser/chromeos/login/webui_login_display_host.cc index 3df3f7d..46d8be1 100644 --- a/chrome/browser/chromeos/login/webui_login_display_host.cc +++ b/chrome/browser/chromeos/login/webui_login_display_host.cc @@ -83,7 +83,8 @@ void WebUILoginDisplayHost::StartSignInScreen() { void WebUILoginDisplayHost::LoadURL(const GURL& url) { if (!login_window_) { - views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP); + views::Widget::InitParams params( + views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); params.bounds = background_bounds(); login_window_ = new views::Widget; diff --git a/chrome/browser/chromeos/notifications/notification_panel.cc b/chrome/browser/chromeos/notifications/notification_panel.cc index 197a865..e1c2d87 100644 --- a/chrome/browser/chromeos/notifications/notification_panel.cc +++ b/chrome/browser/chromeos/notifications/notification_panel.cc @@ -426,7 +426,7 @@ void NotificationPanel::Show() { panel_widget_ = new views::Widget; // TODO(oshima): Using window because Popup widget behaves weird // when resizing. This needs to be investigated. - Widget::InitParams params(Widget::InitParams::TYPE_POPUP); + Widget::InitParams params(Widget::InitParams::TYPE_WINDOW_FRAMELESS); // Enable double buffering because the panel has both pure views // control and native controls (scroll bar). params.double_buffer = true; diff --git a/chrome/browser/chromeos/panels/panel_scroller.cc b/chrome/browser/chromeos/panels/panel_scroller.cc index ee34659..1069d67 100644 --- a/chrome/browser/chromeos/panels/panel_scroller.cc +++ b/chrome/browser/chromeos/panels/panel_scroller.cc @@ -81,7 +81,8 @@ PanelScroller::~PanelScroller() { // static PanelScroller* PanelScroller::CreateWindow() { views::Widget* widget = new views::Widget; - views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP); + views::Widget::InitParams params( + views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); params.bounds = gfx::Rect(0, 0, 100, 800); widget->Init(params); diff --git a/chrome/browser/ui/views/browser_bubble_gtk.cc b/chrome/browser/ui/views/browser_bubble_gtk.cc index 090eb99..dfd0506 100644 --- a/chrome/browser/ui/views/browser_bubble_gtk.cc +++ b/chrome/browser/ui/views/browser_bubble_gtk.cc @@ -95,7 +95,8 @@ void BrowserBubble::InitPopup(const gfx::Insets& content_margins) { // TODO(port) BubbleWidget* bubble_widget = new BubbleWidget(this, content_margins); popup_ = bubble_widget->GetWidget(); - views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP); + views::Widget::InitParams params( + views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); params.transparent = true; params.parent = frame_->GetNativeView(); params.native_widget = bubble_widget; diff --git a/chrome/browser/ui/views/bubble/bubble.cc b/chrome/browser/ui/views/bubble/bubble.cc index 91d077b..5fa32e7 100644 --- a/chrome/browser/ui/views/bubble/bubble.cc +++ b/chrome/browser/ui/views/bubble/bubble.cc @@ -68,7 +68,7 @@ Bubble* Bubble::ShowFocusless( views::View* contents, BubbleDelegate* delegate, bool show_while_screen_is_locked) { - Bubble* bubble = new Bubble(views::Widget::InitParams::TYPE_POPUP, + Bubble* bubble = new Bubble(views::Widget::InitParams::TYPE_WINDOW_FRAMELESS, show_while_screen_is_locked); bubble->InitBubble(parent, position_relative_to, arrow_location, contents, delegate); @@ -134,7 +134,7 @@ Bubble::Bubble() show_status_(kOpen), fade_away_on_close_(false), #if defined(TOOLKIT_USES_GTK) - type_(views::Widget::InitParams::TYPE_POPUP), + type_(views::Widget::InitParams::TYPE_WINDOW_FRAMELESS), #endif #if defined(OS_CHROMEOS) show_while_screen_is_locked_(false), diff --git a/views/widget/native_widget_gtk.cc b/views/widget/native_widget_gtk.cc index 801a8ec..4d3c3a4 100644 --- a/views/widget/native_widget_gtk.cc +++ b/views/widget/native_widget_gtk.cc @@ -180,6 +180,18 @@ void RemoveExposeHandlerIfExists(GtkWidget* widget) { } } +GtkWindowType WindowTypeToGtkWindowType(Widget::InitParams::Type type) { + switch (type) { + case Widget::InitParams::TYPE_WINDOW: + case Widget::InitParams::TYPE_WINDOW_FRAMELESS: + return GTK_WINDOW_TOPLEVEL; + default: + return GTK_WINDOW_POPUP; + } + NOTREACHED(); + return GTK_WINDOW_TOPLEVEL; +} + } // namespace // During drag and drop GTK sends a drag-leave during a drop. This means we @@ -1676,9 +1688,7 @@ void NativeWidgetGtk::CreateGtkWidget(const Widget::InitParams& params) { } } else { // Use our own window class to override GtkWindow's move_focus method. - widget_ = gtk_views_window_new( - params.type == Widget::InitParams::TYPE_WINDOW ? GTK_WINDOW_TOPLEVEL - : GTK_WINDOW_POPUP); + widget_ = gtk_views_window_new(WindowTypeToGtkWindowType(params.type)); gtk_widget_set_name(widget_, "views-gtkwidget-window"); if (transient_to_parent_) { gtk_window_set_transient_for(GTK_WINDOW(widget_), diff --git a/views/widget/native_widget_win.cc b/views/widget/native_widget_win.cc index fe4d885..6d77bc6 100644 --- a/views/widget/native_widget_win.cc +++ b/views/widget/native_widget_win.cc @@ -1783,6 +1783,9 @@ void NativeWidgetWin::SetInitParams(const Widget::InitParams& params) { case Widget::InitParams::TYPE_WINDOW: case Widget::InitParams::TYPE_CONTROL: break; + case Widget::InitParams::TYPE_WINDOW_FRAMELESS: + style |= WS_POPUP; + break; case Widget::InitParams::TYPE_POPUP: style |= WS_POPUP; ex_style |= WS_EX_TOOLWINDOW; diff --git a/views/widget/widget.h b/views/widget/widget.h index b2699de..990d060 100644 --- a/views/widget/widget.h +++ b/views/widget/widget.h @@ -94,6 +94,8 @@ class Widget : public internal::NativeWidgetDelegate, struct InitParams { enum Type { TYPE_WINDOW, // A Window, like a frame window. + TYPE_WINDOW_FRAMELESS, + // An undecorated Window. TYPE_CONTROL, // A control, like a button. TYPE_POPUP, // An undecorated Window, with transient properties. TYPE_MENU // An undecorated Window, with transient properties |