summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
authorAlberts Muktupāvels <alberts.muktupavels@gmail.com>2017-03-02 02:19:13 +0200
committerAlberts Muktupāvels <alberts.muktupavels@gmail.com>2017-03-02 02:19:13 +0200
commite960c18f789ad5d1a539d81b21054900b16d0797 (patch)
treea1876cd5e196412440a73a8775d3f5b6f2742435 /src/ui
parentbd6c47fa5aee6c09b443dab194a6ed2704337467 (diff)
downloadmetacity-e960c18f789ad5d1a539d81b21054900b16d0797.tar.gz
tooltip: simplify code
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/meta-tooltip.c74
1 files changed, 10 insertions, 64 deletions
diff --git a/src/ui/meta-tooltip.c b/src/ui/meta-tooltip.c
index 3126ba9c..f338b8b0 100644
--- a/src/ui/meta-tooltip.c
+++ b/src/ui/meta-tooltip.c
@@ -18,7 +18,6 @@
#include "config.h"
#include "meta-tooltip.h"
-#include "prefs.h"
struct _MetaTooltip
{
@@ -26,76 +25,32 @@ struct _MetaTooltip
GtkWidget *box;
GtkWidget *label;
-
- gboolean composited;
};
G_DEFINE_TYPE (MetaTooltip, meta_tooltip, GTK_TYPE_WINDOW)
static void
-update_style_class (MetaTooltip *tooltip)
+meta_tooltip_realize (GtkWidget *widget)
{
+ GdkScreen *screen;
+ GdkVisual *visual;
+ gboolean has_rgba;
GtkStyleContext *context;
- context = gtk_widget_get_style_context (GTK_WIDGET (tooltip));
+ screen = gtk_widget_get_screen (widget);
+ visual = gdk_screen_get_rgba_visual (screen);
+ has_rgba = visual && gdk_screen_is_composited (screen);
+ context = gtk_widget_get_style_context (widget);
- if (tooltip->composited)
+ if (has_rgba)
{
- gtk_style_context_remove_class (context, "solid-csd");
+ gtk_widget_set_visual (widget, visual);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_CSD);
}
else
{
- gtk_style_context_remove_class (context, GTK_STYLE_CLASS_CSD);
gtk_style_context_add_class (context, "solid-csd");
}
-}
-
-static void
-prefs_changed_cb (MetaPreference pref,
- void *data)
-{
- MetaTooltip *tooltip;
- gboolean composited;
-
- if (pref != META_PREF_COMPOSITING_MANAGER)
- return;
-
- tooltip = META_TOOLTIP (data);
- composited = meta_prefs_get_compositing_manager ();
-
- if (tooltip->composited == composited)
- return;
-
- tooltip->composited = composited;
- update_style_class (tooltip);
-}
-
-static void
-meta_tooltip_finalize (GObject *object)
-{
- MetaTooltip *tooltip;
-
- tooltip = META_TOOLTIP (object);
-
- meta_prefs_remove_listener (prefs_changed_cb, tooltip);
-
- G_OBJECT_CLASS (meta_tooltip_parent_class)->finalize (object);
-}
-
-static void
-meta_tooltip_realize (GtkWidget *widget)
-{
- GdkScreen *screen;
- GdkVisual *visual;
-
- screen = gtk_widget_get_screen (widget);
- visual = gdk_screen_get_rgba_visual (screen);
-
- if (visual == NULL)
- visual = gdk_screen_get_system_visual (screen);
-
- gtk_widget_set_visual (widget, visual);
GTK_WIDGET_CLASS (meta_tooltip_parent_class)->realize (widget);
}
@@ -103,14 +58,10 @@ meta_tooltip_realize (GtkWidget *widget)
static void
meta_tooltip_class_init (MetaTooltipClass *tooltip_class)
{
- GObjectClass *object_class;
GtkWidgetClass *widget_class;
- object_class = G_OBJECT_CLASS (tooltip_class);
widget_class = GTK_WIDGET_CLASS (tooltip_class);
- object_class->finalize = meta_tooltip_finalize;
-
widget_class->realize = meta_tooltip_realize;
gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_TOOL_TIP);
@@ -134,11 +85,6 @@ meta_tooltip_init (MetaTooltip *tooltip)
gtk_label_set_line_wrap (GTK_LABEL (tooltip->label), TRUE);
gtk_label_set_max_width_chars (GTK_LABEL (tooltip->label), 70);
-
- tooltip->composited = meta_prefs_get_compositing_manager ();
- update_style_class (tooltip);
-
- meta_prefs_add_listener (prefs_changed_cb, tooltip);
}
GtkWidget *