Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Side by Side Diff: views/screen_win.cc

Issue 6380007: Don't allow new windows to be created outside the monitor's work area.... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/screen.h" 5 #include "views/screen.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 8
9 namespace views { 9 namespace views {
10 10
(...skipping 15 matching lines...) Expand all
26 26
27 // static 27 // static
28 gfx::Rect Screen::GetMonitorAreaNearestWindow(gfx::NativeWindow window) { 28 gfx::Rect Screen::GetMonitorAreaNearestWindow(gfx::NativeWindow window) {
29 MONITORINFO monitor_info; 29 MONITORINFO monitor_info;
30 monitor_info.cbSize = sizeof(monitor_info); 30 monitor_info.cbSize = sizeof(monitor_info);
31 GetMonitorInfo(MonitorFromWindow(window, MONITOR_DEFAULTTONEAREST), 31 GetMonitorInfo(MonitorFromWindow(window, MONITOR_DEFAULTTONEAREST),
32 &monitor_info); 32 &monitor_info);
33 return gfx::Rect(monitor_info.rcMonitor); 33 return gfx::Rect(monitor_info.rcMonitor);
34 } 34 }
35 35
36 static gfx::Rect GetMonitorAreaOrWorkAreaNearestPoint(const gfx::Point& point,
37 bool work_area) {
sky 2011/01/27 00:22:07 align this with ( on previous line.
38 POINT initial_loc = { point.x(), point.y() };
39 HMONITOR monitor = MonitorFromPoint(initial_loc, MONITOR_DEFAULTTONEAREST);
40 MONITORINFO mi = {0};
41 mi.cbSize = sizeof(mi);
42 if (monitor && GetMonitorInfo(monitor, &mi))
43 return gfx::Rect(work_area ? mi.rcWork : mi.rcMonitor);
44 return gfx::Rect();
45 }
46
47 // static
48 gfx::Rect Screen::GetMonitorWorkAreaNearestPoint(const gfx::Point& point) {
49 return GetMonitorAreaOrWorkAreaNearestPoint(point, true);
50 }
51
36 // static 52 // static
37 gfx::Rect Screen::GetMonitorAreaNearestPoint(const gfx::Point& point) { 53 gfx::Rect Screen::GetMonitorAreaNearestPoint(const gfx::Point& point) {
38 POINT initial_loc = { point.x(), point.y() }; 54 return GetMonitorAreaOrWorkAreaNearestPoint(point, false);
39 HMONITOR monitor = MonitorFromPoint(initial_loc, MONITOR_DEFAULTTONEAREST);
40 if (!monitor)
41 return gfx::Rect();
42
43 MONITORINFO mi = {0};
44 mi.cbSize = sizeof(mi);
45 GetMonitorInfo(monitor, &mi);
46 return gfx::Rect(mi.rcMonitor);
47 } 55 }
48 56
49 gfx::NativeWindow Screen::GetWindowAtCursorScreenPoint() { 57 gfx::NativeWindow Screen::GetWindowAtCursorScreenPoint() {
50 POINT location; 58 POINT location;
51 return GetCursorPos(&location) ? WindowFromPoint(location) : NULL; 59 return GetCursorPos(&location) ? WindowFromPoint(location) : NULL;
52 } 60 }
53 61
54 } // namespace 62 } // namespace
55 63
OLDNEW
« chrome/browser/ui/views/tabs/dragged_tab_controller.cc ('K') | « views/screen_gtk.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698