#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
-#include <sys/wait.h>
+#if HAVE_SYS_WAIT_H
+# include <sys/wait.h>
+#endif
#include <signal.h>
#include <ctype.h>
#include <string.h>
if (!alt_gtkaspeller) {
gtkaspell_checkers_error_message(
g_strdup_printf(_("Couldn't initialize %s speller."), dictionary));
+ gtkaspeller_delete(gtkaspeller);
+ g_free(gtkaspell);
return NULL;
}
if (!broker) {
gtkaspell_checkers_error_message(
g_strdup(_("Couldn't initialize Enchant broker.")));
+ g_free(gtkaspeller);
return NULL;
}
if ((speller = set_dictionary(broker, dict)) == NULL) {
g_strdup_printf(_("Couldn't initialize %s dictionary:"), dict->fullname));
gtkaspell_checkers_error_message(
g_strdup(enchant_broker_get_error(broker)));
+ g_free(gtkaspeller);
return NULL;
}
gtkaspeller->speller = speller;
set_point_continue(gtkaspell);
}
+void gtkaspell_block_check(GtkAspell *gtkaspell)
+{
+ GtkTextView *gtktext;
+
+ if (gtkaspell == NULL)
+ return;
+
+ gtktext = gtkaspell->gtktext;
+ g_signal_handlers_block_by_func(G_OBJECT(gtktext),
+ G_CALLBACK(entry_insert_cb),
+ gtkaspell);
+ g_signal_handlers_block_by_func(G_OBJECT(gtktext),
+ G_CALLBACK(entry_delete_cb),
+ gtkaspell);
+}
+
+void gtkaspell_unblock_check(GtkAspell *gtkaspell)
+{
+ GtkTextView *gtktext;
+
+ if (gtkaspell == NULL)
+ return;
+
+ gtktext = gtkaspell->gtktext;
+ g_signal_handlers_unblock_by_func(G_OBJECT(gtktext),
+ G_CALLBACK(entry_insert_cb),
+ gtkaspell);
+ g_signal_handlers_unblock_by_func(G_OBJECT(gtktext),
+ G_CALLBACK(entry_delete_cb),
+ gtkaspell);
+}
+
static void replace_real_word(GtkAspell *gtkaspell, const gchar *newword)
{
int oldlen, newlen, wordlen;
GdkEventKey *event,
GtkAspell *gtkaspell)
{
- if (event && event->keyval == GDK_Escape) {
+ if (event && event->keyval == GDK_KEY_Escape) {
gtk_widget_destroy(widget);
return TRUE;
- } else if (event && event->keyval == GDK_Return) {
+ } else if (event && event->keyval == GDK_KEY_Return) {
replace_with_supplied_word_cb(widget, gtkaspell);
return TRUE;
}
gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
gtk_window_set_title(GTK_WINDOW(dialog),_("Replace unknown word"));
- gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
gtk_window_move(GTK_WINDOW(dialog), xx, yy);
g_signal_connect_swapped(G_OBJECT(dialog), "destroy",
GdkEventKey *event,
GtkAspell *gtkaspell)
{
- if (event && (isascii(event->keyval) || event->keyval == GDK_Return)) {
+ if (event && (isascii(event->keyval) || event->keyval == GDK_KEY_Return)) {
gtk_accel_groups_activate(
G_OBJECT(gtkaspell->parent_window),
event->keyval, event->state);
- } else if (event && event->keyval == GDK_Escape) {
+ } else if (event && event->keyval == GDK_KEY_Escape) {
destroy_menu(NULL, gtkaspell);
}
return FALSE;
g_signal_connect(G_OBJECT(item), "activate",
G_CALLBACK(add_word_to_session_cb),
gtkaspell);
- gtk_widget_add_accelerator(item, "activate", accel, GDK_space,
+ gtk_widget_add_accelerator(item, "activate", accel, GDK_KEY_space,
GDK_CONTROL_MASK,
GTK_ACCEL_LOCKED | GTK_ACCEL_VISIBLE);
g_signal_connect(G_OBJECT(item), "activate",
G_CALLBACK(add_word_to_personal_cb),
gtkaspell);
- gtk_widget_add_accelerator(item, "activate", accel, GDK_Return,
+ gtk_widget_add_accelerator(item, "activate", accel, GDK_KEY_Return,
GDK_CONTROL_MASK,
GTK_ACCEL_LOCKED | GTK_ACCEL_VISIBLE);
g_signal_connect(G_OBJECT(item), "activate",
G_CALLBACK(replace_with_create_dialog_cb),
gtkaspell);
- gtk_widget_add_accelerator(item, "activate", accel, GDK_R, 0,
+ gtk_widget_add_accelerator(item, "activate", accel, GDK_KEY_R, 0,
GTK_ACCEL_LOCKED | GTK_ACCEL_VISIBLE);
- gtk_widget_add_accelerator(item, "activate", accel, GDK_R,
+ gtk_widget_add_accelerator(item, "activate", accel, GDK_KEY_R,
GDK_CONTROL_MASK,
GTK_ACCEL_LOCKED);
g_signal_connect(G_OBJECT(item), "activate",
G_CALLBACK(check_with_alternate_cb),
gtkaspell);
- gtk_widget_add_accelerator(item, "activate", accel, GDK_X, 0,
+ gtk_widget_add_accelerator(item, "activate", accel, GDK_KEY_X, 0,
GTK_ACCEL_LOCKED | GTK_ACCEL_VISIBLE);
- gtk_widget_add_accelerator(item, "activate", accel, GDK_X,
+ gtk_widget_add_accelerator(item, "activate", accel, GDK_KEY_X,
GDK_CONTROL_MASK,
GTK_ACCEL_LOCKED);
}
if (curmenu == NULL && count < MENUCOUNT) {
gtk_widget_add_accelerator(item, "activate",
accel,
- GDK_A + count, 0,
+ GDK_KEY_A + count, 0,
GTK_ACCEL_LOCKED |
GTK_ACCEL_VISIBLE);
gtk_widget_add_accelerator(item, "activate",
accel,
- GDK_A + count,
+ GDK_KEY_A + count,
GDK_CONTROL_MASK,
GTK_ACCEL_LOCKED);
}