diff options
author | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2017-03-02 02:19:13 +0200 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2017-03-02 02:19:13 +0200 |
commit | e960c18f789ad5d1a539d81b21054900b16d0797 (patch) | |
tree | a1876cd5e196412440a73a8775d3f5b6f2742435 /src/ui | |
parent | bd6c47fa5aee6c09b443dab194a6ed2704337467 (diff) | |
download | metacity-e960c18f789ad5d1a539d81b21054900b16d0797.tar.gz |
tooltip: simplify code
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/meta-tooltip.c | 74 |
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 * |