summaryrefslogtreecommitdiffstats
path: root/views/widget/widget_gtk.cc
diff options
context:
space:
mode:
Diffstat (limited to 'views/widget/widget_gtk.cc')
-rw-r--r--views/widget/widget_gtk.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/views/widget/widget_gtk.cc b/views/widget/widget_gtk.cc
index 4928d27..776af0d 100644
--- a/views/widget/widget_gtk.cc
+++ b/views/widget/widget_gtk.cc
@@ -4,6 +4,7 @@
#include "views/widget/widget_gtk.h"
+#include "app/gfx/path.h"
#include "base/compiler_specific.h"
#include "views/fill_layout.h"
#include "views/widget/default_theme_provider.h"
@@ -270,6 +271,16 @@ void WidgetGtk::SetBounds(const gfx::Rect& bounds) {
}
}
+void WidgetGtk::SetShape(const gfx::Path& shape) {
+ DCHECK(widget_);
+ DCHECK(widget_->window);
+
+ gdk_window_shape_combine_region(widget_->window, NULL, 0, 0);
+ GdkRegion* region = shape.CreateGdkRegion();
+ gdk_window_shape_combine_region(widget_->window, region, 0, 0);
+ gdk_region_destroy(region);
+}
+
void WidgetGtk::Close() {
if (!widget_)
return; // No need to do anything.