summaryrefslogtreecommitdiffstats
path: root/WebKit/gtk/webkit
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/gtk/webkit')
-rw-r--r--WebKit/gtk/webkit/webkitprivate.h11
-rw-r--r--WebKit/gtk/webkit/webkitwebbackforwardlist.cpp42
-rw-r--r--WebKit/gtk/webkit/webkitwebview.cpp115
3 files changed, 142 insertions, 26 deletions
diff --git a/WebKit/gtk/webkit/webkitprivate.h b/WebKit/gtk/webkit/webkitprivate.h
index 616ee6b..261c437 100644
--- a/WebKit/gtk/webkit/webkitprivate.h
+++ b/WebKit/gtk/webkit/webkitprivate.h
@@ -46,7 +46,7 @@
#include <webkit/webkitsecurityorigin.h>
#include "ArchiveResource.h"
-#include "BackForwardList.h"
+#include "BackForwardListImpl.h"
#include "DataObjectGtk.h"
#include "DragActions.h"
#include "Frame.h"
@@ -92,7 +92,7 @@ namespace WebKit {
WebCore::HistoryItem* core(WebKitWebHistoryItem*);
WebKitWebHistoryItem* kit(PassRefPtr<WebCore::HistoryItem>);
- WebCore::BackForwardList* core(WebKitWebBackForwardList*);
+ WebCore::BackForwardListImpl* core(WebKitWebBackForwardList*);
WebKitWebNavigationReason kit(WebCore::NavigationType type);
WebCore::NavigationType core(WebKitWebNavigationReason reason);
@@ -154,6 +154,13 @@ extern "C" {
PlatformRefPtr<GtkAdjustment> horizontalAdjustment;
PlatformRefPtr<GtkAdjustment> verticalAdjustment;
+#ifndef GTK_API_VERSION_2
+ // GtkScrollablePolicy needs to be checked when
+ // driving the scrollable adjustment values
+ GtkScrollablePolicy horizontalScrollingPolicy;
+ GtkScrollablePolicy verticalScrollingPolicy;
+#endif
+
gboolean zoomFullContent;
WebKitLoadStatus loadStatus;
CString encoding;
diff --git a/WebKit/gtk/webkit/webkitwebbackforwardlist.cpp b/WebKit/gtk/webkit/webkitwebbackforwardlist.cpp
index 4789de9..c5913fd 100644
--- a/WebKit/gtk/webkit/webkitwebbackforwardlist.cpp
+++ b/WebKit/gtk/webkit/webkitwebbackforwardlist.cpp
@@ -27,7 +27,7 @@
#include <glib.h>
-#include "BackForwardList.h"
+#include "BackForwardListImpl.h"
#include "HistoryItem.h"
/**
@@ -53,7 +53,7 @@
using namespace WebKit;
struct _WebKitWebBackForwardListPrivate {
- WebCore::BackForwardList* backForwardList;
+ WebCore::BackForwardListImpl* backForwardList;
gboolean disposed;
};
@@ -64,7 +64,7 @@ G_DEFINE_TYPE(WebKitWebBackForwardList, webkit_web_back_forward_list, G_TYPE_OBJ
static void webkit_web_back_forward_list_dispose(GObject* object)
{
WebKitWebBackForwardList* list = WEBKIT_WEB_BACK_FORWARD_LIST(object);
- WebCore::BackForwardList* backForwardList = core(list);
+ WebCore::BackForwardListImpl* backForwardList = core(list);
WebKitWebBackForwardListPrivate* priv = list->priv;
if (!priv->disposed) {
@@ -115,7 +115,7 @@ WebKitWebBackForwardList* webkit_web_back_forward_list_new_with_web_view(WebKitW
webBackForwardList = WEBKIT_WEB_BACK_FORWARD_LIST(g_object_new(WEBKIT_TYPE_WEB_BACK_FORWARD_LIST, NULL));
WebKitWebBackForwardListPrivate* priv = webBackForwardList->priv;
- priv->backForwardList = core(webView)->backForwardList();
+ priv->backForwardList = static_cast<BackForwardListImpl*>(core(webView)->backForwardList());
priv->backForwardList->setEnabled(TRUE);
return webBackForwardList;
@@ -131,7 +131,7 @@ void webkit_web_back_forward_list_go_forward(WebKitWebBackForwardList* webBackFo
{
g_return_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList));
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
if (backForwardList->enabled())
backForwardList->goForward();
}
@@ -146,7 +146,7 @@ void webkit_web_back_forward_list_go_back(WebKitWebBackForwardList* webBackForwa
{
g_return_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList));
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
if (backForwardList->enabled())
backForwardList->goBack();
}
@@ -169,7 +169,7 @@ gboolean webkit_web_back_forward_list_contains_item(WebKitWebBackForwardList* we
g_return_val_if_fail(historyItem != NULL, FALSE);
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
return (backForwardList->enabled() ? backForwardList->containsItem(historyItem) : FALSE);
}
@@ -187,7 +187,7 @@ void webkit_web_back_forward_list_go_to_item(WebKitWebBackForwardList* webBackFo
g_return_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem));
WebCore::HistoryItem* historyItem = core(webHistoryItem);
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
if (backForwardList->enabled() && historyItem)
backForwardList->goToItem(historyItem);
@@ -206,7 +206,7 @@ GList* webkit_web_back_forward_list_get_forward_list_with_limit(WebKitWebBackFor
{
g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL);
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
if (!backForwardList || !backForwardList->enabled())
return NULL;
@@ -236,7 +236,7 @@ GList* webkit_web_back_forward_list_get_back_list_with_limit(WebKitWebBackForwar
{
g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL);
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
if (!backForwardList || !backForwardList->enabled())
return NULL;
@@ -265,7 +265,7 @@ WebKitWebHistoryItem* webkit_web_back_forward_list_get_back_item(WebKitWebBackFo
{
g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL);
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
if (!backForwardList || !backForwardList->enabled())
return NULL;
@@ -288,7 +288,7 @@ WebKitWebHistoryItem* webkit_web_back_forward_list_get_current_item(WebKitWebBac
{
g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL);
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
if (!backForwardList || !backForwardList->enabled())
return NULL;
@@ -311,7 +311,7 @@ WebKitWebHistoryItem* webkit_web_back_forward_list_get_forward_item(WebKitWebBac
{
g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL);
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
if (!backForwardList || !backForwardList->enabled())
return NULL;
@@ -333,7 +333,7 @@ WebKitWebHistoryItem* webkit_web_back_forward_list_get_nth_item(WebKitWebBackFor
{
g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL);
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
if (!backForwardList)
return NULL;
@@ -354,7 +354,7 @@ gint webkit_web_back_forward_list_get_back_length(WebKitWebBackForwardList* webB
{
g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), 0);
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
if (!backForwardList || !backForwardList->enabled())
return 0;
@@ -373,7 +373,7 @@ gint webkit_web_back_forward_list_get_forward_length(WebKitWebBackForwardList* w
{
g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), 0);
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
if (!backForwardList || !backForwardList->enabled())
return 0;
@@ -392,7 +392,7 @@ gint webkit_web_back_forward_list_get_limit(WebKitWebBackForwardList* webBackFor
{
g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), 0);
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
if (!backForwardList || !backForwardList->enabled())
return 0;
@@ -412,7 +412,7 @@ void webkit_web_back_forward_list_set_limit(WebKitWebBackForwardList* webBackFor
{
g_return_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList));
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
if (backForwardList)
backForwardList->setCapacity(limit);
}
@@ -435,7 +435,7 @@ void webkit_web_back_forward_list_add_item(WebKitWebBackForwardList *webBackForw
g_object_ref(webHistoryItem);
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
WebCore::HistoryItem* historyItem = core(webHistoryItem);
backForwardList->addItem(historyItem);
@@ -454,7 +454,7 @@ void webkit_web_back_forward_list_clear(WebKitWebBackForwardList* webBackForward
{
g_return_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList));
- WebCore::BackForwardList* backForwardList = core(webBackForwardList);
+ WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList);
if (!backForwardList || !backForwardList->enabled() || !backForwardList->entries().size())
return;
@@ -464,7 +464,7 @@ void webkit_web_back_forward_list_clear(WebKitWebBackForwardList* webBackForward
backForwardList->setCapacity(capacity);
}
-WebCore::BackForwardList* WebKit::core(WebKitWebBackForwardList* webBackForwardList)
+WebCore::BackForwardListImpl* WebKit::core(WebKitWebBackForwardList* webBackForwardList)
{
g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL);
diff --git a/WebKit/gtk/webkit/webkitwebview.cpp b/WebKit/gtk/webkit/webkitwebview.cpp
index f5d0ef6..a295fce 100644
--- a/WebKit/gtk/webkit/webkitwebview.cpp
+++ b/WebKit/gtk/webkit/webkitwebview.cpp
@@ -42,7 +42,7 @@
#include "AXObjectCache.h"
#include "AbstractDatabase.h"
-#include "BackForwardList.h"
+#include "BackForwardListImpl.h"
#include "Cache.h"
#include "ChromeClientGtk.h"
#include "ClipboardUtilitiesGtk.h"
@@ -196,12 +196,25 @@ enum {
PROP_CUSTOM_ENCODING,
PROP_ICON_URI,
PROP_IM_CONTEXT,
+#ifdef GTK_API_VERSION_2
PROP_VIEW_MODE
+#else
+ PROP_VIEW_MODE,
+ PROP_HADJUSTMENT,
+ PROP_VADJUSTMENT,
+ PROP_HSCROLL_POLICY,
+ PROP_VSCROLL_POLICY
+#endif
};
static guint webkit_web_view_signals[LAST_SIGNAL] = { 0, };
+#ifdef GTK_API_VERSION_2
G_DEFINE_TYPE(WebKitWebView, webkit_web_view, GTK_TYPE_CONTAINER)
+#else
+G_DEFINE_TYPE_WITH_CODE(WebKitWebView, webkit_web_view, GTK_TYPE_CONTAINER,
+ G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, 0))
+#endif
static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GParamSpec* pspec, WebKitWebView* webView);
static void webkit_web_view_set_window_features(WebKitWebView* webView, WebKitWebWindowFeatures* webWindowFeatures);
@@ -385,6 +398,65 @@ static gboolean webkit_web_view_popup_menu_handler(GtkWidget* widget)
return webkit_web_view_forward_context_menu_event(WEBKIT_WEB_VIEW(widget), event);
}
+#ifndef GTK_API_VERSION_2
+static void setHorizontalAdjustment(WebKitWebView* webView, GtkAdjustment* adjustment)
+{
+ if (!core(webView))
+ return;
+
+ webView->priv->horizontalAdjustment = adjustment;
+ FrameView* view = core(webkit_web_view_get_main_frame(webView))->view();
+ if (!view)
+ return;
+ view->setHorizontalAdjustment(adjustment);
+}
+
+static void setVerticalAdjustment(WebKitWebView* webView, GtkAdjustment* adjustment)
+{
+ if (!core(webView))
+ return;
+
+ webView->priv->verticalAdjustment = adjustment;
+ FrameView* view = core(webkit_web_view_get_main_frame(webView))->view();
+ if (!view)
+ return;
+ view->setVerticalAdjustment(adjustment);
+}
+
+static GtkAdjustment* getHorizontalAdjustment(WebKitWebView* webView)
+{
+ return webView->priv->horizontalAdjustment.get();
+}
+
+static GtkAdjustment* getVerticalAdjustment(WebKitWebView* webView)
+{
+ return webView->priv->verticalAdjustment.get();
+}
+
+static void setHorizontalScrollPolicy(WebKitWebView* webView, GtkScrollablePolicy policy)
+{
+ webView->priv->horizontalScrollingPolicy = policy;
+ gtk_widget_queue_resize(GTK_WIDGET(webView));
+}
+
+static void setVerticalScrollPolicy(WebKitWebView* webView, GtkScrollablePolicy policy)
+{
+ webView->priv->verticalScrollingPolicy = policy;
+ gtk_widget_queue_resize(GTK_WIDGET(webView));
+}
+
+static GtkScrollablePolicy getHorizontalScrollPolicy(WebKitWebView* webView)
+{
+ return webView->priv->horizontalScrollingPolicy;
+}
+
+static GtkScrollablePolicy getVerticalScrollPolicy(WebKitWebView* webView)
+{
+ return webView->priv->verticalScrollingPolicy;
+}
+
+#endif
+
static void webkit_web_view_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec)
{
WebKitWebView* webView = WEBKIT_WEB_VIEW(object);
@@ -444,6 +516,20 @@ static void webkit_web_view_get_property(GObject* object, guint prop_id, GValue*
case PROP_VIEW_MODE:
g_value_set_enum(value, webkit_web_view_get_view_mode(webView));
break;
+#ifndef GTK_API_VERSION_2
+ case PROP_HADJUSTMENT:
+ g_value_set_object(value, getHorizontalAdjustment(webView));
+ break;
+ case PROP_VADJUSTMENT:
+ g_value_set_object(value, getVerticalAdjustment(webView));
+ break;
+ case PROP_HSCROLL_POLICY:
+ g_value_set_enum(value, getHorizontalScrollPolicy(webView));
+ break;
+ case PROP_VSCROLL_POLICY:
+ g_value_set_enum(value, getVerticalScrollPolicy(webView));
+ break;
+#endif
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
}
@@ -478,6 +564,20 @@ static void webkit_web_view_set_property(GObject* object, guint prop_id, const G
case PROP_VIEW_MODE:
webkit_web_view_set_view_mode(webView, static_cast<WebKitWebViewViewMode>(g_value_get_enum(value)));
break;
+#ifndef GTK_API_VERSION_2
+ case PROP_HADJUSTMENT:
+ setHorizontalAdjustment(webView, static_cast<GtkAdjustment*>(g_value_get_object(value)));
+ break;
+ case PROP_VADJUSTMENT:
+ setVerticalAdjustment(webView, static_cast<GtkAdjustment*>(g_value_get_object(value)));
+ break;
+ case PROP_HSCROLL_POLICY:
+ setHorizontalScrollPolicy(webView, static_cast<GtkScrollablePolicy>(g_value_get_enum(value)));
+ break;
+ case PROP_VSCROLL_POLICY:
+ setVerticalScrollPolicy(webView, static_cast<GtkScrollablePolicy>(g_value_get_enum(value)));
+ break;
+#endif
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
}
@@ -908,6 +1008,7 @@ static void webkit_web_view_realize(GtkWidget* widget)
gtk_im_context_set_client_window(priv->imContext.get(), window);
}
+#ifdef GTK_API_VERSION_2
static void webkit_web_view_set_scroll_adjustments(WebKitWebView* webView, GtkAdjustment* hadj, GtkAdjustment* vadj)
{
if (!core(webView))
@@ -921,6 +1022,7 @@ static void webkit_web_view_set_scroll_adjustments(WebKitWebView* webView, GtkAd
return;
view->setGtkAdjustments(hadj, vadj);
}
+#endif
static void webkit_web_view_container_add(GtkContainer* container, GtkWidget* widget)
{
@@ -2525,6 +2627,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass)
/*
* make us scrollable (e.g. addable to a GtkScrolledWindow)
*/
+#ifdef GTK_API_VERSION_2
webViewClass->set_scroll_adjustments = webkit_web_view_set_scroll_adjustments;
GTK_WIDGET_CLASS(webViewClass)->set_scroll_adjustments_signal = g_signal_new("set-scroll-adjustments",
G_TYPE_FROM_CLASS(webViewClass),
@@ -2534,6 +2637,12 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass)
webkit_marshal_VOID__OBJECT_OBJECT,
G_TYPE_NONE, 2,
GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT);
+#else
+ g_object_class_override_property(objectClass, PROP_HADJUSTMENT, "hadjustment");
+ g_object_class_override_property(objectClass, PROP_VADJUSTMENT, "vadjustment");
+ g_object_class_override_property(objectClass, PROP_HSCROLL_POLICY, "hscroll-policy");
+ g_object_class_override_property(objectClass, PROP_VSCROLL_POLICY, "vscroll-policy");
+#endif
/*
* Key bindings
@@ -3322,7 +3431,7 @@ void webkit_web_view_set_maintains_back_forward_list(WebKitWebView* webView, gbo
{
g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
- core(webView)->backForwardList()->setEnabled(flag);
+ static_cast<BackForwardListImpl*>(core(webView)->backForwardList())->setEnabled(flag);
}
/**
@@ -3337,7 +3446,7 @@ void webkit_web_view_set_maintains_back_forward_list(WebKitWebView* webView, gbo
WebKitWebBackForwardList* webkit_web_view_get_back_forward_list(WebKitWebView* webView)
{
g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0);
- if (!core(webView) || !core(webView)->backForwardList()->enabled())
+ if (!core(webView) || !static_cast<BackForwardListImpl*>(core(webView)->backForwardList())->enabled())
return 0;
return webView->priv->backForwardList.get();
}