[evolution/wip/webkit2] Composer - Don't block selection-changed handlers if they are already blocked
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/wip/webkit2] Composer - Don't block selection-changed handlers if they are already blocked
- Date: Wed, 24 Feb 2016 16:46:07 +0000 (UTC)
commit ab85b8b2683e86a6be7880f7c3af9c9e325eb45b
Author: Tomas Popela <tpopela redhat com>
Date: Wed Feb 24 17:45:49 2016 +0100
Composer - Don't block selection-changed handlers if they are already blocked
.../composer/e-html-editor-web-extension.c | 18 ++++++++++++++++--
1 files changed, 16 insertions(+), 2 deletions(-)
---
diff --git a/web-extensions/composer/e-html-editor-web-extension.c
b/web-extensions/composer/e-html-editor-web-extension.c
index c77e891..a74d139 100644
--- a/web-extensions/composer/e-html-editor-web-extension.c
+++ b/web-extensions/composer/e-html-editor-web-extension.c
@@ -55,6 +55,7 @@ struct _EHTMLEditorWebExtensionPrivate {
GDBusConnection *dbus_connection;
guint registration_id;
guint spell_check_on_scroll_event_source_id;
+ gboolean selection_changed_callbacks_blocked;
/* These properties show the actual state of EHTMLEditorView */
EHTMLEditorSelectionAlignment alignment;
@@ -2959,6 +2960,8 @@ e_html_editor_web_extension_init (EHTMLEditorWebExtension *extension)
g_str_hash, g_str_equal,
(GDestroyNotify) g_free,
(GDestroyNotify) g_free);
+
+ extension->priv->selection_changed_callbacks_blocked = FALSE;
}
static gpointer
@@ -3643,11 +3646,22 @@ e_html_editor_web_extension_set_spell_check_on_scroll_event_source_id (EHTMLEdit
void
e_html_editor_web_extension_block_selection_changed_callback (EHTMLEditorWebExtension *extension)
{
- g_signal_handlers_block_by_func (extension, web_editor_selection_changed_cb, NULL);
+ if (!extension->priv->selection_changed_callbacks_blocked) {
+ /* FIXME WK2 - the handler is added on WebKitWebEditor, not extension */
+ g_signal_handlers_block_by_func (extension, web_editor_selection_changed_cb, NULL);
+ extension->priv->selection_changed_callbacks_blocked = TRUE;
+ }
}
void
e_html_editor_web_extension_unblock_selection_changed_callback (EHTMLEditorWebExtension *extension)
{
- g_signal_handlers_unblock_by_func (extension, web_editor_selection_changed_cb, NULL);
+ if (extension->priv->selection_changed_callbacks_blocked) {
+ /* FIXME WK2 - the handler is added on WebKitWebEditor, not extension */
+ g_signal_handlers_unblock_by_func (extension, web_editor_selection_changed_cb, NULL);
+ extension->priv->selection_changed_callbacks_blocked = FALSE;
+
+ /* FIXME WK2 - missing page-ID, to get to the WebKitWebEditor instance */
+ /*web_editor_selection_changed_cb (editor, extension);*/
+ }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]