summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--views/widget/widget_gtk.cc11
-rw-r--r--views/widget/widget_gtk.h6
2 files changed, 11 insertions, 6 deletions
diff --git a/views/widget/widget_gtk.cc b/views/widget/widget_gtk.cc
index d1271f5..75bcc33 100644
--- a/views/widget/widget_gtk.cc
+++ b/views/widget/widget_gtk.cc
@@ -512,7 +512,8 @@ void WidgetGtk::CreateGtkWidget(GtkWidget* parent, const gfx::Rect& bounds) {
SetViewForNative(widget_, this);
} else {
widget_ = gtk_window_new(
- type_ == TYPE_WINDOW ? GTK_WINDOW_TOPLEVEL : GTK_WINDOW_POPUP);
+ (type_ == TYPE_WINDOW || type_ == TYPE_DECORATED_WINDOW) ?
+ GTK_WINDOW_TOPLEVEL : GTK_WINDOW_POPUP);
GTK_WIDGET_UNSET_FLAGS(widget_, GTK_DOUBLE_BUFFERED);
if (!bounds.size().IsEmpty()) {
@@ -522,9 +523,11 @@ void WidgetGtk::CreateGtkWidget(GtkWidget* parent, const gfx::Rect& bounds) {
GtkAllocation alloc = { 0, 0, bounds.width(), bounds.height() };
gtk_widget_size_allocate(widget_, &alloc);
}
- gtk_window_set_decorated(GTK_WINDOW(widget_), false);
- // We'll take care of positioning our window.
- gtk_window_set_position(GTK_WINDOW(widget_), GTK_WIN_POS_NONE);
+ if (type_ != TYPE_DECORATED_WINDOW) {
+ gtk_window_set_decorated(GTK_WINDOW(widget_), false);
+ // We'll take care of positioning our window.
+ gtk_window_set_position(GTK_WINDOW(widget_), GTK_WIN_POS_NONE);
+ }
SetWindowForNative(widget_, static_cast<WindowGtk*>(this));
SetViewForNative(widget_, this);
diff --git a/views/widget/widget_gtk.h b/views/widget/widget_gtk.h
index eedb1f7..7ce3329 100644
--- a/views/widget/widget_gtk.h
+++ b/views/widget/widget_gtk.h
@@ -32,9 +32,11 @@ class WidgetGtk : public Widget, public MessageLoopForUI::Observer {
enum Type {
// Used for popup type windows (bubbles, menus ...).
TYPE_POPUP,
- // A top level window.
+ // A top level window with no title, no control buttons.
+ // control.
TYPE_WINDOW,
-
+ // A top level, decorated window.
+ TYPE_DECORATED_WINDOW,
// A child widget.
TYPE_CHILD
};