[sysprof] libsysprof-ui: track if color is set
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [sysprof] libsysprof-ui: track if color is set
- Date: Wed, 29 May 2019 22:28:20 +0000 (UTC)
commit 69476aee3cd76588bd90d90a407cafd1d25871d7
Author: Christian Hergert <chergert redhat com>
Date: Wed May 15 13:41:49 2019 -0700
libsysprof-ui: track if color is set
src/libsysprof-ui/sysprof-cell-renderer-duration.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
---
diff --git a/src/libsysprof-ui/sysprof-cell-renderer-duration.c
b/src/libsysprof-ui/sysprof-cell-renderer-duration.c
index 9f1bbd4..c904c21 100644
--- a/src/libsysprof-ui/sysprof-cell-renderer-duration.c
+++ b/src/libsysprof-ui/sysprof-cell-renderer-duration.c
@@ -37,6 +37,7 @@ typedef struct
gchar *text;
SysprofZoomManager *zoom_manager;
GdkRGBA color;
+ guint color_set : 1;
} SysprofCellRendererDurationPrivate;
enum {
@@ -66,6 +67,7 @@ sysprof_cell_renderer_duration_render (GtkCellRenderer *renderer,
SysprofCellRendererDuration *self = (SysprofCellRendererDuration *)renderer;
SysprofCellRendererDurationPrivate *priv = sysprof_cell_renderer_duration_get_instance_private (self);
g_autoptr(GString) str = NULL;
+ GtkStyleContext *style_context;
gdouble x1, x2;
GdkRGBA rgba;
GdkRectangle r;
@@ -79,7 +81,14 @@ sysprof_cell_renderer_duration_render (GtkCellRenderer *renderer,
if (priv->zoom_manager == NULL)
return;
- rgba = priv->color;
+ style_context = gtk_widget_get_style_context (widget);
+
+ if (priv->color_set)
+ rgba = priv->color;
+ else
+ gtk_style_context_get_color (style_context,
+ gtk_style_context_get_state (style_context),
+ &rgba);
duration = sysprof_zoom_manager_get_duration_for_width (priv->zoom_manager, bg_area->width);
@@ -90,9 +99,9 @@ sysprof_cell_renderer_duration_render (GtkCellRenderer *renderer,
x2 = x1;
r.x = cell_area->x + x1;
- r.y = cell_area->y + (cell_area->height / 5.0);
+ r.height = 10;
+ r.y = cell_area->y + (cell_area->height - r.height) / 2;
r.width = MAX (1.0, x2 - x1);
- r.height = cell_area->height / 5.0 * 3.25;
gdk_cairo_rectangle (cr, &r);
gdk_cairo_set_source_rgba (cr, &rgba);
@@ -295,6 +304,7 @@ sysprof_cell_renderer_duration_set_property (GObject *object,
priv->color = *(GdkRGBA *)g_value_get_boxed (value);
else
gdk_rgba_parse (&priv->color, "#000");
+ priv->color_set = !!g_value_get_boolean (value);
break;
case PROP_END_TIME:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]