summaryrefslogtreecommitdiffstats
path: root/views/widget
diff options
context:
space:
mode:
Diffstat (limited to 'views/widget')
-rw-r--r--views/widget/native_widget_gtk.cc16
-rw-r--r--views/widget/native_widget_win.cc3
-rw-r--r--views/widget/widget.h2
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