[gedit/zbrown/deteplification-src: 569/633] StatusMenuButton: do not use advanced GObject techniques
- From: Zander Brown <zbrown src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit/zbrown/deteplification-src: 569/633] StatusMenuButton: do not use advanced GObject techniques
- Date: Sat, 10 Apr 2021 12:48:10 +0000 (UTC)
commit 556b9f1443bdde2d82ef2e5acb31e90b0a676fc7
Author: Sébastien Wilmet <swilmet gnome org>
Date: Wed Nov 25 18:03:08 2020 +0100
StatusMenuButton: do not use advanced GObject techniques
I prefer to have simple, dumb code, which is a little less performant.
Instead of needing, in the future, to deal with more tricky code (to
port to new APIs, to debug the code, etc).
gedit/gedit-status-menu-button.c | 44 +++++++++++++---------------------------
1 file changed, 14 insertions(+), 30 deletions(-)
---
diff --git a/gedit/gedit-status-menu-button.c b/gedit/gedit-status-menu-button.c
index 8ba6cf5fd..98deed7fc 100644
--- a/gedit/gedit-status-menu-button.c
+++ b/gedit/gedit-status-menu-button.c
@@ -26,21 +26,13 @@ struct _GeditStatusMenuButton
GtkLabel *label;
};
-typedef struct
-{
- GtkCssProvider *css_provider;
-} GeditStatusMenuButtonClassPrivate;
-
enum
{
PROP_0,
PROP_LABEL
};
-G_DEFINE_TYPE_WITH_CODE (GeditStatusMenuButton,
- gedit_status_menu_button,
- GTK_TYPE_MENU_BUTTON,
- g_type_add_class_private (g_define_type_id, sizeof
(GeditStatusMenuButtonClassPrivate)))
+G_DEFINE_TYPE (GeditStatusMenuButton, gedit_status_menu_button, GTK_TYPE_MENU_BUTTON)
static void
gedit_status_menu_button_get_property (GObject *object,
@@ -87,14 +79,6 @@ gedit_status_menu_button_class_init (GeditStatusMenuButtonClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
- GeditStatusMenuButtonClassPrivate *class_priv;
-
- static const gchar style[] =
- "* {\n"
- " padding: 1px 8px 2px 4px;\n"
- " border: 0;\n"
- " outline-width: 0;\n"
- "}\n";
object_class->get_property = gedit_status_menu_button_get_property;
object_class->set_property = gedit_status_menu_button_set_property;
@@ -105,31 +89,31 @@ gedit_status_menu_button_class_init (GeditStatusMenuButtonClass *klass)
gtk_widget_class_set_template_from_resource (widget_class,
"/org/gnome/gedit/ui/gedit-status-menu-button.ui");
gtk_widget_class_bind_template_child_internal (widget_class, GeditStatusMenuButton, label);
-
- /* Store the CSS provider in the class private data so it is shared
- * among all instances.
- */
- class_priv = G_TYPE_CLASS_GET_PRIVATE (klass, GEDIT_TYPE_STATUS_MENU_BUTTON,
GeditStatusMenuButtonClassPrivate);
- class_priv->css_provider = gtk_css_provider_new ();
- gtk_css_provider_load_from_data (class_priv->css_provider, style, -1, NULL);
}
static void
gedit_status_menu_button_init (GeditStatusMenuButton *button)
{
+ GtkCssProvider *css_provider;
GtkStyleContext *context;
- GeditStatusMenuButtonClassPrivate *class_priv;
+ const gchar *css_style =
+ "* {\n"
+ " padding: 1px 8px 2px 4px;\n"
+ " border: 0;\n"
+ " outline-width: 0;\n"
+ "}\n";
gtk_widget_init_template (GTK_WIDGET (button));
/* Make it as small as possible. */
+ css_provider = gtk_css_provider_new ();
+ gtk_css_provider_load_from_data (css_provider, css_style, -1, NULL);
+
context = gtk_widget_get_style_context (GTK_WIDGET (button));
- class_priv = G_TYPE_CLASS_GET_PRIVATE (G_TYPE_INSTANCE_GET_CLASS (button,
GEDIT_TYPE_STATUS_MENU_BUTTON, GeditStatusMenuButtonClass),
- GEDIT_TYPE_STATUS_MENU_BUTTON,
- GeditStatusMenuButtonClassPrivate);
gtk_style_context_add_provider (context,
- GTK_STYLE_PROVIDER (class_priv->css_provider),
- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ GTK_STYLE_PROVIDER (css_provider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ g_object_unref (css_provider);
}
GtkWidget *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]