static void gwy_tool_response(GwyTool *tool, gint response) { static guint response_id = 0; if (!response_id) response_id = g_signal_lookup("response", GTK_TYPE_DIALOG); switch (response) { case GTK_RESPONSE_CLOSE: case GTK_RESPONSE_DELETE_EVENT: g_signal_stop_emission(tool->dialog, response_id, 0); gwy_tool_hide(tool); break; case GTK_RESPONSE_NONE: g_warning("Tool dialog destroyed."); g_signal_stop_emission(tool->dialog, response_id, 0); g_object_unref(tool); break; default: { GwyToolClass *klass; klass = GWY_TOOL_GET_CLASS(tool); if (klass->response) klass->response(tool, response); } break; } }
static void block_key_signal (GtkWidget *widget, GdkEventKey *event, gpointer signal_id) { UNUSED (event); g_signal_stop_emission (widget, GPOINTER_TO_INT (signal_id), 0); }
void gtk_signal_emit_stop_by_name (GtkObject *object, const gchar *name) { g_return_if_fail (GTK_IS_OBJECT (object)); g_signal_stop_emission (object, g_signal_lookup (name, G_OBJECT_TYPE (object)), 0); }
static void mx_fade_effect_paint_cb (ClutterActor *actor, MxFadeEffect *self) { MxFadeEffectPrivate *priv = self->priv; g_signal_stop_emission (actor, g_signal_lookup ("paint", CLUTTER_TYPE_ACTOR), 0); g_signal_handler_disconnect (actor, priv->blocked_id); priv->blocked_id = 0; }
static void text_inserted (GtkEditable *editable, gchar *new_text, gint new_text_length, gint *position, gpointer user_data) { GtkEntryBuffer *buffer; gchar* new_label; gint i; gint current_length, max_length; gboolean valid; valid = TRUE; buffer = gtk_entry_get_buffer (GTK_ENTRY (editable)); current_length = gtk_entry_buffer_get_length (buffer); max_length = gtk_entry_get_max_length (GTK_ENTRY (editable)); /* honor max length property */ if (current_length + new_text_length > max_length) return; /* stop the default implementation */ g_signal_stop_emission (editable, g_signal_lookup ("insert-text", GTK_TYPE_ENTRY), 0); for (i = 0; i < new_text_length; i++) { gchar c; c = *(new_text + i); /* trying to insert a non-numeric char */ if (c < '0' || c > '9') { valid = FALSE; break; } } if (!valid) return; new_label = g_strdup_printf ("%s%s", gtk_entry_buffer_get_text (buffer), new_text); gtk_entry_buffer_set_text (buffer, new_label, current_length + new_text_length); *position = *position + new_text_length; g_free (new_label); }
static void insert_text(GtkEditable *buffer, gchar *new_text, gint new_text_length, gint *position, gpointer data) { int i; guint sigid; /* Only allow 0-9 to be written to the entry */ for (i = 0; i < new_text_length; i++) { if (new_text[i] < '0' || new_text[i] > '9') { sigid = g_signal_lookup("insert-text", G_OBJECT_TYPE(buffer)); g_signal_stop_emission(buffer, sigid, 0); return; } } }
void dates_details_time_entry_changed (GtkEditable *entry, gchar *new_text, gint new_text_length, gint *position, DatesData *d) { gint i; gchar *c; for (i = 0, c = new_text; c; c = g_utf8_find_next_char (c, (new_text_length != -1) ? (new_text + new_text_length) : NULL)) { if (*c < '0' || *c > '9') { g_signal_stop_emission (entry, g_signal_lookup ( "insert-text", GTK_TYPE_EDITABLE), 0); gdk_beep (); break; } } }
static void glade_gtk_stop_emission_POINTER (gpointer instance, gpointer dummy, gpointer data) { g_signal_stop_emission (instance, GPOINTER_TO_UINT (data), 0); }
static gboolean region_labels_mouse_enter(GtkWidget *w, GdkEventCrossing *ev, gpointer data) { g_signal_stop_emission(GTK_OBJECT(w), g_signal_lookup("enter_notify_event", G_OBJECT_TYPE(GTK_OBJECT(w))), 0); return(false); }