2011-06-17 Joone Hur <joone.hur@collabora.co.uk>
authorjoone.hur@collabora.co.uk <joone.hur@collabora.co.uk@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 17 Jun 2011 11:49:58 +0000 (11:49 +0000)
committerjoone.hur@collabora.co.uk <joone.hur@collabora.co.uk@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 17 Jun 2011 11:49:58 +0000 (11:49 +0000)
        Reviewed by Martin Robinson.

        [GTK] Replace GdkRectangle by cairo_rectangle_int_t
        https://bugs.webkit.org/show_bug.cgi?id=60687

        Replace GdkRectangle by cairo_rectangle_int_t.

        * configure.ac: Check whether Cairo version is higher than 1.10.
2011-06-17  Joone Hur  <joone.hur@collabora.co.uk>

        Reviewed by Martin Robinson.

        [GTK] Replace GdkRectangle by cairo_rectangle_int_t
        https://bugs.webkit.org/show_bug.cgi?id=60687

        Replace GdkRectangle by cairo_rectangle_int_t.

        * wtf/gobject/GTypedefs.h: Replace GdkRectangle by cairo_rectangle_int_t.
2011-06-17  Joone Hur  <joone.hur@collabora.co.uk>

        Reviewed by Martin Robinson.

        [GTK] Replace GdkRectangle by cairo_rectangle_int_t
        https://bugs.webkit.org/show_bug.cgi?id=60687

        Replace GdkRectangle by cairo_rectangle_int_t.

        * GNUmakefile.list.am: Added IntRectCairo.cpp instead of IntRectGtk.cpp
        * platform/graphics/IntRect.h: IntRect class can be instantiated through the given cairo_rectangle_int_t
        instead of GdkRectangle.
        * platform/graphics/cairo/IntRectCairo.cpp: Add the constructor and operator for handling cairo_rectangle_int_t.
        (WebCore::IntRect::IntRect):
        (WebCore::IntRect::operator cairo_rectangle_int_t):
        * platform/graphics/gtk/IntRectGtk.cpp: Include this file only for Gtk+2.
        * platform/gtk/GtkPluginWidget.cpp: Replace GdkRectangle by cairo_rectangle_int_t.
        (WebCore::GtkPluginWidget::invalidateRect):
2011-06-17  Joone Hur  <joone.hur@collabora.co.uk>

        Reviewed by Martin Robinson.

        [GTK] Replace GdkRectangle by cairo_rectangle_int_t
        https://bugs.webkit.org/show_bug.cgi?id=60687

        Replace GdkRectangle by cairo_rectangle_int_t.

        * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: Replace GdkRectangle by cairo_rectangle_int_t.
        (DumpRenderTreeSupportGtk::firstRectForCharacterRange):
        (DumpRenderTreeSupportGtk::rectangleForSelection):
        * WebCoreSupport/DumpRenderTreeSupportGtk.h: Ditto.
2011-06-17  Joone Hur  <joone.hur@collabora.co.uk>

        Reviewed by Martin Robinson.

        [GTK] Replace GdkRectangle by cairo_rectangle_int_t
        https://bugs.webkit.org/show_bug.cgi?id=60687

        Replace GdkRectangle by cairo_rectangle_int_t.

        * DumpRenderTree/gtk/PixelDumpSupportGtk.cpp: Replace GdkRectangle by cairo_rectangle_int_t.
        (createBitmapContextFromWebView):
        * DumpRenderTree/gtk/TextInputController.cpp: Ditto.
        (firstRectForCharacterRangeCallback):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@89133 268f45cc-cd09-0410-ab3c-d52691b4dbfc

16 files changed:
ChangeLog
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/wtf/gobject/GTypedefs.h
Source/WebCore/ChangeLog
Source/WebCore/GNUmakefile.list.am
Source/WebCore/platform/graphics/IntRect.h
Source/WebCore/platform/graphics/cairo/IntRectCairo.cpp [new file with mode: 0644]
Source/WebCore/platform/graphics/gtk/IntRectGtk.cpp
Source/WebCore/platform/gtk/GtkPluginWidget.cpp
Source/WebKit/gtk/ChangeLog
Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp
Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h
Tools/ChangeLog
Tools/DumpRenderTree/gtk/PixelDumpSupportGtk.cpp
Tools/DumpRenderTree/gtk/TextInputController.cpp
configure.ac

