summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorQue Quotion2018-10-30 03:16:03 +0900
committerQue Quotion2018-10-30 03:16:03 +0900
commit2479192b6e141940be67b5974cc609caa24bcb21 (patch)
tree4cb60315b2ec1a5be106822eec9a0400c06d0c64
parentc2a6e4ec6274b5d2bda3a164d41d5cac9d41dc8f (diff)
downloadaur-2479192b6e141940be67b5974cc609caa24bcb21.tar.gz
Clean up preview-widget patch for GNOME coding standards
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD9
-rw-r--r--add-preview-widget.patch173
-rw-r--r--block-webkit-filechooser.patch87
4 files changed, 142 insertions, 133 deletions
diff --git a/.SRCINFO b/.SRCINFO
index fd43a43bbe4e..c0305aa00ed6 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = epiphany-pantheon
pkgdesc = GNOME web browser based on the WebKit rendering engine (with elementary OS patches)
pkgver = 3.28.0.1+1ubuntu1+r21.dbc305d50
- pkgrel = 3
+ pkgrel = 4
url = https://gitlab.gnome.org/GNOME/epiphany/
arch = i686
arch = x86_64
@@ -27,13 +27,11 @@ pkgbase = epiphany-pantheon
source = git+https://github.com/elementary/os-patches.git#branch=epiphany-browser-bionic-patched
source = epiphany-sync
source = epiphany-sync.service
- source = block-webkit-filechooser.patch
source = add-preview-widget.patch
sha256sums = SKIP
sha256sums = cf90f3ea93fff8c61f82da40c8d07d5db2f33dc9a0d91408a6ffc4142bbedd20
sha256sums = ce1ac321d7bf9d88638634a141dfcb99119fc59ee44c4892e0874608e85006ba
- sha256sums = deabdc2edc635d854ca40789cf949afdb51b9c598b01891390c238cc769524f7
- sha256sums = df1828b4fe05bd6aeb198db0c56c83c10d54eef27d7a9a6c63cbddc516d6221f
+ sha256sums = 1f692442846c635085ecf746f8018e87de5bba73c0c6e22730c5bce56fb56e1b
pkgname = epiphany-pantheon
diff --git a/PKGBUILD b/PKGBUILD
index 653f7cce4318..ae14bf5fcd64 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=epiphany-pantheon
pkgver=3.28.0.1+1ubuntu1+r21.dbc305d50
-pkgrel=3
+pkgrel=4
pkgdesc="GNOME web browser based on the WebKit rendering engine (with elementary OS patches)"
url="https://gitlab.gnome.org/GNOME/epiphany/"
arch=('i686' 'x86_64')
@@ -17,13 +17,11 @@ provides=(epiphany="${pkgver}" epiphany-sync)
conflicts=(epiphany)
source=("git+https://github.com/elementary/os-patches.git#branch=epiphany-browser-bionic-patched"
epiphany-sync{,.service}
- "block-webkit-filechooser.patch"
"add-preview-widget.patch")
sha256sums=('SKIP'
'cf90f3ea93fff8c61f82da40c8d07d5db2f33dc9a0d91408a6ffc4142bbedd20'
'ce1ac321d7bf9d88638634a141dfcb99119fc59ee44c4892e0874608e85006ba'
- 'deabdc2edc635d854ca40789cf949afdb51b9c598b01891390c238cc769524f7'
- 'df1828b4fe05bd6aeb198db0c56c83c10d54eef27d7a9a6c63cbddc516d6221f')
+ '1f692442846c635085ecf746f8018e87de5bba73c0c6e22730c5bce56fb56e1b')
pkgver() {
cd "os-patches"
@@ -33,8 +31,7 @@ pkgver() {
prepare () {
cd "os-patches"
- patch -Np2 < ../block-webkit-filechooser.patch
- patch -Np2 < ../add-preview-widget.patch
+ patch -Np1 < ../add-preview-widget.patch
}
build() {
diff --git a/add-preview-widget.patch b/add-preview-widget.patch
index 7fb730286dc9..0aa6d431fb62 100644
--- a/add-preview-widget.patch
+++ b/add-preview-widget.patch
@@ -1,80 +1,181 @@
---- src/os-patches/lib/widgets/ephy-file-chooser.c~ 2018-09-30 04:45:43.003990684 +0900
-+++ src/os-patches/lib/widgets/ephy-file-chooser.c 2018-10-07 00:40:58.833626868 +0900
-@@ -32,6 +32,12 @@
+diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
+index f18b8acf0..f9ff26654 100644
+--- a/embed/ephy-web-view.c
++++ b/embed/ephy-web-view.c
+@@ -31,6 +31,7 @@
+ #include "ephy-embed-utils.h"
+ #include "ephy-embed.h"
+ #include "ephy-favicon-helpers.h"
++#include "ephy-file-chooser.h"
+ #include "ephy-file-helpers.h"
+ #include "ephy-file-monitor.h"
+ #include "ephy-gsb-utils.h"
+@@ -300,6 +301,59 @@ popups_manager_hide_all (EphyWebView *view)
+ view->shown_popups = NULL;
+ }
+
++static void
++open_response_cb (GtkFileChooser *dialog,
++ gint response,
++ WebKitFileChooserRequest *request)
++{
++ if (response == GTK_RESPONSE_ACCEPT) {
++ GSList *file_list = gtk_file_chooser_get_filenames (dialog);
++ GPtrArray *file_array = g_ptr_array_new ();
++
++ for (GSList *file = file_list; file; file = g_slist_next (file))
++ g_ptr_array_add (file_array, file->data);
++
++ g_ptr_array_add (file_array, NULL);
++ webkit_file_chooser_request_select_files (request, (const char * const *)file_array->pdata);
++ g_slist_free_full (file_list, g_free);
++ g_ptr_array_free (file_array, FALSE);
++ } else {
++ webkit_file_chooser_request_cancel (request);
++ }
++
++ g_object_unref (request);
++ g_object_unref (dialog);
++}
++
++static gboolean
++ephy_web_view_run_file_chooser (WebKitWebView *web_view,
++ WebKitFileChooserRequest *request)
++{
++
++ GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (web_view));
++ GtkFileChooser *dialog;
++ gboolean allows_multiple_selection = webkit_file_chooser_request_get_select_multiple (request);
++ GtkFileFilter *filter = webkit_file_chooser_request_get_mime_types_filter (request);
++
++ dialog = ephy_create_file_chooser (_("Open"),
++ GTK_WIDGET (toplevel),
++ GTK_FILE_CHOOSER_ACTION_OPEN,
++ EPHY_FILE_FILTER_ALL_SUPPORTED);
++
++ if (filter)
++ gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), filter);
++
++ gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (dialog), allows_multiple_selection);
++
++ g_signal_connect (dialog, "response",
++ G_CALLBACK (open_response_cb),
++ g_object_ref (request));
++
++ gtk_native_dialog_show (GTK_NATIVE_DIALOG (dialog));
++
++ return TRUE;
++}
++
+ static void
+ ephy_web_view_set_popups_allowed (EphyWebView *view,
+ gboolean allowed)
+@@ -1126,6 +1180,7 @@ ephy_web_view_class_init (EphyWebViewClass *klass)
+ {
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
++ WebKitWebViewClass *webkit_webview_class = WEBKIT_WEB_VIEW_CLASS (klass);
+
+ gobject_class->dispose = ephy_web_view_dispose;
+ gobject_class->finalize = ephy_web_view_finalize;
+@@ -1136,6 +1191,8 @@ ephy_web_view_class_init (EphyWebViewClass *klass)
+ widget_class->button_press_event = ephy_web_view_button_press_event;
+ widget_class->key_press_event = ephy_web_view_key_press_event;
+
++ webkit_webview_class->run_file_chooser = ephy_web_view_run_file_chooser;
++
+ /**
+ * EphyWebView:address:
+ *
+diff --git a/lib/widgets/ephy-file-chooser.c b/lib/widgets/ephy-file-chooser.c
+index a0a53b73e..d27309105 100644
+--- a/lib/widgets/ephy-file-chooser.c
++++ b/lib/widgets/ephy-file-chooser.c
+@@ -31,7 +31,13 @@
+
#include <gtk/gtk.h>
#include <glib/gi18n.h>
++#include <glib/gstdio.h>
-+#include <sys/types.h>
+#include <sys/stat.h>
-+#include <glib/gstdio.h>
++#include <sys/types.h>
+
+#define MAX_PREVIEW_SIZE 180
+#define MAX_PREVIEW_SOURCE_SIZE 4096
static GtkFileFilter *
ephy_file_chooser_add_pattern_filter (GtkFileChooser *dialog,
-@@ -89,6 +92,53 @@
+@@ -89,6 +95,53 @@ ephy_file_chooser_add_mime_filter (GtkFileChooser *dialog,
return filth;
}
+static void
+update_preview_cb (GtkFileChooser *file_chooser,
-+ gpointer data)
++ gpointer data)
+{
+ GtkImage *preview = GTK_IMAGE (data);
-+ g_autofree char *filename = gtk_file_chooser_get_preview_filename(file_chooser);
-+
++ g_autofree char *filename = gtk_file_chooser_get_preview_filename (file_chooser);
++ gint preview_width = 0;
++ gint preview_height = 0;
+ struct g_stat st_buf;
-+ if (!filename || g_stat(filename, &st_buf) || (!S_ISREG(st_buf.st_mode))) {
-+ gtk_file_chooser_set_preview_widget_active(file_chooser, FALSE);
++ g_autoptr (GdkPixbuf) pixbuf = NULL;
++
++ GdkPixbufFormat *preview_format = gdk_pixbuf_get_file_info (filename,
++ &preview_width,
++ &preview_height);
++
++ if (!filename || g_stat (filename, &st_buf) || (!S_ISREG (st_buf.st_mode))) {
++ gtk_file_chooser_set_preview_widget_active (file_chooser, FALSE);
+ return; // stat failed or file is not regular
+ }
+
-+ gint preview_width = 0;
-+ gint preview_height = 0;
-+ GdkPixbufFormat *preview_format = gdk_pixbuf_get_file_info(filename,
-+ &preview_width,
-+ &preview_height);
+ if (!preview_format ||
+ preview_width <= 0 || preview_height <= 0 ||
+ preview_width > MAX_PREVIEW_SOURCE_SIZE ||
+ preview_height > MAX_PREVIEW_SOURCE_SIZE) {
-+ gtk_file_chooser_set_preview_widget_active(file_chooser, FALSE);
++ gtk_file_chooser_set_preview_widget_active (file_chooser, FALSE);
+ return; // unpreviewable, 0px, or unsafely large
+ }
+
-+ g_autoptr(GdkPixbuf) pixbuf = NULL;
+ if (preview_width > MAX_PREVIEW_SIZE || preview_height > MAX_PREVIEW_SIZE) {
-+ pixbuf = gdk_pixbuf_new_from_file_at_size(filename,
-+ MAX_PREVIEW_SIZE,
-+ MAX_PREVIEW_SIZE,
-+ NULL);
-+ }
-+ else {
-+ pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
++ pixbuf = gdk_pixbuf_new_from_file_at_size (filename,
++ MAX_PREVIEW_SIZE,
++ MAX_PREVIEW_SIZE,
++ NULL);
++ } else {
++ pixbuf = gdk_pixbuf_new_from_file (filename, NULL);
+ }
+
-+ pixbuf = gdk_pixbuf_apply_embedded_orientation(pixbuf);
++ pixbuf = gdk_pixbuf_apply_embedded_orientation (pixbuf);
+
-+ gtk_widget_set_size_request(GTK_WIDGET (preview),
-+ gdk_pixbuf_get_width(pixbuf) + 6,
-+ gdk_pixbuf_get_height(pixbuf) + 6);
++ gtk_widget_set_size_request (GTK_WIDGET (preview),
++ gdk_pixbuf_get_width (pixbuf) + 6,
++ gdk_pixbuf_get_height (pixbuf) + 6);
+
-+ gtk_image_set_from_pixbuf(preview, pixbuf);
-+ gtk_file_chooser_set_preview_widget_active(file_chooser, pixbuf != NULL);
++ gtk_image_set_from_pixbuf (preview, pixbuf);
++ gtk_file_chooser_set_preview_widget_active (file_chooser, pixbuf != NULL);
+}
+
GtkFileChooser *
ephy_create_file_chooser (const char *title,
GtkWidget *parent,
-@@ -121,6 +195,11 @@
+@@ -98,6 +151,7 @@ ephy_create_file_chooser (const char *title,
+ GtkFileChooser *dialog;
+ GtkFileFilter *filter[EPHY_FILE_FILTER_LAST];
+ char *downloads_dir;
++ GtkWidget *preview = gtk_image_new ();
+
+ g_assert (GTK_IS_WINDOW (parent));
+ g_assert (default_filter >= 0 && default_filter <= EPHY_FILE_FILTER_LAST);
+@@ -121,6 +175,12 @@ ephy_create_file_chooser (const char *title,
gtk_file_chooser_native_set_accept_label (GTK_FILE_CHOOSER_NATIVE (dialog), _("_Save"));
}
-+ GtkWidget *preview = gtk_image_new();
-+ gtk_file_chooser_set_preview_widget(dialog, preview);
-+ gtk_file_chooser_set_use_preview_label(dialog, FALSE);
-+ g_signal_connect(dialog, "update-preview", G_CALLBACK(update_preview_cb), preview);
++ gtk_file_chooser_set_preview_widget (dialog, preview);
++ gtk_file_chooser_set_use_preview_label (dialog, FALSE);
++ g_signal_connect (dialog, "update-preview",
++ G_CALLBACK (update_preview_cb),
++ preview);
+
if (default_filter != EPHY_FILE_FILTER_NONE) {
filter[EPHY_FILE_FILTER_ALL_SUPPORTED] =
diff --git a/block-webkit-filechooser.patch b/block-webkit-filechooser.patch
deleted file mode 100644
index 8c2a98df31a2..000000000000
--- a/block-webkit-filechooser.patch
+++ /dev/null
@@ -1,87 +0,0 @@
---- src/os-patches/embed/ephy-web-view.c~ 2018-10-13 04:25:04.320563918 +0900
-+++ src/os-patches/embed/ephy-web-view.c 2018-10-14 15:48:39.428728086 +0900
-@@ -31,6 +31,7 @@
- #include "ephy-embed-utils.h"
- #include "ephy-embed.h"
- #include "ephy-favicon-helpers.h"
-+#include "ephy-file-chooser.h"
- #include "ephy-file-helpers.h"
- #include "ephy-file-monitor.h"
- #include "ephy-gsb-utils.h"
-@@ -293,6 +294,58 @@
- }
-
- static void
-+open_response_cb (GtkFileChooser* dialog, gint response, WebKitFileChooserRequest* request)
-+{
-+ if (response == GTK_RESPONSE_ACCEPT) {
-+ GSList *filesList = gtk_file_chooser_get_filenames (dialog);
-+ GPtrArray *filesArray = g_ptr_array_new ();
-+ for (GSList *file = filesList; file; file = g_slist_next (file))
-+ g_ptr_array_add (filesArray, file->data);
-+ g_ptr_array_add (filesArray, 0);
-+ webkit_file_chooser_request_select_files (request, (const gchar * const *)filesArray->pdata);
-+ g_slist_free (filesList);
-+ g_ptr_array_free (filesArray, FALSE);
-+ } else {
-+ webkit_file_chooser_request_cancel (request);
-+ }
-+
-+ g_object_unref (request);
-+
-+ g_object_unref (dialog);
-+}
-+
-+static gboolean
-+ephy_web_view_run_file_chooser (WebKitWebView *web_view,
-+ WebKitFileChooserRequest *request)
-+{
-+
-+ GtkWidget* toplevel = gtk_widget_get_toplevel(GTK_WIDGET(web_view));
-+
-+ GtkFileChooser *dialog;
-+
-+ dialog = ephy_create_file_chooser (_("Open"),
-+ GTK_WIDGET (toplevel),
-+ GTK_FILE_CHOOSER_ACTION_OPEN,
-+ EPHY_FILE_FILTER_ALL_SUPPORTED);
-+
-+ gboolean allowsMultipleSelection = webkit_file_chooser_request_get_select_multiple(request);
-+
-+ GtkFileFilter* filter = webkit_file_chooser_request_get_mime_types_filter(request);
-+
-+ if (filter)
-+ gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(dialog), filter);
-+
-+ gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), allowsMultipleSelection);
-+
-+ g_signal_connect (dialog, "response",
-+ G_CALLBACK (open_response_cb), g_object_ref(request));
-+
-+ gtk_native_dialog_show (GTK_NATIVE_DIALOG (dialog));
-+
-+ return TRUE;
-+}
-+
-+static void
- ephy_web_view_set_popups_allowed (EphyWebView *view,
- gboolean allowed)
- {
-@@ -1057,7 +1104,8 @@
- ephy_web_view_class_init (EphyWebViewClass *klass)
- {
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-+ WebKitWebViewClass *webkit_webview_class = WEBKIT_WEB_VIEW_CLASS (klass);
-
- gobject_class->dispose = ephy_web_view_dispose;
- gobject_class->finalize = ephy_web_view_finalize;
-@@ -1068,6 +1116,8 @@
- widget_class->button_press_event = ephy_web_view_button_press_event;
- widget_class->key_press_event = ephy_web_view_key_press_event;
-
-+ webkit_webview_class->run_file_chooser = ephy_web_view_run_file_chooser;
-+
- /**
- * EphyWebView:address:
- *