[geany/geany-plugins] 1d5665: [webhelper] Use webkit2gtk3 (webkit2 API)
Sérgio M. Basto
git-noreply at xxxxx
Wed May 30 05:21:08 UTC 2018
Branch: refs/heads/master
Author: Sérgio M. Basto <sergio at serjux.com>
Committer: Sérgio M. Basto <sergio at serjux.com>
Date: Sat, 09 Dec 2017 03:00:52 UTC
Commit: 1d5665ed777ea8d0a1963a8a6775142218fd16b5
https://github.com/geany/geany-plugins/commit/1d5665ed777ea8d0a1963a8a6775142218fd16b5
Log Message:
-----------
[webhelper] Use webkit2gtk3 (webkit2 API)
To build, in Fedora linux, with package webkitgtk4-devel
Still need rework at least zoom functionalities that was comment out.
Modified Paths:
--------------
build/webhelper.m4
webhelper/src/gwh-browser.c
webhelper/src/gwh-browser.h
Modified: build/webhelper.m4
4 lines changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -19,8 +19,8 @@ AC_DEFUN([GP_CHECK_WEBHELPER],
fi
fi
- GP_CHECK_GTK3([webkit_package=webkitgtk-3.0],
- [webkit_package=webkit-1.0])
+ GP_CHECK_GTK3([webkit_package=webkit2gtk-4.0],
+ [webkit_package=webkit2gtk-4.0])
GP_CHECK_PLUGIN_DEPS([WebHelper], [WEBHELPER],
[$GP_GTK_PACKAGE >= ${GTK_VERSION}
glib-2.0 >= ${GLIB_VERSION}
Modified: webhelper/src/gwh-browser.c
74 lines changed, 32 insertions(+), 42 deletions(-)
===================================================================
@@ -27,7 +27,7 @@
#include <glib.h>
#include <glib/gi18n-lib.h>
#include <gtk/gtk.h>
-#include <webkit/webkit.h>
+#include <webkit2/webkit2.h>
#include "gwh-utils.h"
#include "gwh-settings.h"
@@ -136,14 +136,15 @@ static void inspector_set_detached (GwhBrowser *self,
static void
set_location_icon (GwhBrowser *self,
- const gchar *icon_uri)
+ cairo_surface_t *favicon)
{
gboolean success = FALSE;
- if (icon_uri) {
+ if (favicon) {
GdkPixbuf *icon;
-
- icon = gwh_pixbuf_new_from_uri (icon_uri, NULL);
+ GtkImage *image;
+ gtk_image_set_from_surface (image, favicon);
+ icon = gtk_image_get_pixbuf(image);
if (icon) {
gtk_entry_set_icon_from_pixbuf (GTK_ENTRY (self->priv->url_entry),
GTK_ENTRY_ICON_PRIMARY, icon);
@@ -520,19 +521,7 @@ update_load_status (GwhBrowser *self)
gboolean loading = FALSE;
WebKitWebView *web_view = WEBKIT_WEB_VIEW (self->priv->web_view);
- switch (webkit_web_view_get_load_status (web_view)) {
- case WEBKIT_LOAD_PROVISIONAL:
- case WEBKIT_LOAD_COMMITTED:
- case WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT:
- loading = TRUE;
- break;
-
- case WEBKIT_LOAD_FINISHED:
- case WEBKIT_LOAD_FAILED:
- loading = FALSE;
- break;
- }
-
+ loading = webkit_web_view_is_loading(web_view);
gtk_widget_set_sensitive (GTK_WIDGET (self->priv->item_reload), ! loading);
gtk_widget_set_visible (GTK_WIDGET (self->priv->item_reload), ! loading);
gtk_widget_set_sensitive (GTK_WIDGET (self->priv->item_cancel), loading);
@@ -549,17 +538,17 @@ on_web_view_load_status_notify (GObject *object,
update_load_status (self);
}
-static gboolean
+/*static gboolean
on_web_view_load_error (WebKitWebView *web_view,
- WebKitWebFrame *web_frame,
+ WebKitFrame *web_frame,
gchar *uri,
gpointer web_error,
GwhBrowser *self)
{
update_load_status (self);
- return FALSE; /* we didn't really handled the error, so return %FALSE */
-}
+ return FALSE; we didn't really handled the error, so return %FALSE
+} */
static void
on_web_view_uri_notify (GObject *object,
@@ -579,10 +568,10 @@ on_web_view_icon_uri_notify (GObject *object,
GParamSpec *pspec,
GwhBrowser *self)
{
- const gchar *icon_uri;
+ cairo_surface_t *favicon;
- icon_uri = webkit_web_view_get_icon_uri (WEBKIT_WEB_VIEW (self->priv->web_view));
- set_location_icon (self, icon_uri);
+ favicon = webkit_web_view_get_favicon (WEBKIT_WEB_VIEW (self->priv->web_view));
+ set_location_icon (self, favicon);
}
static void
@@ -592,11 +581,12 @@ on_web_view_progress_notify (GObject *object,
{
gdouble value;
- value = webkit_web_view_get_progress (WEBKIT_WEB_VIEW (self->priv->web_view));
+/* value = webkit_web_view_get_progress (WEBKIT_WEB_VIEW (self->priv->web_view));
if (value >= 1.0) {
value = 0.0;
}
gtk_entry_set_progress_fraction (GTK_ENTRY (self->priv->url_entry), value);
+ */
}
@@ -617,13 +607,13 @@ on_item_zoom_100_activate (GtkMenuItem *item,
webkit_web_view_set_zoom_level (WEBKIT_WEB_VIEW (self->priv->web_view), 1.0);
}
-static void
+/* static void
on_item_full_content_zoom_activate (GtkCheckMenuItem *item,
GwhBrowser *self)
{
webkit_web_view_set_full_content_zoom (WEBKIT_WEB_VIEW (self->priv->web_view),
gtk_check_menu_item_get_active (item));
-}
+} */
static void
on_web_view_populate_popup (WebKitWebView *view,
@@ -648,13 +638,13 @@ on_web_view_populate_popup (WebKitWebView *view,
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
/* zoom in */
item = gtk_image_menu_item_new_from_stock (GTK_STOCK_ZOOM_IN, NULL);
- g_signal_connect_swapped (item, "activate",
- G_CALLBACK (webkit_web_view_zoom_in), view);
+// g_signal_connect_swapped (item, "activate",
+// G_CALLBACK (webkit_web_view_zoom_in), view);
gtk_menu_shell_append (GTK_MENU_SHELL (submenu), item);
/* zoom out */
item = gtk_image_menu_item_new_from_stock (GTK_STOCK_ZOOM_OUT, NULL);
- g_signal_connect_swapped (item, "activate",
- G_CALLBACK (webkit_web_view_zoom_out), view);
+// g_signal_connect_swapped (item, "activate",
+// G_CALLBACK (webkit_web_view_zoom_out), view);
gtk_menu_shell_append (GTK_MENU_SHELL (submenu), item);
/* zoom 1:1 */
ADD_SEPARATOR (submenu);
@@ -665,10 +655,10 @@ on_web_view_populate_popup (WebKitWebView *view,
/* full content zoom */
ADD_SEPARATOR (submenu);
item = gtk_check_menu_item_new_with_mnemonic (_("Full-_content zoom"));
- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item),
- webkit_web_view_get_full_content_zoom (view));
- g_signal_connect (item, "activate",
- G_CALLBACK (on_item_full_content_zoom_activate), self);
+// gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item),
+// webkit_web_view_get_full_content_zoom (view));
+// g_signal_connect (item, "activate",
+// G_CALLBACK (on_item_full_content_zoom_activate), self);
gtk_menu_shell_append (GTK_MENU_SHELL (submenu), item);
/* show zoom sumbenu */
gtk_widget_show_all (submenu);
@@ -701,11 +691,11 @@ on_web_view_scroll_event (GtkWidget *widget,
handled = TRUE;
switch (event->direction) {
case GDK_SCROLL_DOWN:
- webkit_web_view_zoom_out (WEBKIT_WEB_VIEW (self->priv->web_view));
+ webkit_web_view_set_zoom_level (WEBKIT_WEB_VIEW (self->priv->web_view), 1.0);
break;
case GDK_SCROLL_UP:
- webkit_web_view_zoom_in (WEBKIT_WEB_VIEW (self->priv->web_view));
+ webkit_web_view_set_zoom_level (WEBKIT_WEB_VIEW (self->priv->web_view), 1.0);
break;
default:
@@ -1114,7 +1104,7 @@ static void
gwh_browser_init (GwhBrowser *self)
{
GtkWidget *scrolled;
- WebKitWebSettings *wkws;
+ WebKitSettings *wkws;
gboolean inspector_detached;
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GWH_TYPE_BROWSER,
@@ -1185,8 +1175,8 @@ gwh_browser_init (GwhBrowser *self)
G_CALLBACK (on_web_view_uri_notify), self);
g_signal_connect (G_OBJECT (self->priv->web_view), "notify::load-status",
G_CALLBACK (on_web_view_load_status_notify), self);
- g_signal_connect (G_OBJECT (self->priv->web_view), "notify::load-error",
- G_CALLBACK (on_web_view_load_error), self);
+// g_signal_connect (G_OBJECT (self->priv->web_view), "notify::load-error",
+// G_CALLBACK (on_web_view_load_error), self);
g_signal_connect (G_OBJECT (self->priv->web_view), "notify::icon-uri",
G_CALLBACK (on_web_view_icon_uri_notify), self);
g_signal_connect (G_OBJECT (self->priv->web_view), "populate-popup",
@@ -1251,7 +1241,7 @@ gwh_browser_set_uri (GwhBrowser *self,
}
g_free (scheme);
if (g_strcmp0 (real_uri, gwh_browser_get_uri (self)) != 0) {
- webkit_web_view_open (WEBKIT_WEB_VIEW (self->priv->web_view), real_uri);
+ webkit_web_view_load_uri (WEBKIT_WEB_VIEW (self->priv->web_view), real_uri);
g_object_notify (G_OBJECT (self), "uri");
}
g_free (real_uri);
Modified: webhelper/src/gwh-browser.h
2 lines changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -22,7 +22,7 @@
#include <glib.h>
#include <gtk/gtk.h>
-#include <webkit/webkit.h>
+#include <webkit2/webkit2.h>
G_BEGIN_DECLS
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Plugins-Commits
mailing list