diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-04 01:15:59 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-04 01:15:59 +0000 |
commit | 6c856ae733bf8d1f187ec5b93e07216ace0c4693 (patch) | |
tree | 1bca8fe2359b7334d99bfba154876e38ba319688 /views/widget | |
parent | 1f97d19d40c07ecc87070a9dd616f966f9f7619e (diff) | |
download | chromium_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.h | 4 | ||||
-rw-r--r-- | views/widget/widget_gtk.cc | 4 | ||||
-rw-r--r-- | views/widget/widget_gtk.h | 2 | ||||
-rw-r--r-- | views/widget/widget_win.cc | 4 | ||||
-rw-r--r-- | views/widget/widget_win.h | 2 |
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(); |