From abf66dd66a275f059a76d9cab994162cf3ea43b0 Mon Sep 17 00:00:00 2001 From: Jehan Date: Sun, 5 Nov 2023 21:49:37 +0100 Subject: [PATCH] plug-ins: prevent explicit http scheme to be automatically changed to https. This completes commit 685c8bde99 where the http:// scheme was automatically transformed into https:// in some cases, in particular while typing (when pasting for instance, it was still possible to add an http URL). So let's block "toggled" signal handlers when the URL is explicitely edited to prevent this annoying issue. (cherry picked from commit b991f8b361c7c2dd5736309dc9d6109459d13c24) --- plug-ins/imagemap/imap_edit_area_info.c | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/plug-ins/imagemap/imap_edit_area_info.c b/plug-ins/imagemap/imap_edit_area_info.c index 8fad06d0d8..024e5f9c8b 100644 --- a/plug-ins/imagemap/imap_edit_area_info.c +++ b/plug-ins/imagemap/imap_edit_area_info.c @@ -40,6 +40,23 @@ static gboolean callback_lock; +static void select_web_cb (GtkWidget *widget, + AreaInfoDialog_t *param); +static void select_ftp_cb (GtkWidget *widget, + AreaInfoDialog_t *param); +static void select_gopher_cb (GtkWidget *widget, + AreaInfoDialog_t *param); +static void select_other_cb (GtkWidget *widget, + AreaInfoDialog_t *param); +static void select_file_cb (GtkWidget *widget, + AreaInfoDialog_t *param); +static void select_wais_cb (GtkWidget *widget, + AreaInfoDialog_t *param); +static void select_telnet_cb (GtkWidget *widget, + AreaInfoDialog_t *param); +static void select_email_cb (GtkWidget *widget, + AreaInfoDialog_t *param); + static gchar* relative_filter(const char *name, gpointer data) @@ -77,7 +94,23 @@ url_changed (GtkWidget *widget, button = param->other; callback_lock = TRUE; + g_signal_handlers_block_by_func (param->web_site, G_CALLBACK (select_web_cb), data); + g_signal_handlers_block_by_func (param->ftp_site, G_CALLBACK (select_ftp_cb), data); + g_signal_handlers_block_by_func (param->gopher, G_CALLBACK (select_gopher_cb), data); + g_signal_handlers_block_by_func (param->other, G_CALLBACK (select_other_cb), data); + g_signal_handlers_block_by_func (param->file, G_CALLBACK (select_file_cb), data); + g_signal_handlers_block_by_func (param->wais, G_CALLBACK (select_wais_cb), data); + g_signal_handlers_block_by_func (param->telnet, G_CALLBACK (select_telnet_cb), data); + g_signal_handlers_block_by_func (param->email, G_CALLBACK (select_email_cb), data); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); + g_signal_handlers_unblock_by_func (param->web_site, G_CALLBACK (select_web_cb), data); + g_signal_handlers_unblock_by_func (param->ftp_site, G_CALLBACK (select_ftp_cb), data); + g_signal_handlers_unblock_by_func (param->gopher, G_CALLBACK (select_gopher_cb), data); + g_signal_handlers_unblock_by_func (param->other, G_CALLBACK (select_other_cb), data); + g_signal_handlers_unblock_by_func (param->file, G_CALLBACK (select_file_cb), data); + g_signal_handlers_unblock_by_func (param->wais, G_CALLBACK (select_wais_cb), data); + g_signal_handlers_unblock_by_func (param->telnet, G_CALLBACK (select_telnet_cb), data); + g_signal_handlers_unblock_by_func (param->email, G_CALLBACK (select_email_cb), data); } static void