diff options
6 files changed, 85 insertions, 55 deletions
diff --git a/chrome/browser/renderer_host/render_widget_host_view_views_gtk.cc b/chrome/browser/renderer_host/render_widget_host_view_views_gtk.cc index a8f721b..e8437a7 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_views_gtk.cc +++ b/chrome/browser/renderer_host/render_widget_host_view_views_gtk.cc @@ -7,6 +7,7 @@ #include <gdk/gdkx.h> #include <gtk/gtk.h> +#include "content/browser/renderer_host/gtk_window_utils.h" #include "ui/base/keycodes/keyboard_code_conversion_gtk.h" #include "ui/base/x/x11_util.h" #include "ui/gfx/gtk_native_view_id_manager.h" @@ -14,30 +15,6 @@ #include "views/widget/native_widget_gtk.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebScreenInfo.h" -#include "third_party/WebKit/Source/WebKit/chromium/public/x11/WebScreenInfoFactory.h" - -namespace { - -// TODO(oshima): This is a copy from RenderWidgetHostViewGtk. Replace this -// with gdk-less implementation. -void GetScreenInfoFromNativeWindow( - GdkWindow* gdk_window, WebKit::WebScreenInfo* results) { - GdkScreen* screen = gdk_drawable_get_screen(gdk_window); - *results = WebKit::WebScreenInfoFactory::screenInfo( - gdk_x11_drawable_get_xdisplay(gdk_window), - gdk_x11_screen_get_screen_number(screen)); - - // TODO(tony): We should move this code into WebScreenInfoFactory. - int monitor_number = gdk_screen_get_monitor_at_window(screen, gdk_window); - GdkRectangle monitor_rect; - gdk_screen_get_monitor_geometry(screen, monitor_number, &monitor_rect); - results->rect = WebKit::WebRect(monitor_rect.x, monitor_rect.y, - monitor_rect.width, monitor_rect.height); - // TODO(tony): Should we query _NET_WORKAREA to get the workarea? - results->availableRect = results->rect; -} - -} // namespace void RenderWidgetHostViewViews::UpdateCursor(const WebCursor& cursor) { // Optimize the common case, where the cursor hasn't changed. @@ -65,7 +42,8 @@ void RenderWidgetHostViewViews::DestroyPluginContainer( void RenderWidgetHostViewViews::GetScreenInfo(WebKit::WebScreenInfo* results) { views::Widget* widget = GetWidget() ? GetWidget()->GetTopLevelWidget() : NULL; if (widget) - GetScreenInfoFromNativeWindow(widget->GetNativeView()->window, results); + content::GetScreenInfoFromNativeWindow(widget->GetNativeView()->window, + results); } gfx::Rect RenderWidgetHostViewViews::GetRootWindowBounds() { @@ -114,13 +92,3 @@ void RenderWidgetHostViewViews::ShowCurrentCursor() { native_cursor_ = current_cursor_.GetNativeCursor(); } - -#if defined(TOUCH_UI) -// static -void RenderWidgetHostView::GetDefaultScreenInfo( - WebKit::WebScreenInfo* results) { - GdkWindow* gdk_window = - gdk_display_get_default_group(gdk_display_get_default()); - GetScreenInfoFromNativeWindow(gdk_window, results); -} -#endif diff --git a/content/browser/renderer_host/gtk_window_utils.cc b/content/browser/renderer_host/gtk_window_utils.cc new file mode 100644 index 0000000..a574941 --- /dev/null +++ b/content/browser/renderer_host/gtk_window_utils.cc @@ -0,0 +1,32 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/renderer_host/gtk_window_utils.h" + +#include <gdk/gdkx.h> +#include <gtk/gtk.h> + +#include "third_party/WebKit/Source/WebKit/chromium/public/WebScreenInfo.h" +#include "third_party/WebKit/Source/WebKit/chromium/public/x11/WebScreenInfoFactory.h" + +namespace content { + +void GetScreenInfoFromNativeWindow( + GdkWindow* gdk_window, WebKit::WebScreenInfo* results) { + GdkScreen* screen = gdk_drawable_get_screen(gdk_window); + *results = WebKit::WebScreenInfoFactory::screenInfo( + gdk_x11_drawable_get_xdisplay(gdk_window), + gdk_x11_screen_get_screen_number(screen)); + + // TODO(tony): We should move this code into WebScreenInfoFactory. + int monitor_number = gdk_screen_get_monitor_at_window(screen, gdk_window); + GdkRectangle monitor_rect; + gdk_screen_get_monitor_geometry(screen, monitor_number, &monitor_rect); + results->rect = WebKit::WebRect(monitor_rect.x, monitor_rect.y, + monitor_rect.width, monitor_rect.height); + // TODO(tony): Should we query _NET_WORKAREA to get the workarea? + results->availableRect = results->rect; +} + +} // namespace content diff --git a/content/browser/renderer_host/gtk_window_utils.h b/content/browser/renderer_host/gtk_window_utils.h new file mode 100644 index 0000000..3f3cf20 --- /dev/null +++ b/content/browser/renderer_host/gtk_window_utils.h @@ -0,0 +1,22 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_RENDERER_HOST_GTK_WINDOW_UTILS_H_ +#define CONTENT_BROWSER_RENDERER_HOST_GTK_WINDOW_UTILS_H_ +#pragma once + +typedef struct _GdkDrawable GdkWindow; + +namespace WebKit { +struct WebScreenInfo; +} + +namespace content { + +void GetScreenInfoFromNativeWindow( + GdkWindow* gdk_window, WebKit::WebScreenInfo* results); + +} // namespace content + +#endif // CONTENT_BROWSER_RENDERER_HOST_GTK_WINDOW_UTILS_H_ diff --git a/content/browser/renderer_host/render_widget_host_view.cc b/content/browser/renderer_host/render_widget_host_view.cc index f96559c..6f16071 100644 --- a/content/browser/renderer_host/render_widget_host_view.cc +++ b/content/browser/renderer_host/render_widget_host_view.cc @@ -1,11 +1,21 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "content/browser/renderer_host/render_widget_host_view.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebScreenInfo.h" + +#if defined(OS_MACOSX) #include "third_party/WebKit/Source/WebKit/chromium/public/mac/WebScreenInfoFactory.h" +#endif + +#if defined(TOUCH_UI) +#include <gdk/gdkx.h> +#include <gtk/gtk.h> + +#include "content/browser/renderer_host/gtk_window_utils.h" +#endif // TODO(jam): move this to render_widget_host_view_mac.mm when it moves to // content. @@ -17,6 +27,18 @@ void RenderWidgetHostView::GetDefaultScreenInfo( } #endif +// TODO(erg): move this to render_widget_host_view_views_gtk.cc when if it +// moves to content. +#if defined(TOUCH_UI) +// static +void RenderWidgetHostView::GetDefaultScreenInfo( + WebKit::WebScreenInfo* results) { + GdkWindow* gdk_window = + gdk_display_get_default_group(gdk_display_get_default()); + content::GetScreenInfoFromNativeWindow(gdk_window, results); +} +#endif + RenderWidgetHostView::~RenderWidgetHostView() {} void RenderWidgetHostView::SetBackground(const SkBitmap& background) { diff --git a/content/browser/renderer_host/render_widget_host_view_gtk.cc b/content/browser/renderer_host/render_widget_host_view_gtk.cc index ed63c9a..0e7733e 100644 --- a/content/browser/renderer_host/render_widget_host_view_gtk.cc +++ b/content/browser/renderer_host/render_widget_host_view_gtk.cc @@ -27,6 +27,7 @@ #include "base/utf_string_conversions.h" #include "content/browser/renderer_host/backing_store_x.h" #include "content/browser/renderer_host/gtk_im_context_wrapper.h" +#include "content/browser/renderer_host/gtk_window_utils.h" #include "content/browser/renderer_host/render_view_host.h" #include "content/browser/renderer_host/render_view_host_delegate.h" #include "content/browser/renderer_host/render_widget_host.h" @@ -94,23 +95,6 @@ GdkCursor* GetMozSpinningCursor() { return moz_spinning_cursor; } -void GetScreenInfoFromNativeWindow( - GdkWindow* gdk_window, WebKit::WebScreenInfo* results) { - GdkScreen* screen = gdk_drawable_get_screen(gdk_window); - *results = WebKit::WebScreenInfoFactory::screenInfo( - gdk_x11_drawable_get_xdisplay(gdk_window), - gdk_x11_screen_get_screen_number(screen)); - - // TODO(tony): We should move this code into WebScreenInfoFactory. - gint monitor_number = gdk_screen_get_monitor_at_window(screen, gdk_window); - GdkRectangle monitor_rect; - gdk_screen_get_monitor_geometry(screen, monitor_number, &monitor_rect); - results->rect = WebKit::WebRect(monitor_rect.x, monitor_rect.y, - monitor_rect.width, monitor_rect.height); - // TODO(tony): Should we query _NET_WORKAREA to get the workarea? - results->availableRect = results->rect; -} - } // namespace using WebKit::WebInputEventFactory; @@ -1174,7 +1158,7 @@ void RenderWidgetHostViewGtk::GetScreenInfo(WebKit::WebScreenInfo* results) { } if (!gdk_window) return; - GetScreenInfoFromNativeWindow(gdk_window, results); + content::GetScreenInfoFromNativeWindow(gdk_window, results); } gfx::Rect RenderWidgetHostViewGtk::GetRootWindowBounds() { @@ -1257,5 +1241,5 @@ void RenderWidgetHostView::GetDefaultScreenInfo( WebKit::WebScreenInfo* results) { GdkWindow* gdk_window = gdk_display_get_default_group(gdk_display_get_default()); - GetScreenInfoFromNativeWindow(gdk_window, results); + content::GetScreenInfoFromNativeWindow(gdk_window, results); } diff --git a/content/content_browser.gypi b/content/content_browser.gypi index bb24eb0..3387f86 100644 --- a/content/content_browser.gypi +++ b/content/content_browser.gypi @@ -333,6 +333,8 @@ 'browser/renderer_host/gtk_im_context_wrapper.h', 'browser/renderer_host/gtk_key_bindings_handler.cc', 'browser/renderer_host/gtk_key_bindings_handler.h', + 'browser/renderer_host/gtk_window_utils.cc', + 'browser/renderer_host/gtk_window_utils.h', 'browser/renderer_host/media/audio_common.cc', 'browser/renderer_host/media/audio_common.h', 'browser/renderer_host/media/audio_input_device_manager.cc', |