summaryrefslogtreecommitdiffstats
path: root/views/widget
diff options
context:
space:
mode:
authoroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-22 01:04:05 +0000
committeroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-22 01:04:05 +0000
commit5053d91e51e7f3d6ce8275e2727b10dbbdc2c217 (patch)
treed388b15612c95b845e1ab48e23358afec9aac4ef /views/widget
parenta032e66e5dc93334927ca2b1e1e8afb1ce934b15 (diff)
downloadchromium_src-5053d91e51e7f3d6ce8275e2727b10dbbdc2c217.zip
chromium_src-5053d91e51e7f3d6ce8275e2727b10dbbdc2c217.tar.gz
chromium_src-5053d91e51e7f3d6ce8275e2727b10dbbdc2c217.tar.bz2
Decolated window support in WidgetGtk.
Will be used primarily for testing. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26778 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget')
-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
};