summaryrefslogtreecommitdiffstats
path: root/views/window/custom_frame_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'views/window/custom_frame_view.cc')
-rw-r--r--views/window/custom_frame_view.cc20
1 files changed, 18 insertions, 2 deletions
diff --git a/views/window/custom_frame_view.cc b/views/window/custom_frame_view.cc
index e67a5c2..5f62219 100644
--- a/views/window/custom_frame_view.cc
+++ b/views/window/custom_frame_view.cc
@@ -17,7 +17,6 @@
#include "grit/app_resources.h"
#include "grit/app_strings.h"
#include "views/window/client_view.h"
-#include "views/window/window_shape.h"
#if defined(OS_LINUX)
#include "views/window/hit_test.h"
#endif
@@ -188,10 +187,27 @@ int CustomFrameView::NonClientHitTest(const gfx::Point& point) {
void CustomFrameView::GetWindowMask(const gfx::Size& size,
gfx::Path* window_mask) {
DCHECK(window_mask);
+
if (frame_->IsMaximized())
return;
- views::GetDefaultWindowMask(size, window_mask);
+ // Redefine the window visible region for the new size.
+ window_mask->moveTo(0, 3);
+ window_mask->lineTo(1, 2);
+ window_mask->lineTo(1, 1);
+ window_mask->lineTo(2, 1);
+ window_mask->lineTo(3, 0);
+
+ window_mask->lineTo(SkIntToScalar(size.width() - 3), 0);
+ window_mask->lineTo(SkIntToScalar(size.width() - 2), 1);
+ window_mask->lineTo(SkIntToScalar(size.width() - 1), 1);
+ window_mask->lineTo(SkIntToScalar(size.width() - 1), 2);
+ window_mask->lineTo(SkIntToScalar(size.width()), 3);
+
+ window_mask->lineTo(SkIntToScalar(size.width()),
+ SkIntToScalar(size.height()));
+ window_mask->lineTo(0, SkIntToScalar(size.height()));
+ window_mask->close();
}
void CustomFrameView::EnableClose(bool enable) {