static void impl_activate (PlumaPlugin *plugin, PlumaWindow *window) { WindowData *data; GList *views; GList *item; pluma_debug (DEBUG_PLUGINS); data = g_slice_new (WindowData); g_object_set_data_full (G_OBJECT (window), WINDOW_DATA_KEY, data, (GDestroyNotify) free_window_data); views = pluma_window_get_views (window); for (item = views; item != NULL; item = item->next) { enable_bookmarks (PLUMA_VIEW (item->data), plugin); load_bookmark_metadata (PLUMA_VIEW (item->data)); } g_list_free (views); g_signal_connect (window, "tab-added", G_CALLBACK (on_tab_added), plugin); g_signal_connect (window, "tab-removed", G_CALLBACK (on_tab_removed), plugin); install_menu (window); install_messages (window); }
static void impl_deactivate (PlumaPlugin *plugin, PlumaWindow *window) { WindowData *data; GList *views; GList *item; pluma_debug (DEBUG_PLUGINS); uninstall_menu (window); uninstall_messages (window); views = pluma_window_get_views (window); for (item = views; item != NULL; item = item->next) { disable_bookmarks (PLUMA_VIEW (item->data)); } g_list_free (views); data = BOOKMARKS_DATA (window); g_return_if_fail (data != NULL); g_signal_handlers_disconnect_by_func (window, on_tab_added, plugin); g_signal_handlers_disconnect_by_func (window, on_tab_removed, plugin); g_object_set_data (G_OBJECT (window), WINDOW_DATA_KEY, NULL); }
static void pluma_prefs_manager_editor_font_changed (GSettings *settings, gchar *key, gpointer user_data) { GList *views; GList *l; gchar *font = NULL; gboolean def = TRUE; gint ts; pluma_debug (DEBUG_PREFS); if (strcmp (key, GPM_USE_DEFAULT_FONT) == 0) { def = g_settings_get_boolean (settings, key); if (def) font = pluma_prefs_manager_get_system_font (); else font = pluma_prefs_manager_get_editor_font (); } else if (strcmp (key, GPM_EDITOR_FONT) == 0) { font = g_settings_get_string (settings, key); def = pluma_prefs_manager_get_use_default_font (); } else return; g_return_if_fail (font != NULL); ts = pluma_prefs_manager_get_tabs_size (); views = pluma_app_get_views (pluma_app_get_default ()); l = views; while (l != NULL) { /* Note: we use def=FALSE to avoid PlumaView to query GSettings */ pluma_view_set_font (PLUMA_VIEW (l->data), FALSE, font); gtk_source_view_set_tab_width (GTK_SOURCE_VIEW (l->data), ts); l = l->next; } g_list_free (views); g_free (font); }
static void pluma_prefs_manager_system_font_changed (GSettings *settings, gchar *key, gpointer user_data) { GList *views; GList *l; gchar *font; gint ts; pluma_debug (DEBUG_PREFS); if (strcmp (key, GPM_SYSTEM_FONT) != 0) return; if (!pluma_prefs_manager_get_use_default_font ()) return; font = g_settings_get_string (settings, key); ts = pluma_prefs_manager_get_tabs_size (); views = pluma_app_get_views (pluma_app_get_default ()); l = views; while (l != NULL) { /* Note: we use def=FALSE to avoid PlumaView to query GSettings */ pluma_view_set_font (PLUMA_VIEW (l->data), FALSE, font); gtk_source_view_set_tab_width (GTK_SOURCE_VIEW (l->data), ts); l = l->next; } g_list_free (views); g_free (font); }
static void pluma_automatic_spell_checker_free_internal (PlumaAutomaticSpellChecker *spell) { GtkTextTagTable *table; GtkTextIter start, end; GSList *list; g_return_if_fail (spell != NULL); table = gtk_text_buffer_get_tag_table (GTK_TEXT_BUFFER (spell->doc)); if (table != NULL && spell->tag_highlight != NULL) { gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (spell->doc), &start, &end); gtk_text_buffer_remove_tag (GTK_TEXT_BUFFER (spell->doc), spell->tag_highlight, &start, &end); g_signal_handlers_disconnect_matched (G_OBJECT (table), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, spell); gtk_text_tag_table_remove (table, spell->tag_highlight); } g_signal_handlers_disconnect_matched (G_OBJECT (spell->doc), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, spell); g_signal_handlers_disconnect_matched (G_OBJECT (spell->spell_checker), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, spell); g_object_unref (spell->spell_checker); list = spell->views; while (list != NULL) { PlumaView *view = PLUMA_VIEW (list->data); g_signal_handlers_disconnect_matched (G_OBJECT (view), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, spell); g_signal_handlers_disconnect_matched (G_OBJECT (view), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, spell); list = g_slist_next (list); } g_slist_free (spell->views); g_free (spell); }