win: Save draggable region.

This commit is contained in:
Cheng Zhao 2013-09-09 12:12:17 +08:00
parent 3c0671c179
commit f833423a2f
3 changed files with 25 additions and 1 deletions

View file

@ -223,6 +223,26 @@ gfx::NativeWindow NativeWindowWin::GetNativeWindow() {
void NativeWindowWin::UpdateDraggableRegions( void NativeWindowWin::UpdateDraggableRegions(
const std::vector<DraggableRegion>& regions) { const std::vector<DraggableRegion>& regions) {
if (has_frame_)
return;
SkRegion* draggable_region = new SkRegion;
// By default, the whole window is non-draggable. We need to explicitly
// include those draggable regions.
for (std::vector<extensions::DraggableRegion>::const_iterator iter =
regions.begin();
iter != regions.end(); ++iter) {
const extensions::DraggableRegion& region = *iter;
draggable_region->op(
region.bounds.x(),
region.bounds.y(),
region.bounds.right(),
region.bounds.bottom(),
region.draggable ? SkRegion::kUnion_Op : SkRegion::kDifference_Op);
}
draggable_region_.reset(draggable_region);
} }
void NativeWindowWin::HandleKeyboardEvent( void NativeWindowWin::HandleKeyboardEvent(

View file

@ -60,6 +60,8 @@ class NativeWindowWin : public NativeWindow,
virtual bool IsKiosk() OVERRIDE; virtual bool IsKiosk() OVERRIDE;
virtual gfx::NativeWindow GetNativeWindow() OVERRIDE; virtual gfx::NativeWindow GetNativeWindow() OVERRIDE;
SkRegion* draggable_region() { return draggable_region_.get(); }
protected: protected:
virtual void UpdateDraggableRegions( virtual void UpdateDraggableRegions(
const std::vector<DraggableRegion>& regions) OVERRIDE; const std::vector<DraggableRegion>& regions) OVERRIDE;
@ -85,6 +87,8 @@ class NativeWindowWin : public NativeWindow,
scoped_ptr<views::Widget> window_; scoped_ptr<views::Widget> window_;
views::WebView* web_view_; // managed by window_. views::WebView* web_view_; // managed by window_.
scoped_ptr<SkRegion> draggable_region_;
bool resizable_; bool resizable_;
string16 title_; string16 title_;
gfx::Size minimum_size_; gfx::Size minimum_size_;

2
vendor/apm vendored

@ -1 +1 @@
Subproject commit 613d15242ac2286eafbfe19e3857580b8adeec8c Subproject commit 2c9da12d10e0f8bbcf53bbfbd553ea2cdcb9b02a