index b08f5e5..dae61f9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2011-06-17  Joone Hur  <joone.hur@collabora.co.uk>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Replace GdkRectangle by cairo_rectangle_int_t
+        https://bugs.webkit.org/show_bug.cgi?id=60687
+
+        Replace GdkRectangle by cairo_rectangle_int_t.
+
+        * configure.ac: Check whether Cairo version is higher than 1.10.
+
 2011-06-16  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
 
         Reviewed by Eric Seidel.
index 9c7fe8f..a21a7fc 100644 (file)
@@ -1,3 +1,14 @@
+2011-06-17  Joone Hur  <joone.hur@collabora.co.uk>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Replace GdkRectangle by cairo_rectangle_int_t
+        https://bugs.webkit.org/show_bug.cgi?id=60687
+
+        Replace GdkRectangle by cairo_rectangle_int_t.
+
+        * wtf/gobject/GTypedefs.h: Replace GdkRectangle by cairo_rectangle_int_t.
+
 2011-06-16  Gavin Barraclough  <barraclough@apple.com>
 
         Reviewed by Oliver Hunt.
index c7f7ac4..c878f33 100644 (file)
@@ -63,6 +63,7 @@ typedef union _GdkEvent GdkEvent;
 
 #if USE(CAIRO)
 typedef struct _cairo_surface cairo_surface_t;
+typedef struct _cairo_rectangle_int cairo_rectangle_int_t;
 #endif
 
 #if PLATFORM(GTK)
@@ -87,8 +88,6 @@ typedef struct _GdkRectangle GdkRectangle;
 typedef struct _GdkDrawable GdkWindow;
 #else
 typedef struct _GdkWindow GdkWindow;
-typedef struct _cairo_rectangle_int cairo_rectangle_int_t;
-typedef cairo_rectangle_int_t GdkRectangle;
 typedef struct _GtkStyleContext GtkStyleContext;
 #endif
 
index d3ac28c..5b20470 100644 (file)
@@ -1,3 +1,22 @@
+2011-06-17  Joone Hur  <joone.hur@collabora.co.uk>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Replace GdkRectangle by cairo_rectangle_int_t
+        https://bugs.webkit.org/show_bug.cgi?id=60687
+
+        Replace GdkRectangle by cairo_rectangle_int_t.
+
+        * GNUmakefile.list.am: Added IntRectCairo.cpp instead of IntRectGtk.cpp
+        * platform/graphics/IntRect.h: IntRect class can be instantiated through the given cairo_rectangle_int_t 
+        instead of GdkRectangle.
+        * platform/graphics/cairo/IntRectCairo.cpp: Add the constructor and operator for handling cairo_rectangle_int_t.
+        (WebCore::IntRect::IntRect): 
+        (WebCore::IntRect::operator cairo_rectangle_int_t):
+        * platform/graphics/gtk/IntRectGtk.cpp: Include this file only for Gtk+2.
+        * platform/gtk/GtkPluginWidget.cpp: Replace GdkRectangle by cairo_rectangle_int_t.
+        (WebCore::GtkPluginWidget::invalidateRect):
+
 2011-06-17  Alexander Pavlov  <apavlov@chromium.org>
 
         Reviewed by David Hyatt.
index e77d804..919364f 100644 (file)
@@ -3755,6 +3755,7 @@ webcoregtk_sources += \
        Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp \
        Source/WebCore/platform/graphics/cairo/ImageBufferDataCairo.h \
        Source/WebCore/platform/graphics/cairo/ImageCairo.cpp \
+       Source/WebCore/platform/graphics/cairo/IntRectCairo.cpp \
        Source/WebCore/platform/graphics/cairo/OwnPtrCairo.cpp \
        Source/WebCore/platform/graphics/cairo/OwnPtrCairo.h \
        Source/WebCore/platform/graphics/cairo/PathCairo.cpp \
index a5e8ca1..bd3e99b 100644 (file)
@@ -50,9 +50,6 @@ QT_END_NAMESPACE
 #elif PLATFORM(GTK)
 #ifdef GTK_API_VERSION_2
 typedef struct _GdkRectangle GdkRectangle;
-#else
-typedef struct _cairo_rectangle_int cairo_rectangle_int_t;
-typedef cairo_rectangle_int_t GdkRectangle;
 #endif
 #elif PLATFORM(HAIKU)
 class BRect;
