| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/views/panels/panel_frame_view.h" | 5 #include "chrome/browser/ui/views/panels/panel_frame_view.h" |
| 6 | 6 |
| 7 #include "chrome/browser/ui/panels/panel.h" | 7 #include "chrome/browser/ui/panels/panel.h" |
| 8 #include "chrome/browser/ui/panels/panel_constants.h" | 8 #include "chrome/browser/ui/panels/panel_constants.h" |
| 9 #include "chrome/browser/ui/views/panels/panel_view.h" | 9 #include "chrome/browser/ui/views/panels/panel_view.h" |
| 10 #include "chrome/browser/ui/views/tab_icon_view.h" | 10 #include "chrome/browser/ui/views/tab_icon_view.h" |
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 } | 350 } |
| 351 | 351 |
| 352 void PanelFrameView::SetWindowCornerStyle(panel::CornerStyle corner_style) { | 352 void PanelFrameView::SetWindowCornerStyle(panel::CornerStyle corner_style) { |
| 353 corner_style_ = corner_style; | 353 corner_style_ = corner_style; |
| 354 | 354 |
| 355 #if defined(OS_WIN) | 355 #if defined(OS_WIN) |
| 356 // Changing the window region is going to force a paint. Only change the | 356 // Changing the window region is going to force a paint. Only change the |
| 357 // window region if the region really differs. | 357 // window region if the region really differs. |
| 358 HWND native_window = views::HWNDForWidget(panel_view_->window()); | 358 HWND native_window = views::HWNDForWidget(panel_view_->window()); |
| 359 base::win::ScopedRegion current_region(::CreateRectRgn(0, 0, 0, 0)); | 359 base::win::ScopedRegion current_region(::CreateRectRgn(0, 0, 0, 0)); |
| 360 ::GetWindowRgn(native_window, current_region); | 360 ::GetWindowRgn(native_window, current_region.get()); |
| 361 | 361 |
| 362 gfx::Path window_mask; | 362 gfx::Path window_mask; |
| 363 GetWindowMask(size(), &window_mask); | 363 GetWindowMask(size(), &window_mask); |
| 364 base::win::ScopedRegion new_region; | 364 base::win::ScopedRegion new_region; |
| 365 if (!window_mask.isEmpty()) | 365 if (!window_mask.isEmpty()) |
| 366 new_region.Set(gfx::CreateHRGNFromSkPath(window_mask)); | 366 new_region.reset(gfx::CreateHRGNFromSkPath(window_mask)); |
| 367 | 367 |
| 368 const bool has_current_region = current_region != NULL; | 368 const bool has_current_region = current_region != NULL; |
| 369 const bool has_new_region = new_region != NULL; | 369 const bool has_new_region = new_region != NULL; |
| 370 if (has_current_region != has_new_region || | 370 if (has_current_region != has_new_region || |
| 371 (has_current_region && !::EqualRgn(current_region, new_region))) { | 371 (has_current_region && |
| 372 !::EqualRgn(current_region.get(), new_region.get()))) { |
| 372 // SetWindowRgn takes ownership of the new_region. | 373 // SetWindowRgn takes ownership of the new_region. |
| 373 ::SetWindowRgn(native_window, new_region.release(), TRUE); | 374 ::SetWindowRgn(native_window, new_region.release(), TRUE); |
| 374 } | 375 } |
| 375 #endif | 376 #endif |
| 376 } | 377 } |
| 377 | 378 |
| 378 gfx::Rect PanelFrameView::GetBoundsForClientView() const { | 379 gfx::Rect PanelFrameView::GetBoundsForClientView() const { |
| 379 // The origin of client-area bounds starts after left border and titlebar and | 380 // The origin of client-area bounds starts after left border and titlebar and |
| 380 // spans until hitting the right and bottom borders. | 381 // spans until hitting the right and bottom borders. |
| 381 // +------------------------------+ | 382 // +------------------------------+ |
| (...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 780 #endif | 781 #endif |
| 781 } | 782 } |
| 782 | 783 |
| 783 bool PanelFrameView::IsWithinResizingArea( | 784 bool PanelFrameView::IsWithinResizingArea( |
| 784 const gfx::Point& mouse_location) const { | 785 const gfx::Point& mouse_location) const { |
| 785 panel::Resizability resizability = panel_view_->panel()->CanResizeByMouse(); | 786 panel::Resizability resizability = panel_view_->panel()->CanResizeByMouse(); |
| 786 int edge_hittest = GetFrameEdgeHitTest( | 787 int edge_hittest = GetFrameEdgeHitTest( |
| 787 mouse_location, size(), PanelView::kResizeInsideBoundsSize, resizability); | 788 mouse_location, size(), PanelView::kResizeInsideBoundsSize, resizability); |
| 788 return edge_hittest != HTNOWHERE; | 789 return edge_hittest != HTNOWHERE; |
| 789 } | 790 } |
| OLD | NEW |