[gedit] View: minor code change: buffer_changed()
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] View: minor code change: buffer_changed()
- Date: Mon, 23 Nov 2020 18:02:31 +0000 (UTC)
commit 695edf80d18ef045450178aed9273bbbc7b9b387
Author: Sébastien Wilmet <swilmet gnome org>
Date: Mon Nov 23 18:44:15 2020 +0100
View: minor code change: buffer_changed()
- It assumes that the GtkTextBuffer is always a GeditDocument, because
the GtkTextView::create_buffer vfunc is overrided.
- Rename some functions, add some comments, ...
gedit/gedit-view.c | 37 ++++++++++++++++++++-----------------
1 file changed, 20 insertions(+), 17 deletions(-)
---
diff --git a/gedit/gedit-view.c b/gedit/gedit-view.c
index 38e569510..8e3238bc6 100644
--- a/gedit/gedit-view.c
+++ b/gedit/gedit-view.c
@@ -77,25 +77,17 @@ file_read_only_notify_cb (GtkSourceFile *file,
}
static void
-on_notify_buffer_cb (GeditView *view,
- GParamSpec *pspec,
- gpointer userdata)
+buffer_changed (GeditView *view)
{
- GtkTextBuffer *buffer;
+ GeditDocument *doc;
GtkSourceFile *file;
- tepl_signal_group_clear (&view->priv->file_signal_group);
-
- buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
-
- if (!GEDIT_IS_DOCUMENT (buffer))
- {
- return;
- }
-
- file = gedit_document_get_file (GEDIT_DOCUMENT (buffer));
+ doc = GEDIT_DOCUMENT (gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)));
+ file = gedit_document_get_file (doc);
+ tepl_signal_group_clear (&view->priv->file_signal_group);
view->priv->file_signal_group = tepl_signal_group_new (G_OBJECT (file));
+
tepl_signal_group_add (view->priv->file_signal_group,
g_signal_connect (file,
"notify::read-only",
@@ -105,6 +97,14 @@ on_notify_buffer_cb (GeditView *view,
update_editable (view);
}
+static void
+buffer_notify_cb (GeditView *view,
+ GParamSpec *pspec,
+ gpointer user_data)
+{
+ buffer_changed (view);
+}
+
static void
gedit_view_init (GeditView *view)
{
@@ -128,18 +128,21 @@ gedit_view_init (GeditView *view)
gtk_target_list_add_uri_targets (target_list, TARGET_URI_LIST);
}
+ /* GeditViewActivatable */
view->priv->extensions =
peas_extension_set_new (PEAS_ENGINE (gedit_plugins_engine_get_default ()),
GEDIT_TYPE_VIEW_ACTIVATABLE,
"view", view,
NULL);
- /* Act on buffer change */
+ /* Act on buffer changes */
+ buffer_changed (view);
g_signal_connect (view,
"notify::buffer",
- G_CALLBACK (on_notify_buffer_cb),
+ G_CALLBACK (buffer_notify_cb),
NULL);
+ /* CSS stuff */
view->priv->css_provider = gtk_css_provider_new ();
context = gtk_widget_get_style_context (GTK_WIDGET (view));
gtk_style_context_add_class (context, "gedit-view");
@@ -163,7 +166,7 @@ gedit_view_dispose (GObject *object)
* There is no problem calling g_signal_handlers_disconnect_by_func()
* several times (if dispose() is called several times).
*/
- g_signal_handlers_disconnect_by_func (view, on_notify_buffer_cb, NULL);
+ g_signal_handlers_disconnect_by_func (view, buffer_notify_cb, NULL);
g_clear_object (&view->priv->css_provider);
g_clear_pointer (&view->priv->font_desc, pango_font_description_free);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]