summaryrefslogtreecommitdiff
path: root/libwnck/pager.c
diff options
context:
space:
mode:
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2013-07-20 20:17:35 +0200
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2013-07-20 20:17:35 +0200
commit428a4505544fdb6403784b4aebb420478f64532c (patch)
tree73f1b1ec20dfeadb900dfd4bbd499dfa6a3aea76 /libwnck/pager.c
parent03fb0b79ecbad2ed890a4f3f58348eea1252c7a5 (diff)
downloadlibwnck-428a4505544fdb6403784b4aebb420478f64532c.tar.gz
WnckPager: Use style-context to draw the WS name
Diffstat (limited to 'libwnck/pager.c')
-rw-r--r--libwnck/pager.c35
1 files changed, 13 insertions, 22 deletions
diff --git a/libwnck/pager.c b/libwnck/pager.c
index c4adf7b..c45111f 100644
--- a/libwnck/pager.c
+++ b/libwnck/pager.c
@@ -1240,7 +1240,6 @@ wnck_pager_draw_workspace (WnckPager *pager,
GtkWidget *widget;
GtkStateFlags state;
GtkStyleContext *context;
- GdkRGBA color;
space = wnck_screen_get_workspace (pager->priv->screen, workspace);
if (!space)
@@ -1394,28 +1393,25 @@ wnck_pager_draw_workspace (WnckPager *pager,
else
{
/* Workspace name mode */
+ GtkStateFlags layout_state;
const char *workspace_name;
PangoLayout *layout;
+ WnckWorkspace *ws;
int w, h;
- workspace_name = wnck_workspace_get_name (wnck_screen_get_workspace (pager->priv->screen,
- workspace));
- layout = gtk_widget_create_pango_layout (widget,
- workspace_name);
+ ws = wnck_screen_get_workspace (pager->priv->screen, workspace);
+ workspace_name = wnck_workspace_get_name (ws);
+ layout = gtk_widget_create_pango_layout (widget, workspace_name);
pango_layout_get_pixel_size (layout, &w, &h);
- if (is_current)
- gtk_style_context_get_color (context, GTK_STATE_FLAG_SELECTED, &color);
- else
- gtk_style_context_get_color (context, GTK_STATE_FLAG_NORMAL, &color);
- gdk_cairo_set_source_rgba (cr, &color);
- cairo_move_to (cr,
- rect->x + (rect->width - w) / 2,
- rect->y + (rect->height - h) / 2);
-
- pango_cairo_show_layout (cr, layout);
+ layout_state = (is_current) ? GTK_STATE_FLAG_SELECTED : GTK_STATE_FLAG_NORMAL;
+ gtk_style_context_save (context);
+ gtk_style_context_set_state (context, layout_state);
+ gtk_render_layout (context, cr, rect->x + (rect->width - w) / 2,
+ rect->y + (rect->height - h) / 2, layout);
+ gtk_style_context_restore (context);
g_object_unref (layout);
}
@@ -1423,18 +1419,13 @@ wnck_pager_draw_workspace (WnckPager *pager,
{
gtk_style_context_save (context);
gtk_style_context_set_state (context, GTK_STATE_FLAG_NORMAL);
-
- cairo_save (cr);
gtk_render_frame (context, cr, rect->x, rect->y, rect->width, rect->height);
- cairo_restore (cr);
-
gtk_style_context_restore (context);
cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); /* black */
cairo_set_line_width (cr, 1.0);
- cairo_rectangle (cr,
- rect->x + 0.5, rect->y + 0.5,
- MAX (0, rect->width - 1), MAX (0, rect->height - 1));
+ cairo_rectangle (cr, rect->x + 0.5, rect->y + 0.5,
+ MAX (0, rect->width - 1), MAX (0, rect->height - 1));
cairo_stroke (cr);
}
}