@@ -60,6 +57,10 @@ class BRect;
 typedef struct _Eina_Rectangle Eina_Rectangle;
 #endif
 
+#if USE(CAIRO)
+typedef struct _cairo_rectangle_int cairo_rectangle_int_t;
+#endif
+
 #if PLATFORM(WX)
 class wxRect;
 #endif
@@ -184,8 +185,10 @@ public:
     IntRect(const QRect&);
     operator QRect() const;
 #elif PLATFORM(GTK)
+#ifdef GTK_API_VERSION_2
     IntRect(const GdkRectangle&);
     operator GdkRectangle() const;
+#endif
 #elif PLATFORM(HAIKU)
     explicit IntRect(const BRect&);
     operator BRect() const;
@@ -194,6 +197,11 @@ public:
     operator Eina_Rectangle() const;
 #endif
 
+#if USE(CAIRO)
+    IntRect(const cairo_rectangle_int_t&);
+    operator cairo_rectangle_int_t() const;
+#endif
+
 #if USE(CG) || USE(SKIA_ON_MAC_CHROME)
     operator CGRect() const;
 #endif
diff --git a/Source/WebCore/platform/graphics/cairo/IntRectCairo.cpp b/Source/WebCore/platform/graphics/cairo/IntRectCairo.cpp
new file mode 100644 (file)
index 0000000..cef3af9
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2007 Alp Toker <alp@atoker.com>
+ * Copyright (C) 2011 Collabora Ltd.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+#include "IntRect.h"
+
+#include <cairo.h>
+
+namespace WebCore {
+
+IntRect::IntRect(const cairo_rectangle_int_t& r)
+    : m_location(IntPoint(r.x, r.y))
+    , m_size(r.width, r.height)
+{
+}
+
+IntRect::operator cairo_rectangle_int_t() const
+{
+    cairo_rectangle_int_t r = { x(), y(), width(), height() };
+    return r;
+}
+
+}
index aaa1944..1f31281 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <gdk/gdk.h>
 
+#ifdef GTK_API_VERSION_2
 namespace WebCore {
 
 IntRect::IntRect(const GdkRectangle& r)
@@ -37,5 +38,4 @@ IntRect::operator GdkRectangle() const
 }
 
 }
-
-// vim: ts=4 sw=4 et
+#endif
index 331f60f..8202359 100644 (file)
@@ -41,7 +41,7 @@ GtkPluginWidget::GtkPluginWidget(GtkWidget* widget)
     gtk_widget_hide(widget);
 }
 
-void GtkPluginWidget::invalidateRect(const IntRect& _rect)
+void GtkPluginWidget::invalidateRect(const IntRect& coreRect)
 {
     /* no need to */
     if (!gtk_widget_get_has_window(platformWidget()))
@@ -51,7 +51,7 @@ void GtkPluginWidget::invalidateRect(const IntRect& _rect)
     if (!window)
         return;
 
-    GdkRectangle rect = _rect;
+    GdkRectangle rect = coreRect;
     gdk_window_invalidate_rect(window, &rect, FALSE);
 }
 
index 9459cf0..fe52da7 100644 (file)
@@ -1,3 +1,17 @@
+2011-06-17  Joone Hur  <joone.hur@collabora.co.uk>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Replace GdkRectangle by cairo_rectangle_int_t
+        https://bugs.webkit.org/show_bug.cgi?id=60687
+
+        Replace GdkRectangle by cairo_rectangle_int_t.
+
+        * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: Replace GdkRectangle by cairo_rectangle_int_t.
+        (DumpRenderTreeSupportGtk::firstRectForCharacterRange):
+        (DumpRenderTreeSupportGtk::rectangleForSelection):
+        * WebCoreSupport/DumpRenderTreeSupportGtk.h: Ditto.
+
 2011-06-16  Sheriff Bot  <webkit.review.bot@gmail.com>
 
         Unreviewed, rolling out r89026.
index c18e9cf..1ec03c7 100644 (file)
@@ -586,7 +586,7 @@ void DumpRenderTreeSupportGtk::confirmComposition(WebKitWebView* webView, const
     editor->confirmComposition();
 }
 
