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 "ui/gfx/screen.h" | 5 #include "ui/gfx/screen.h" |
6 | 6 |
7 #include <gdk/gdkx.h> | 7 #include <gdk/gdkx.h> |
8 #include <gtk/gtk.h> | 8 #include <gtk/gtk.h> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 gfx::Rect NativePrimaryMonitorBounds() { | 50 gfx::Rect NativePrimaryMonitorBounds() { |
51 GdkScreen* screen = gdk_screen_get_default(); | 51 GdkScreen* screen = gdk_screen_get_default(); |
52 GdkRectangle rect; | 52 GdkRectangle rect; |
53 gdk_screen_get_monitor_geometry(screen, 0, &rect); | 53 gdk_screen_get_monitor_geometry(screen, 0, &rect); |
54 return gfx::Rect(rect); | 54 return gfx::Rect(rect); |
55 } | 55 } |
56 | 56 |
57 gfx::Rect GetMonitorAreaNearestWindow(gfx::NativeView view) { | 57 gfx::Rect GetMonitorAreaNearestWindow(gfx::NativeView view) { |
58 GdkScreen* screen = gdk_screen_get_default(); | 58 GdkScreen* screen = gdk_screen_get_default(); |
59 gint monitor_num = 0; | 59 gint monitor_num = 0; |
60 if (view) { | 60 if (view && GTK_IS_WINDOW(view)) { |
61 GtkWidget* top_level = gtk_widget_get_toplevel(view); | 61 GtkWidget* top_level = gtk_widget_get_toplevel(view); |
62 DCHECK(GTK_IS_WINDOW(top_level)); | 62 DCHECK(GTK_IS_WINDOW(top_level)); |
63 GtkWindow* window = GTK_WINDOW(top_level); | 63 GtkWindow* window = GTK_WINDOW(top_level); |
64 screen = gtk_window_get_screen(window); | 64 screen = gtk_window_get_screen(window); |
65 monitor_num = gdk_screen_get_monitor_at_window( | 65 monitor_num = gdk_screen_get_monitor_at_window( |
66 screen, | 66 screen, |
67 gtk_widget_get_window(top_level)); | 67 gtk_widget_get_window(top_level)); |
68 } | 68 } |
69 GdkRectangle bounds; | 69 GdkRectangle bounds; |
70 gdk_screen_get_monitor_geometry(screen, monitor_num, &bounds); | 70 gdk_screen_get_monitor_geometry(screen, monitor_num, &bounds); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 | 146 |
147 // static | 147 // static |
148 int Screen::GetNumMonitors() { | 148 int Screen::GetNumMonitors() { |
149 // This query is kinda bogus for Linux -- do we want number of X screens? | 149 // This query is kinda bogus for Linux -- do we want number of X screens? |
150 // The number of monitors Xinerama has? We'll just use whatever GDK uses. | 150 // The number of monitors Xinerama has? We'll just use whatever GDK uses. |
151 GdkScreen* screen = gdk_screen_get_default(); | 151 GdkScreen* screen = gdk_screen_get_default(); |
152 return gdk_screen_get_n_monitors(screen); | 152 return gdk_screen_get_n_monitors(screen); |
153 } | 153 } |
154 | 154 |
155 } // namespace gfx | 155 } // namespace gfx |
OLD | NEW |