diff options
Diffstat (limited to 'views/widget')
-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 |
3 files changed, 18 insertions, 3 deletions
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 |