Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/2c549b28fb508b859702f0c2e1122c6ccd3aa34c
...commit
http://git.netsurf-browser.org/netsurf.git/commit/2c549b28fb508b859702f0c2e1122c6ccd3aa34c
...tree
http://git.netsurf-browser.org/netsurf.git/tree/2c549b28fb508b859702f0c2e1122c6ccd3aa34c
The branch, master has been updated
via 2c549b28fb508b859702f0c2e1122c6ccd3aa34c (commit)
via f59c415ef766d2395bf6680680b3f52efa47d7e1 (commit)
from 72ff12b3ae1c66629042ce906abf8850c49700db (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=2c549b28fb508b859702f0c2e1122c6ccd3aa34c
commit 2c549b28fb508b859702f0c2e1122c6ccd3aa34c
Author: Vincent Sanders <[email protected]>
Commit: Vincent Sanders <[email protected]>
add page information ui elements to GTK frontend
diff --git a/frontends/gtk/corewindow.c b/frontends/gtk/corewindow.c
index 1cc8c62..b3568c6 100644
--- a/frontends/gtk/corewindow.c
+++ b/frontends/gtk/corewindow.c
@@ -224,6 +224,10 @@ nsgtk_cw_motion_notify_event(GtkWidget *widget,
struct nsgtk_corewindow_mouse *mouse = &nsgtk_cw->mouse_state;
if (mouse->pressed == false) {
+ nsgtk_cw->mouse(nsgtk_cw,
+ BROWSER_MOUSE_HOVER,
+ event->x,
+ event->y);
return TRUE;
}
@@ -610,18 +614,20 @@ static nserror
nsgtk_cw_set_scroll(struct core_window *cw, int x, int y)
{
struct nsgtk_corewindow *nsgtk_cw = (struct nsgtk_corewindow *)cw;
- GtkAdjustment *vadj;
- GtkAdjustment *hadj;
- vadj = gtk_scrolled_window_get_vadjustment(nsgtk_cw->scrolled);
- hadj = gtk_scrolled_window_get_hadjustment(nsgtk_cw->scrolled);
+ if (nsgtk_cw->scrolled != NULL) {
+ GtkAdjustment *vadj;
+ GtkAdjustment *hadj;
- assert(vadj != NULL);
- assert(hadj != NULL);
+ vadj = gtk_scrolled_window_get_vadjustment(nsgtk_cw->scrolled);
+ hadj = gtk_scrolled_window_get_hadjustment(nsgtk_cw->scrolled);
- gtk_adjustment_set_value(vadj, y);
- gtk_adjustment_set_value(hadj, x);
+ assert(vadj != NULL);
+ assert(hadj != NULL);
+ gtk_adjustment_set_value(vadj, y);
+ gtk_adjustment_set_value(hadj, x);
+ }
return NSERROR_OK;
}
@@ -636,18 +642,23 @@ static nserror
nsgtk_cw_get_scroll(const struct core_window *cw, int *x, int *y)
{
struct nsgtk_corewindow *nsgtk_cw = (struct nsgtk_corewindow *)cw;
- GtkAdjustment *vadj;
- GtkAdjustment *hadj;
- vadj = gtk_scrolled_window_get_vadjustment(nsgtk_cw->scrolled);
- hadj = gtk_scrolled_window_get_hadjustment(nsgtk_cw->scrolled);
+ if (nsgtk_cw->scrolled != NULL) {
+ GtkAdjustment *vadj;
+ GtkAdjustment *hadj;
- assert(vadj != NULL);
- assert(hadj != NULL);
+ vadj = gtk_scrolled_window_get_vadjustment(nsgtk_cw->scrolled);
+ hadj = gtk_scrolled_window_get_hadjustment(nsgtk_cw->scrolled);
- *y = (int)(gtk_adjustment_get_value(vadj));
- *x = (int)(gtk_adjustment_get_value(hadj));
+ assert(vadj != NULL);
+ assert(hadj != NULL);
+ *y = (int)(gtk_adjustment_get_value(vadj));
+ *x = (int)(gtk_adjustment_get_value(hadj));
+ } else {
+ *x = 0;
+ *y = 0;
+ }
return NSERROR_OK;
}
@@ -664,18 +675,25 @@ nsgtk_cw_get_window_dimensions(const struct core_window
*cw,
int *width, int *height)
{
struct nsgtk_corewindow *nsgtk_cw = (struct nsgtk_corewindow *)cw;
- GtkAdjustment *vadj;
- GtkAdjustment *hadj;
- gdouble page;
-
- hadj = gtk_scrolled_window_get_hadjustment(nsgtk_cw->scrolled);
- g_object_get(hadj, "page-size", &page, NULL);
- *width = page;
-
- vadj = gtk_scrolled_window_get_vadjustment(nsgtk_cw->scrolled);
- g_object_get(vadj, "page-size", &page, NULL);
- *height = page;
-
+ if (nsgtk_cw->scrolled != NULL) {
+ GtkAdjustment *vadj;
+ GtkAdjustment *hadj;
+ gdouble page;
+
+ hadj = gtk_scrolled_window_get_hadjustment(nsgtk_cw->scrolled);
+ g_object_get(hadj, "page-size", &page, NULL);
+ *width = page;
+
+ vadj = gtk_scrolled_window_get_vadjustment(nsgtk_cw->scrolled);
+ g_object_get(vadj, "page-size", &page, NULL);
+ *height = page;
+ } else {
+ GtkAllocation allocation;
+ gtk_widget_get_allocation(GTK_WIDGET(nsgtk_cw->drawing_area),
+ &allocation);
+ *width = allocation.width;
+ *height = allocation.height;
+ }
return NSERROR_OK;
}
diff --git a/frontends/gtk/page_info.c b/frontends/gtk/page_info.c
index 5e887b5..b7ed7ed 100644
--- a/frontends/gtk/page_info.c
+++ b/frontends/gtk/page_info.c
@@ -26,6 +26,7 @@
#include <gtk/gtk.h>
#include "utils/log.h"
+#include "utils/messages.h"
#include "netsurf/keypress.h"
#include "netsurf/plotters.h"
#include "netsurf/browser_window.h"
@@ -46,51 +47,29 @@ struct nsgtk_pi_window {
struct nsgtk_corewindow core;
/** GTK builder for window */
GtkBuilder *builder;
- /** GTK dialog window being shown */
- GtkDialog *dlg;
+ /** GTK window being shown */
+ GtkWindow *dlg;
/** Core page-info window */
struct page_info *pi;
};
/**
- * destroy a previously created certificate view
+ * destroy a previously created page information window
*/
-static nserror nsgtk_pi_destroy(struct nsgtk_pi_window *pi_win)
+static gboolean
+nsgtk_pi_delete_event(GtkWidget *w, GdkEvent *event, gpointer data)
{
- nserror res;
+ struct nsgtk_pi_window *pi_win;
+ pi_win = (struct nsgtk_pi_window *)data;
page_info_destroy(pi_win->pi);
- res = nsgtk_corewindow_fini(&pi_win->core);
+
+ nsgtk_corewindow_fini(&pi_win->core);
gtk_widget_destroy(GTK_WIDGET(pi_win->dlg));
g_object_unref(G_OBJECT(pi_win->builder));
free(pi_win);
- return res;
-}
-
-static void
-nsgtk_pi_accept(GtkButton *w, gpointer data)
-{
- struct nsgtk_pi_window *pi_win;
- pi_win = (struct nsgtk_pi_window *)data;
-
- nsgtk_pi_destroy(pi_win);
-}
-
-static void
-nsgtk_pi_reject(GtkWidget *w, gpointer data)
-{
- struct nsgtk_pi_window *pi_win;
- pi_win = (struct nsgtk_pi_window *)data;
-
- nsgtk_pi_destroy(pi_win);
-}
-
-static gboolean
-nsgtk_pi_delete_event(GtkWidget *w, GdkEvent *event, gpointer data)
-{
- nsgtk_pi_reject(w, data);
return FALSE;
}
@@ -169,32 +148,29 @@ nserror nsgtk_page_info(struct browser_window *bw)
struct nsgtk_pi_window *ncwin;
nserror res;
- ncwin = malloc(sizeof(struct nsgtk_pi_window));
+ ncwin = calloc(1, sizeof(struct nsgtk_pi_window));
if (ncwin == NULL) {
return NSERROR_NOMEM;
}
- res = nsgtk_builder_new_from_resname("ssl", &ncwin->builder);
+ res = nsgtk_builder_new_from_resname("pageinfo", &ncwin->builder);
if (res != NSERROR_OK) {
- NSLOG(netsurf, INFO, "SSL UI builder init failed");
+ NSLOG(netsurf, CRITICAL, "Page Info UI builder init failed %s",
messages_get_errorcode(res));
free(ncwin);
return res;
}
gtk_builder_connect_signals(ncwin->builder, NULL);
- ncwin->dlg = GTK_DIALOG(gtk_builder_get_object(ncwin->builder,
- "wndSSLProblem"));
+ ncwin->dlg = GTK_WINDOW(gtk_builder_get_object(ncwin->builder,
+ "PGIWindow"));
/* set parent for transient dialog */
gtk_window_set_transient_for(GTK_WINDOW(ncwin->dlg),
nsgtk_scaffolding_window(nsgtk_current_scaffolding()));
- ncwin->core.scrolled = GTK_SCROLLED_WINDOW(
- gtk_builder_get_object(ncwin->builder, "SSLScrolled"));
-
ncwin->core.drawing_area = GTK_DRAWING_AREA(
- gtk_builder_get_object(ncwin->builder, "SSLDrawingArea"));
+ gtk_builder_get_object(ncwin->builder, "PGIDrawingArea"));
/* make the delete event call our destructor */
g_signal_connect(G_OBJECT(ncwin->dlg),
@@ -202,20 +178,6 @@ nserror nsgtk_page_info(struct browser_window *bw)
G_CALLBACK(nsgtk_pi_delete_event),
ncwin);
- /* accept button */
- g_signal_connect(G_OBJECT(gtk_builder_get_object(ncwin->builder,
- "sslaccept")),
- "clicked",
- G_CALLBACK(nsgtk_pi_accept),
- ncwin);
-
- /* reject button */
- g_signal_connect(G_OBJECT(gtk_builder_get_object(ncwin->builder,
- "sslreject")),
- "clicked",
- G_CALLBACK(nsgtk_pi_reject),
- ncwin);
-
/* initialise GTK core window */
ncwin->core.draw = nsgtk_pi_draw;
ncwin->core.key = nsgtk_pi_key;
diff --git a/frontends/gtk/res/netsurf.gresource.xml
b/frontends/gtk/res/netsurf.gresource.xml
index 4335817..a41ca6c 100644
--- a/frontends/gtk/res/netsurf.gresource.xml
+++ b/frontends/gtk/res/netsurf.gresource.xml
@@ -12,11 +12,12 @@
<file>hotlist.gtk2.ui</file>
<file>netsurf.gtk3.ui</file>
<file>ssl.gtk2.ui</file>
+ <file>ssl.gtk3.ui</file>
+ <file>pageinfo.gtk3.ui</file>
<file>toolbar.gtk3.ui</file>
<file>downloads.gtk2.ui</file>
<file>hotlist.gtk3.ui</file>
<file>options.gtk2.ui</file>
- <file>ssl.gtk3.ui</file>
<file>viewdata.gtk2.ui</file>
<file>downloads.gtk3.ui</file>
<file>options.gtk3.ui</file>
diff --git a/frontends/gtk/res/pageinfo.gtk2.ui
b/frontends/gtk/res/pageinfo.gtk2.ui
new file mode 100644
index 0000000..b690d9c
--- /dev/null
+++ b/frontends/gtk/res/pageinfo.gtk2.ui
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk+" version="2.24"/>
+ <!-- interface-naming-policy project-wide -->
+ <object class="GtkWindow" id="PGIWindow">
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkDrawingArea" id="PGIDrawingArea">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK |
GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/frontends/gtk/res/pageinfo.gtk3.ui
b/frontends/gtk/res/pageinfo.gtk3.ui
new file mode 100644
index 0000000..6ea876e
--- /dev/null
+++ b/frontends/gtk/res/pageinfo.gtk3.ui
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.1 -->
+<interface>
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkWindow" id="PGIWindow">
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK |
GDK_STRUCTURE_MASK</property>
+ <property name="resizable">False</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkDrawingArea" id="PGIDrawingArea">
+ <property name="name">PGIDrawingArea</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK |
GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/frontends/gtk/resources.c b/frontends/gtk/resources.c
index a60119a..18f0e37 100644
--- a/frontends/gtk/resources.c
+++ b/frontends/gtk/resources.c
@@ -87,6 +87,7 @@ static struct nsgtk_resource_s ui_resource[] = {
RES_ENTRY("cookies"),
RES_ENTRY("viewdata"),
RES_ENTRY("warning"),
+ RES_ENTRY("pageinfo"),
{ NULL, 0, NSGTK_RESOURCE_FILE, NULL },
};
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=f59c415ef766d2395bf6680680b3f52efa47d7e1
commit f59c415ef766d2395bf6680680b3f52efa47d7e1
Author: Michael Drake <[email protected]>
Commit: Vincent Sanders <[email protected]>
GTK: Initial page-info display.
diff --git a/frontends/gtk/page_info.c b/frontends/gtk/page_info.c
index 2892788..5e887b5 100644
--- a/frontends/gtk/page_info.c
+++ b/frontends/gtk/page_info.c
@@ -29,7 +29,7 @@
#include "netsurf/keypress.h"
#include "netsurf/plotters.h"
#include "netsurf/browser_window.h"
-#include "desktop/sslcert_viewer.h"
+#include "desktop/page-info.h"
#include "gtk/plotters.h"
#include "gtk/scaffolding.h"
@@ -48,8 +48,8 @@ struct nsgtk_pi_window {
GtkBuilder *builder;
/** GTK dialog window being shown */
GtkDialog *dlg;
- /** SSL certificate viewer context data */
- struct sslcert_session_data *ssl_data;
+ /** Core page-info window */
+ struct page_info *pi;
};
@@ -60,13 +60,12 @@ static nserror nsgtk_pi_destroy(struct nsgtk_pi_window
*pi_win)
{
nserror res;
- res = sslcert_viewer_fini(pi_win->ssl_data);
- if (res == NSERROR_OK) {
- res = nsgtk_corewindow_fini(&pi_win->core);
- gtk_widget_destroy(GTK_WIDGET(pi_win->dlg));
- g_object_unref(G_OBJECT(pi_win->builder));
- free(pi_win);
- }
+ page_info_destroy(pi_win->pi);
+ res = nsgtk_corewindow_fini(&pi_win->core);
+ gtk_widget_destroy(GTK_WIDGET(pi_win->dlg));
+ g_object_unref(G_OBJECT(pi_win->builder));
+ free(pi_win);
+
return res;
}
@@ -76,8 +75,6 @@ nsgtk_pi_accept(GtkButton *w, gpointer data)
struct nsgtk_pi_window *pi_win;
pi_win = (struct nsgtk_pi_window *)data;
- sslcert_viewer_accept(pi_win->ssl_data);
-
nsgtk_pi_destroy(pi_win);
}
@@ -87,8 +84,6 @@ nsgtk_pi_reject(GtkWidget *w, gpointer data)
struct nsgtk_pi_window *pi_win;
pi_win = (struct nsgtk_pi_window *)data;
- sslcert_viewer_reject(pi_win->ssl_data);
-
nsgtk_pi_destroy(pi_win);
}
@@ -117,7 +112,7 @@ nsgtk_pi_mouse(struct nsgtk_corewindow *nsgtk_cw,
/* technically degenerate container of */
pi_win = (struct nsgtk_pi_window *)nsgtk_cw;
- sslcert_viewer_mouse_action(pi_win->ssl_data, mouse_state, x, y);
+ page_info_mouse_action(pi_win->pi, mouse_state, x, y);
return NSERROR_OK;
}
@@ -137,7 +132,7 @@ nsgtk_pi_key(struct nsgtk_corewindow *nsgtk_cw, uint32_t
nskey)
/* technically degenerate container of */
pi_win = (struct nsgtk_pi_window *)nsgtk_cw;
- if (sslcert_viewer_keypress(pi_win->ssl_data, nskey)) {
+ if (page_info_keypress(pi_win->pi, nskey)) {
return NSERROR_OK;
}
return NSERROR_NOT_IMPLEMENTED;
@@ -163,32 +158,17 @@ nsgtk_pi_draw(struct nsgtk_corewindow *nsgtk_cw, struct
rect *r)
/* technically degenerate container of */
pi_win = (struct nsgtk_pi_window *)nsgtk_cw;
- sslcert_viewer_redraw(pi_win->ssl_data, 0, 0, r, &ctx);
+ page_info_redraw(pi_win->pi, 0, 0, r, &ctx);
return NSERROR_OK;
}
-static nserror dummy_cb(bool proceed, void *pw)
-{
- return NSERROR_OK;
-}
-
/* exported interface documented in gtk/page_info.h */
nserror nsgtk_page_info(struct browser_window *bw)
{
struct nsgtk_pi_window *ncwin;
nserror res;
- struct cert_chain *chain;
- struct nsurl *url;
-
- res = browser_window_get_ssl_chain(bw, &chain);
- if (res != NSERROR_OK) {
- NSLOG(netsurf, WARNING, "Unable to get certificate chain");
- return NSERROR_INVALID;
- }
- url = browser_window_access_url(bw);
-
ncwin = malloc(sizeof(struct nsgtk_pi_window));
if (ncwin == NULL) {
return NSERROR_NOMEM;
@@ -248,18 +228,9 @@ nserror nsgtk_page_info(struct browser_window *bw)
return res;
}
- /* initialise certificate viewing interface */
- res = sslcert_viewer_create_session_data(
- url, dummy_cb, NULL, chain, &ncwin->ssl_data);
- if (res != NSERROR_OK) {
- g_object_unref(G_OBJECT(ncwin->dlg));
- free(ncwin);
- return res;
- }
-
- res = sslcert_viewer_init(ncwin->core.cb_table,
- (struct core_window *)ncwin,
- ncwin->ssl_data);
+ res = page_info_create(ncwin->core.cb_table,
+ (struct core_window *)ncwin,
+ bw, &ncwin->pi);
if (res != NSERROR_OK) {
g_object_unref(G_OBJECT(ncwin->dlg));
free(ncwin);
-----------------------------------------------------------------------
Summary of changes:
frontends/gtk/corewindow.c | 74 +++++++++++--------
frontends/gtk/page_info.c | 119 +++++++------------------------
frontends/gtk/res/netsurf.gresource.xml | 3 +-
frontends/gtk/res/pageinfo.gtk2.ui | 15 ++++
frontends/gtk/res/pageinfo.gtk3.ui | 21 ++++++
frontends/gtk/resources.c | 1 +
6 files changed, 111 insertions(+), 122 deletions(-)
create mode 100644 frontends/gtk/res/pageinfo.gtk2.ui
create mode 100644 frontends/gtk/res/pageinfo.gtk3.ui
diff --git a/frontends/gtk/corewindow.c b/frontends/gtk/corewindow.c
index 1cc8c62..b3568c6 100644
--- a/frontends/gtk/corewindow.c
+++ b/frontends/gtk/corewindow.c
@@ -224,6 +224,10 @@ nsgtk_cw_motion_notify_event(GtkWidget *widget,
struct nsgtk_corewindow_mouse *mouse = &nsgtk_cw->mouse_state;
if (mouse->pressed == false) {
+ nsgtk_cw->mouse(nsgtk_cw,
+ BROWSER_MOUSE_HOVER,
+ event->x,
+ event->y);
return TRUE;
}
@@ -610,18 +614,20 @@ static nserror
nsgtk_cw_set_scroll(struct core_window *cw, int x, int y)
{
struct nsgtk_corewindow *nsgtk_cw = (struct nsgtk_corewindow *)cw;
- GtkAdjustment *vadj;
- GtkAdjustment *hadj;
- vadj = gtk_scrolled_window_get_vadjustment(nsgtk_cw->scrolled);
- hadj = gtk_scrolled_window_get_hadjustment(nsgtk_cw->scrolled);
+ if (nsgtk_cw->scrolled != NULL) {
+ GtkAdjustment *vadj;
+ GtkAdjustment *hadj;
- assert(vadj != NULL);
- assert(hadj != NULL);
+ vadj = gtk_scrolled_window_get_vadjustment(nsgtk_cw->scrolled);
+ hadj = gtk_scrolled_window_get_hadjustment(nsgtk_cw->scrolled);
- gtk_adjustment_set_value(vadj, y);
- gtk_adjustment_set_value(hadj, x);
+ assert(vadj != NULL);
+ assert(hadj != NULL);
+ gtk_adjustment_set_value(vadj, y);
+ gtk_adjustment_set_value(hadj, x);
+ }
return NSERROR_OK;
}
@@ -636,18 +642,23 @@ static nserror
nsgtk_cw_get_scroll(const struct core_window *cw, int *x, int *y)
{
struct nsgtk_corewindow *nsgtk_cw = (struct nsgtk_corewindow *)cw;
- GtkAdjustment *vadj;
- GtkAdjustment *hadj;
- vadj = gtk_scrolled_window_get_vadjustment(nsgtk_cw->scrolled);
- hadj = gtk_scrolled_window_get_hadjustment(nsgtk_cw->scrolled);
+ if (nsgtk_cw->scrolled != NULL) {
+ GtkAdjustment *vadj;
+ GtkAdjustment *hadj;
- assert(vadj != NULL);
- assert(hadj != NULL);
+ vadj = gtk_scrolled_window_get_vadjustment(nsgtk_cw->scrolled);
+ hadj = gtk_scrolled_window_get_hadjustment(nsgtk_cw->scrolled);
- *y = (int)(gtk_adjustment_get_value(vadj));
- *x = (int)(gtk_adjustment_get_value(hadj));
+ assert(vadj != NULL);
+ assert(hadj != NULL);
+ *y = (int)(gtk_adjustment_get_value(vadj));
+ *x = (int)(gtk_adjustment_get_value(hadj));
+ } else {
+ *x = 0;
+ *y = 0;
+ }
return NSERROR_OK;
}
@@ -664,18 +675,25 @@ nsgtk_cw_get_window_dimensions(const struct core_window
*cw,
int *width, int *height)
{
struct nsgtk_corewindow *nsgtk_cw = (struct nsgtk_corewindow *)cw;
- GtkAdjustment *vadj;
- GtkAdjustment *hadj;
- gdouble page;
-
- hadj = gtk_scrolled_window_get_hadjustment(nsgtk_cw->scrolled);
- g_object_get(hadj, "page-size", &page, NULL);
- *width = page;
-
- vadj = gtk_scrolled_window_get_vadjustment(nsgtk_cw->scrolled);
- g_object_get(vadj, "page-size", &page, NULL);
- *height = page;
-
+ if (nsgtk_cw->scrolled != NULL) {
+ GtkAdjustment *vadj;
+ GtkAdjustment *hadj;
+ gdouble page;
+
+ hadj = gtk_scrolled_window_get_hadjustment(nsgtk_cw->scrolled);
+ g_object_get(hadj, "page-size", &page, NULL);
+ *width = page;
+
+ vadj = gtk_scrolled_window_get_vadjustment(nsgtk_cw->scrolled);
+ g_object_get(vadj, "page-size", &page, NULL);
+ *height = page;
+ } else {
+ GtkAllocation allocation;
+ gtk_widget_get_allocation(GTK_WIDGET(nsgtk_cw->drawing_area),
+ &allocation);
+ *width = allocation.width;
+ *height = allocation.height;
+ }
return NSERROR_OK;
}
diff --git a/frontends/gtk/page_info.c b/frontends/gtk/page_info.c
index 2892788..b7ed7ed 100644
--- a/frontends/gtk/page_info.c
+++ b/frontends/gtk/page_info.c
@@ -26,10 +26,11 @@
#include <gtk/gtk.h>
#include "utils/log.h"
+#include "utils/messages.h"
#include "netsurf/keypress.h"
#include "netsurf/plotters.h"
#include "netsurf/browser_window.h"
-#include "desktop/sslcert_viewer.h"
+#include "desktop/page-info.h"
#include "gtk/plotters.h"
#include "gtk/scaffolding.h"
@@ -46,56 +47,29 @@ struct nsgtk_pi_window {
struct nsgtk_corewindow core;
/** GTK builder for window */
GtkBuilder *builder;
- /** GTK dialog window being shown */
- GtkDialog *dlg;
- /** SSL certificate viewer context data */
- struct sslcert_session_data *ssl_data;
+ /** GTK window being shown */
+ GtkWindow *dlg;
+ /** Core page-info window */
+ struct page_info *pi;
};
/**
- * destroy a previously created certificate view
+ * destroy a previously created page information window
*/
-static nserror nsgtk_pi_destroy(struct nsgtk_pi_window *pi_win)
-{
- nserror res;
-
- res = sslcert_viewer_fini(pi_win->ssl_data);
- if (res == NSERROR_OK) {
- res = nsgtk_corewindow_fini(&pi_win->core);
- gtk_widget_destroy(GTK_WIDGET(pi_win->dlg));
- g_object_unref(G_OBJECT(pi_win->builder));
- free(pi_win);
- }
- return res;
-}
-
-static void
-nsgtk_pi_accept(GtkButton *w, gpointer data)
-{
- struct nsgtk_pi_window *pi_win;
- pi_win = (struct nsgtk_pi_window *)data;
-
- sslcert_viewer_accept(pi_win->ssl_data);
-
- nsgtk_pi_destroy(pi_win);
-}
-
-static void
-nsgtk_pi_reject(GtkWidget *w, gpointer data)
+static gboolean
+nsgtk_pi_delete_event(GtkWidget *w, GdkEvent *event, gpointer data)
{
struct nsgtk_pi_window *pi_win;
pi_win = (struct nsgtk_pi_window *)data;
- sslcert_viewer_reject(pi_win->ssl_data);
+ page_info_destroy(pi_win->pi);
- nsgtk_pi_destroy(pi_win);
-}
+ nsgtk_corewindow_fini(&pi_win->core);
+ gtk_widget_destroy(GTK_WIDGET(pi_win->dlg));
+ g_object_unref(G_OBJECT(pi_win->builder));
+ free(pi_win);
-static gboolean
-nsgtk_pi_delete_event(GtkWidget *w, GdkEvent *event, gpointer data)
-{
- nsgtk_pi_reject(w, data);
return FALSE;
}
@@ -117,7 +91,7 @@ nsgtk_pi_mouse(struct nsgtk_corewindow *nsgtk_cw,
/* technically degenerate container of */
pi_win = (struct nsgtk_pi_window *)nsgtk_cw;
- sslcert_viewer_mouse_action(pi_win->ssl_data, mouse_state, x, y);
+ page_info_mouse_action(pi_win->pi, mouse_state, x, y);
return NSERROR_OK;
}
@@ -137,7 +111,7 @@ nsgtk_pi_key(struct nsgtk_corewindow *nsgtk_cw, uint32_t
nskey)
/* technically degenerate container of */
pi_win = (struct nsgtk_pi_window *)nsgtk_cw;
- if (sslcert_viewer_keypress(pi_win->ssl_data, nskey)) {
+ if (page_info_keypress(pi_win->pi, nskey)) {
return NSERROR_OK;
}
return NSERROR_NOT_IMPLEMENTED;
@@ -163,58 +137,40 @@ nsgtk_pi_draw(struct nsgtk_corewindow *nsgtk_cw, struct
rect *r)
/* technically degenerate container of */
pi_win = (struct nsgtk_pi_window *)nsgtk_cw;
- sslcert_viewer_redraw(pi_win->ssl_data, 0, 0, r, &ctx);
+ page_info_redraw(pi_win->pi, 0, 0, r, &ctx);
return NSERROR_OK;
}
-static nserror dummy_cb(bool proceed, void *pw)
-{
- return NSERROR_OK;
-}
-
/* exported interface documented in gtk/page_info.h */
nserror nsgtk_page_info(struct browser_window *bw)
{
struct nsgtk_pi_window *ncwin;
nserror res;
- struct cert_chain *chain;
- struct nsurl *url;
-
- res = browser_window_get_ssl_chain(bw, &chain);
- if (res != NSERROR_OK) {
- NSLOG(netsurf, WARNING, "Unable to get certificate chain");
- return NSERROR_INVALID;
- }
- url = browser_window_access_url(bw);
-
- ncwin = malloc(sizeof(struct nsgtk_pi_window));
+ ncwin = calloc(1, sizeof(struct nsgtk_pi_window));
if (ncwin == NULL) {
return NSERROR_NOMEM;
}
- res = nsgtk_builder_new_from_resname("ssl", &ncwin->builder);
+ res = nsgtk_builder_new_from_resname("pageinfo", &ncwin->builder);
if (res != NSERROR_OK) {
- NSLOG(netsurf, INFO, "SSL UI builder init failed");
+ NSLOG(netsurf, CRITICAL, "Page Info UI builder init failed %s",
messages_get_errorcode(res));
free(ncwin);
return res;
}
gtk_builder_connect_signals(ncwin->builder, NULL);
- ncwin->dlg = GTK_DIALOG(gtk_builder_get_object(ncwin->builder,
- "wndSSLProblem"));
+ ncwin->dlg = GTK_WINDOW(gtk_builder_get_object(ncwin->builder,
+ "PGIWindow"));
/* set parent for transient dialog */
gtk_window_set_transient_for(GTK_WINDOW(ncwin->dlg),
nsgtk_scaffolding_window(nsgtk_current_scaffolding()));
- ncwin->core.scrolled = GTK_SCROLLED_WINDOW(
- gtk_builder_get_object(ncwin->builder, "SSLScrolled"));
-
ncwin->core.drawing_area = GTK_DRAWING_AREA(
- gtk_builder_get_object(ncwin->builder, "SSLDrawingArea"));
+ gtk_builder_get_object(ncwin->builder, "PGIDrawingArea"));
/* make the delete event call our destructor */
g_signal_connect(G_OBJECT(ncwin->dlg),
@@ -222,20 +178,6 @@ nserror nsgtk_page_info(struct browser_window *bw)
G_CALLBACK(nsgtk_pi_delete_event),
ncwin);
- /* accept button */
- g_signal_connect(G_OBJECT(gtk_builder_get_object(ncwin->builder,
- "sslaccept")),
- "clicked",
- G_CALLBACK(nsgtk_pi_accept),
- ncwin);
-
- /* reject button */
- g_signal_connect(G_OBJECT(gtk_builder_get_object(ncwin->builder,
- "sslreject")),
- "clicked",
- G_CALLBACK(nsgtk_pi_reject),
- ncwin);
-
/* initialise GTK core window */
ncwin->core.draw = nsgtk_pi_draw;
ncwin->core.key = nsgtk_pi_key;
@@ -248,18 +190,9 @@ nserror nsgtk_page_info(struct browser_window *bw)
return res;
}
- /* initialise certificate viewing interface */
- res = sslcert_viewer_create_session_data(
- url, dummy_cb, NULL, chain, &ncwin->ssl_data);
- if (res != NSERROR_OK) {
- g_object_unref(G_OBJECT(ncwin->dlg));
- free(ncwin);
- return res;
- }
-
- res = sslcert_viewer_init(ncwin->core.cb_table,
- (struct core_window *)ncwin,
- ncwin->ssl_data);
+ res = page_info_create(ncwin->core.cb_table,
+ (struct core_window *)ncwin,
+ bw, &ncwin->pi);
if (res != NSERROR_OK) {
g_object_unref(G_OBJECT(ncwin->dlg));
free(ncwin);
diff --git a/frontends/gtk/res/netsurf.gresource.xml
b/frontends/gtk/res/netsurf.gresource.xml
index 4335817..a41ca6c 100644
--- a/frontends/gtk/res/netsurf.gresource.xml
+++ b/frontends/gtk/res/netsurf.gresource.xml
@@ -12,11 +12,12 @@
<file>hotlist.gtk2.ui</file>
<file>netsurf.gtk3.ui</file>
<file>ssl.gtk2.ui</file>
+ <file>ssl.gtk3.ui</file>
+ <file>pageinfo.gtk3.ui</file>
<file>toolbar.gtk3.ui</file>
<file>downloads.gtk2.ui</file>
<file>hotlist.gtk3.ui</file>
<file>options.gtk2.ui</file>
- <file>ssl.gtk3.ui</file>
<file>viewdata.gtk2.ui</file>
<file>downloads.gtk3.ui</file>
<file>options.gtk3.ui</file>
diff --git a/frontends/gtk/res/pageinfo.gtk2.ui
b/frontends/gtk/res/pageinfo.gtk2.ui
new file mode 100644
index 0000000..b690d9c
--- /dev/null
+++ b/frontends/gtk/res/pageinfo.gtk2.ui
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk+" version="2.24"/>
+ <!-- interface-naming-policy project-wide -->
+ <object class="GtkWindow" id="PGIWindow">
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkDrawingArea" id="PGIDrawingArea">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK |
GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/frontends/gtk/res/pageinfo.gtk3.ui
b/frontends/gtk/res/pageinfo.gtk3.ui
new file mode 100644
index 0000000..6ea876e
--- /dev/null
+++ b/frontends/gtk/res/pageinfo.gtk3.ui
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.1 -->
+<interface>
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkWindow" id="PGIWindow">
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK |
GDK_STRUCTURE_MASK</property>
+ <property name="resizable">False</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkDrawingArea" id="PGIDrawingArea">
+ <property name="name">PGIDrawingArea</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK |
GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/frontends/gtk/resources.c b/frontends/gtk/resources.c
index a60119a..18f0e37 100644
--- a/frontends/gtk/resources.c
+++ b/frontends/gtk/resources.c
@@ -87,6 +87,7 @@ static struct nsgtk_resource_s ui_resource[] = {
RES_ENTRY("cookies"),
RES_ENTRY("viewdata"),
RES_ENTRY("warning"),
+ RES_ENTRY("pageinfo"),
{ NULL, 0, NSGTK_RESOURCE_FILE, NULL },
};
--
NetSurf Browser
_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org