2008-03-07 Pierre-Luc Beaudoin <pierre-luc.beaudoin@collabora.co.uk>
Reviewed by Alp Toker.
http://bugs.webkit.org/show_bug.cgi?id=17681
GtkLauncher fails to render an element with position: fixed
Implement the required parts of PlatformScreenGtk.
* ChangeLog:
* platform/gtk/PlatformScreenGtk.cpp:
(WebCore::screenDepth):
(WebCore::screenIsMonochrome):
(WebCore::screenRect):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@30892 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/platform/gtk/PlatformScreenGtk.cpp b/WebCore/platform/gtk/PlatformScreenGtk.cpp
index 74c785f..69cebdc 100644
--- a/WebCore/platform/gtk/PlatformScreenGtk.cpp
+++ b/WebCore/platform/gtk/PlatformScreenGtk.cpp
@@ -39,8 +39,8 @@
{
ASSERT(widget->containingWindow() && GTK_WIDGET(widget->containingWindow())->window);
- gint dummy, depth;
- gdk_window_get_geometry(GTK_WIDGET(widget->containingWindow())->window, &dummy, &dummy, &dummy, &dummy, &depth);
+ gint depth;
+ gdk_window_get_geometry(GTK_WIDGET(widget->containingWindow())->window, 0, 0, 0, 0, &depth);
return depth;
}
@@ -50,16 +50,22 @@
return 8;
}
-bool screenIsMonochrome(Widget*)
+bool screenIsMonochrome(Widget* widget)
{
- notImplemented();
- return false;
+ return screenDepth(widget) < 2;
}
-FloatRect screenRect(Widget*)
+FloatRect screenRect(Widget* widget)
{
- notImplemented();
- return FloatRect();
+ ASSERT(widget->containingWindow() && GTK_WIDGET(widget->containingWindow())->window);
+
+ GdkScreen* screen = gtk_widget_get_screen(GTK_WIDGET(widget->containingWindow()));
+ gint monitor = gdk_screen_get_monitor_at_window(screen, GTK_WIDGET(widget->containingWindow())->window);
+ GdkRectangle geometry;
+
+ gdk_screen_get_monitor_geometry(screen, monitor, &geometry);
+
+ return FloatRect(geometry.x, geometry.y, geometry.width, geometry.height);
}
FloatRect screenAvailableRect(Widget*)