OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "views/view.h" | 5 #include "views/view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #ifndef NDEBUG | 8 #ifndef NDEBUG |
9 #include <iostream> | 9 #include <iostream> |
10 #endif | 10 #endif |
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
422 int y) { | 422 int y) { |
423 return NULL; | 423 return NULL; |
424 } | 424 } |
425 | 425 |
426 bool View::HitTest(const gfx::Point& l) const { | 426 bool View::HitTest(const gfx::Point& l) const { |
427 if (l.x() >= 0 && l.x() < static_cast<int>(width()) && | 427 if (l.x() >= 0 && l.x() < static_cast<int>(width()) && |
428 l.y() >= 0 && l.y() < static_cast<int>(height())) { | 428 l.y() >= 0 && l.y() < static_cast<int>(height())) { |
429 if (HasHitTestMask()) { | 429 if (HasHitTestMask()) { |
430 gfx::Path mask; | 430 gfx::Path mask; |
431 GetHitTestMask(&mask); | 431 GetHitTestMask(&mask); |
| 432 ScopedRegion rgn(mask.CreateNativeRegion()); |
| 433 // TODO: can this use SkRegion's contains instead? |
432 #if defined(OS_WIN) | 434 #if defined(OS_WIN) |
433 ScopedHRGN rgn(mask.CreateHRGN()); | |
434 return !!PtInRegion(rgn, l.x(), l.y()); | 435 return !!PtInRegion(rgn, l.x(), l.y()); |
435 #elif defined(OS_LINUX) | 436 #elif defined(OS_LINUX) |
436 GdkRegion* region = mask.CreateGdkRegion(); | 437 return gdk_region_point_in(rgn.Get(), l.x(), l.y()); |
437 bool result = gdk_region_point_in(region, l.x(), l.y()); | |
438 gdk_region_destroy(region); | |
439 return result; | |
440 #endif | 438 #endif |
441 } | 439 } |
442 // No mask, but inside our bounds. | 440 // No mask, but inside our bounds. |
443 return true; | 441 return true; |
444 } | 442 } |
445 // Outside our bounds. | 443 // Outside our bounds. |
446 return false; | 444 return false; |
447 } | 445 } |
448 | 446 |
449 void View::SetContextMenuController(ContextMenuController* menu_controller) { | 447 void View::SetContextMenuController(ContextMenuController* menu_controller) { |
(...skipping 985 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1435 start_x = start_y = 0; | 1433 start_x = start_y = 0; |
1436 } | 1434 } |
1437 | 1435 |
1438 void View::DragInfo::PossibleDrag(int x, int y) { | 1436 void View::DragInfo::PossibleDrag(int x, int y) { |
1439 possible_drag = true; | 1437 possible_drag = true; |
1440 start_x = x; | 1438 start_x = x; |
1441 start_y = y; | 1439 start_y = y; |
1442 } | 1440 } |
1443 | 1441 |
1444 } // namespace | 1442 } // namespace |
OLD | NEW |