summaryrefslogtreecommitdiffstats
path: root/views/widget
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-04 01:15:59 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-04 01:15:59 +0000
commit6c856ae733bf8d1f187ec5b93e07216ace0c4693 (patch)
tree1bca8fe2359b7334d99bfba154876e38ba319688 /views/widget
parent1f97d19d40c07ecc87070a9dd616f966f9f7619e (diff)
downloadchromium_src-6c856ae733bf8d1f187ec5b93e07216ace0c4693.zip
chromium_src-6c856ae733bf8d1f187ec5b93e07216ace0c4693.tar.gz
chromium_src-6c856ae733bf8d1f187ec5b93e07216ace0c4693.tar.bz2
Revert 30903 - Gets find bar animation/clipping to work on views/gtk.
BUG=none TEST=none Review URL: http://codereview.chromium.org/340077 TBR=sky@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30913 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget')
-rw-r--r--views/widget/widget.h4
-rw-r--r--views/widget/widget_gtk.cc4
-rw-r--r--views/widget/widget_gtk.h2
-rw-r--r--views/widget/widget_win.cc4
-rw-r--r--views/widget/widget_win.h2
5 files changed, 9 insertions, 7 deletions
diff --git a/views/widget/widget.h b/views/widget/widget.h
index 357f07a..7b08737 100644
--- a/views/widget/widget.h
+++ b/views/widget/widget.h
@@ -96,8 +96,8 @@ class Widget {
// Places the widget in front of the specified widget in z-order.
virtual void MoveAbove(Widget* widget) = 0;
- // Sets a shape on the widget. This takes ownership of shape.
- virtual void SetShape(gfx::NativeRegion shape) = 0;
+ // Sets a shape on the widget.
+ virtual void SetShape(const gfx::Path& shape) = 0;
// Hides the widget then closes it after a return to the message loop.
virtual void Close() = 0;
diff --git a/views/widget/widget_gtk.cc b/views/widget/widget_gtk.cc
index 4edef7c..4557286 100644
--- a/views/widget/widget_gtk.cc
+++ b/views/widget/widget_gtk.cc
@@ -378,10 +378,12 @@ void WidgetGtk::MoveAbove(Widget* widget) {
NOTIMPLEMENTED();
}
-void WidgetGtk::SetShape(gfx::NativeRegion region) {
+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);
}
diff --git a/views/widget/widget_gtk.h b/views/widget/widget_gtk.h
index 3799a4a..e97f58e 100644
--- a/views/widget/widget_gtk.h
+++ b/views/widget/widget_gtk.h
@@ -118,7 +118,7 @@ class WidgetGtk
virtual void GetBounds(gfx::Rect* out, bool including_frame) const;
virtual void SetBounds(const gfx::Rect& bounds);
virtual void MoveAbove(Widget* other);
- virtual void SetShape(gfx::NativeRegion region);
+ virtual void SetShape(const gfx::Path& shape);
virtual void Close();
virtual void CloseNow();
virtual void Show();
diff --git a/views/widget/widget_win.cc b/views/widget/widget_win.cc
index a3dc3ce..e0edee8 100644
--- a/views/widget/widget_win.cc
+++ b/views/widget/widget_win.cc
@@ -144,8 +144,8 @@ void WidgetWin::MoveAbove(Widget* other) {
bounds.width(), bounds.height(), SWP_NOACTIVATE);
}
-void WidgetWin::SetShape(gfx::NativeRegion region) {
- SetWindowRgn(region, TRUE);
+void WidgetWin::SetShape(const gfx::Path& shape) {
+ SetWindowRgn(shape.CreateHRGN(), TRUE);
}
void WidgetWin::Close() {
diff --git a/views/widget/widget_win.h b/views/widget/widget_win.h
index f22417c..b8e21dd 100644
--- a/views/widget/widget_win.h
+++ b/views/widget/widget_win.h
@@ -184,7 +184,7 @@ class WidgetWin : public app::WindowImpl,
virtual void GetBounds(gfx::Rect* out, bool including_frame) const;
virtual void SetBounds(const gfx::Rect& bounds);
virtual void MoveAbove(Widget* other);
- virtual void SetShape(gfx::NativeRegion region);
+ virtual void SetShape(const gfx::Path& shape);
virtual void Close();
virtual void CloseNow();
virtual void Show();