summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos
diff options
context:
space:
mode:
authorpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-06 05:15:03 +0000
committerpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-06 05:15:03 +0000
commit06f35a420e28433170a6c25ac36e21683b8a4430 (patch)
treeba97fcf6f966ad3f5b8bc95143f687e83a2bdf93 /chrome/browser/chromeos
parent6d01474a4466109350986371be9aeb5bfda1eecc (diff)
downloadchromium_src-06f35a420e28433170a6c25ac36e21683b8a4430.zip
chromium_src-06f35a420e28433170a6c25ac36e21683b8a4430.tar.gz
chromium_src-06f35a420e28433170a6c25ac36e21683b8a4430.tar.bz2
Rework nonclient hittest plumbing so the NonClientFrameView is responsible for the whole window's hit testing. Make use of this in the glass frame to add support for HTSYSMENU. Doing this in the opaque frame will be more complex, so that's coming next.
BUG=6961 TEST=Single- and double-clicks on the upper left corner of a Chrome window in Aero glass mode should trigger the system menu and the window closing, respectively. Review URL: http://codereview.chromium.org/573042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38301 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos')
-rw-r--r--chrome/browser/chromeos/browser_view.cc6
-rw-r--r--chrome/browser/chromeos/login/login_wizard_view.cc5
2 files changed, 6 insertions, 5 deletions
diff --git a/chrome/browser/chromeos/browser_view.cc b/chrome/browser/chromeos/browser_view.cc
index cffeb67..5313f63 100644
--- a/chrome/browser/chromeos/browser_view.cc
+++ b/chrome/browser/chromeos/browser_view.cc
@@ -189,10 +189,8 @@ class BrowserViewLayout : public ::BrowserViewLayout {
views::View::ConvertPointToView(
browser_view_->GetParent(), browser_view_,
&point_in_browser_view_coords);
- if (IsPointInViewsInTitleArea(point_in_browser_view_coords)) {
- return HTCLIENT;
- }
- return ::BrowserViewLayout::NonClientHitTest(point);
+ return IsPointInViewsInTitleArea(point_in_browser_view_coords) ?
+ HTCLIENT : ::BrowserViewLayout::NonClientHitTest(point);
}
private:
diff --git a/chrome/browser/chromeos/login/login_wizard_view.cc b/chrome/browser/chromeos/login/login_wizard_view.cc
index e658c68..526f2f4 100644
--- a/chrome/browser/chromeos/login/login_wizard_view.cc
+++ b/chrome/browser/chromeos/login/login_wizard_view.cc
@@ -26,6 +26,7 @@
#include "chrome/common/x11_util.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
+#include "views/window/hit_test.h"
#include "views/window/non_client_view.h"
#include "views/window/window.h"
#include "views/window/window_gtk.h"
@@ -61,7 +62,9 @@ class LoginWizardNonClientFrameView : public views::NonClientFrameView {
}
// There is no non client area.
- virtual int NonClientHitTest(const gfx::Point& point) { return 0; }
+ virtual int NonClientHitTest(const gfx::Point& point) {
+ return bounds().Contains(point) ? HTCLIENT : HTNOWHERE;
+ }
// There is no non client area.
virtual void GetWindowMask(const gfx::Size& size,