-bool DumpRenderTreeSupportGtk::firstRectForCharacterRange(WebKitWebView* webView, int location, int length, GdkRectangle* rect)
+bool DumpRenderTreeSupportGtk::firstRectForCharacterRange(WebKitWebView* webView, int location, int length, cairo_rectangle_int_t* rect)
 {
     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), false);
     g_return_val_if_fail(rect, false);
@@ -824,7 +824,7 @@ void DumpRenderTreeSupportGtk::setValueForUser(JSContextRef context, JSValueRef
     inputElement->setValueForUser(String::fromUTF8(valueBuffer.get()));
 }
 
-void DumpRenderTreeSupportGtk::rectangleForSelection(WebKitWebFrame* frame, GdkRectangle* rectangle)
+void DumpRenderTreeSupportGtk::rectangleForSelection(WebKitWebFrame* frame, cairo_rectangle_int_t* rectangle)
 {
     Frame* coreFrame = core(frame);
     if (!coreFrame)
index caff578..ac1c55d 100644 (file)
@@ -99,7 +99,7 @@ public:
     static bool findString(WebKitWebView*, const gchar*, WebKitFindOptions);
     static double defaultMinimumTimerInterval(); // Not really tied to WebView
     static void setMinimumTimerInterval(WebKitWebView*, double);
-    static void rectangleForSelection(WebKitWebFrame*, GdkRectangle*);
+    static void rectangleForSelection(WebKitWebFrame*, cairo_rectangle_int_t*);
     static void scalePageBy(WebKitWebView*, float, float, float);
     static void setSmartInsertDeleteEnabled(WebKitWebView*, bool);
 
@@ -112,7 +112,7 @@ public:
     static bool hasComposition(WebKitWebView*);
     static bool compositionRange(WebKitWebView*, int* start, int* length);
     static void confirmComposition(WebKitWebView*, const char*);
-    static bool firstRectForCharacterRange(WebKitWebView*, int location, int length, GdkRectangle*);
+    static bool firstRectForCharacterRange(WebKitWebView*, int location, int length, cairo_rectangle_int_t*);
     static bool selectedRange(WebKitWebView*, int* start, int* length);
 
     // GC
index 97c617c..c591216 100644 (file)
@@ -1,3 +1,17 @@
+2011-06-17  Joone Hur  <joone.hur@collabora.co.uk>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Replace GdkRectangle by cairo_rectangle_int_t
+        https://bugs.webkit.org/show_bug.cgi?id=60687
+
+        Replace GdkRectangle by cairo_rectangle_int_t.
+
+        * DumpRenderTree/gtk/PixelDumpSupportGtk.cpp: Replace GdkRectangle by cairo_rectangle_int_t.
+        (createBitmapContextFromWebView):
+        * DumpRenderTree/gtk/TextInputController.cpp: Ditto.
+        (firstRectForCharacterRangeCallback):
+
 2011-06-16  Dmitry Lomov  <dslomov@google.com>
 
         Reviewed by David Levin.
index 2bd8fe2..3eabfd9 100644 (file)
@@ -60,7 +60,7 @@ PassRefPtr<BitmapContext> createBitmapContextFromWebView(bool, bool, bool, bool
 #endif
 
     if (drawSelectionRect) {
-        GdkRectangle rectangle;
+        cairo_rectangle_int_t rectangle;
         DumpRenderTreeSupportGtk::rectangleForSelection(mainFrame, &rectangle);
 
         cairo_set_line_width(context, 1.0);
index 8ccc032..f9b2a6e 100644 (file)
@@ -129,7 +129,7 @@ static JSValueRef firstRectForCharacterRangeCallback(JSContextRef context, JSObj
     int length = static_cast<int>(JSValueToNumber(context, arguments[1], exception));
     ASSERT(!exception || !*exception);
 
-    GdkRectangle rect;
+    cairo_rectangle_int_t rect;
     if (!DumpRenderTreeSupportGtk::firstRectForCharacterRange(view, location, length, &rect))
         return JSValueMakeUndefined(context);
 
index b55fbef..ca835be 100644 (file)
@@ -255,7 +255,7 @@ fi
 
 # minimum base dependencies
 LIBSOUP_REQUIRED_VERSION=2.33.6
-CAIRO_REQUIRED_VERSION=1.6
+CAIRO_REQUIRED_VERSION=1.10
 FONTCONFIG_REQUIRED_VERSION=2.4
 FREETYPE2_REQUIRED_VERSION=9.0
 LIBXML_REQUIRED_VERSION=2.6