[geany/geany-plugins] 57e0cd: geanyvc: Use GTK3-compatible GtkSpell when using GTK3

Sagar Chalise git-noreply at xxxxx
Wed Feb 17 18:38:24 UTC 2016


Branch:      refs/heads/master
Author:      Sagar Chalise <chalisesagar at gmail.com>
Committer:   Colomban Wendling <ban at herbesfolles.org>
Date:        Wed, 17 Feb 2016 18:38:24 UTC
Commit:      57e0cd0dd9f727e689eea6d77eda896c664123d1
             https://github.com/geany/geany-plugins/commit/57e0cd0dd9f727e689eea6d77eda896c664123d1

Log Message:
-----------
geanyvc: Use GTK3-compatible GtkSpell when using GTK3

Closes #342.


Modified Paths:
--------------
    build/geanyvc.m4
    geanyvc/src/geanyvc.c

Modified: build/geanyvc.m4
7 lines changed, 4 insertions(+), 3 deletions(-)
===================================================================
@@ -6,12 +6,13 @@ AC_DEFUN([GP_CHECK_GEANYVC],
         AC_HELP_STRING([--enable-gtkspell=ARG],
             [Enable GtkSpell support in GeanyVC. [[default=auto]]]),,
         enable_gtkspell=auto)
-
+    GP_CHECK_GTK3([gtkspell_package=gtkspell3-3.0],
+                  [gtkspell_package=gtkspell-2.0])
     if [[ x"$enable_gtkspell" = "xauto" ]]; then
-        PKG_CHECK_MODULES(GTKSPELL, gtkspell-2.0,
+        PKG_CHECK_MODULES(GTKSPELL, $gtkspell_package,
             enable_gtkspell=yes, enable_gtkspell=no)
     elif [[ x"$enable_gtkspell" = "xyes" ]]; then
-        PKG_CHECK_MODULES(GTKSPELL, [gtkspell-2.0])
+        PKG_CHECK_MODULES(GTKSPELL, [$gtkspell_package])
     fi
     if [[ x"$enable_gtkspell" = "xyes" ]]; then
         AC_DEFINE(USE_GTKSPELL, 1, [GtkSpell support])


Modified: geanyvc/src/geanyvc.c
38 lines changed, 22 insertions(+), 16 deletions(-)
===================================================================
@@ -39,6 +39,25 @@
 
 #ifdef USE_GTKSPELL
 #include <gtkspell/gtkspell.h>
+/* forward compatibility with GtkSpell3 */
+#if GTK_CHECK_VERSION(3, 0, 0)
+#define GtkSpell GtkSpellChecker
+#define gtkspell_set_language gtk_spell_checker_set_language
+static GtkSpell *gtkspell_new_attach(GtkTextView *view, const gchar *lang, GError **error)
+{
+	GtkSpellChecker *speller = gtk_spell_checker_new();
+
+	if (! lang || gtk_spell_checker_set_language(speller, lang, error))
+		gtk_spell_checker_attach(speller, view);
+	else
+	{
+		g_object_unref(g_object_ref_sink(speller));
+		speller = NULL;
+	}
+
+	return speller;
+}
+#endif
 #endif
 
 GeanyData *geany_data;
@@ -1586,27 +1605,14 @@ vccommit_activated(G_GNUC_UNUSED GtkMenuItem * menuitem, G_GNUC_UNUSED gpointer
 	gtk_paned_set_position(GTK_PANED(vpaned2), height * 50 / 100);
 
 #ifdef USE_GTKSPELL
-	speller = gtkspell_new_attach(GTK_TEXT_VIEW(messageView), NULL, &spellcheck_error);
-	if (speller == NULL)
+	speller = gtkspell_new_attach(GTK_TEXT_VIEW(messageView), EMPTY(lang) ? NULL : lang, &spellcheck_error);
+	if (speller == NULL && spellcheck_error != NULL)
 	{
-		ui_set_statusbar(FALSE, _("Error initializing spell checking: %s"),
+		ui_set_statusbar(TRUE, _("Error initializing spell checking: %s"),
 				 spellcheck_error->message);
 		g_error_free(spellcheck_error);
 		spellcheck_error = NULL;
 	}
-	else if (!EMPTY(lang))
-	{
-		gtkspell_set_language(speller, lang, &spellcheck_error);
-		if (spellcheck_error != NULL)
-		{
-			ui_set_statusbar(TRUE,
-					 _
-					 ("Error while setting up language for spellchecking. Please check configuration. Error message was: %s"),
-					 spellcheck_error->message);
-			g_error_free(spellcheck_error);
-			spellcheck_error = NULL;
-		}
-	}
 #endif
 
 	/* put the input focus to the commit message text view */



--------------
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