PangoLayout *layout;
PangoFontDescription *desc;
gboolean result;
+ PangoRectangle extent;
cairo_save (cr);
cairo_rectangle (cr,
cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 1.0);
pango_cairo_show_layout (cr, layout);
- result = !offset && pango_layout_is_ellipsized (layout);
+ pango_layout_get_pixel_extents (layout, NULL, &extent);
+ if (offset)
+ result = height < (extent.height - offset);
+ else
+ result = pango_layout_is_ellipsized (layout);
g_object_unref (layout);
cairo_restore (cr);
return result;
}
+static void
+stop_scroll_anim (ELHomeAppletPrivate *priv)
+{
+ priv->scroll_on_click = FALSE;
+ priv->scroll_offset = 0;
+ if (priv->scroll_anim_id > 0) {
+ g_source_remove (priv->scroll_anim_id);
+ priv->scroll_anim_id = 0;
+ }
+}
+
static gboolean
expose_event (GtkWidget *self, GdkEventExpose *event)
{
cairo_t *cr;
GdkColor color;
float red, green, blue;
+ int message_height;
+
+ message_height = C_HEIGHT - priv->received->allocation.height - HEADER_HEIGHT;
/* find theme active color */
gtk_style_lookup_color (self->style, "ActiveTextColor", &color);
ellipsized = draw_text (cr, priv->message,
2*C_X, HEADER_HEIGHT,
MESSAGE_WIDTH,
- MESSAGE_HEIGHT - 2*C_Y,
+ message_height,
priv->scroll_offset);
if (!priv->scroll_offset && !priv->active)
priv->scroll_on_click = ellipsized;
cairo_pattern_destroy (grad);
cairo_destroy (cr);
- return GTK_WIDGET_CLASS (el_home_applet_parent_class)->expose_event (self, event);
-}
+ if (!priv->scroll_on_click && !ellipsized && priv->scroll_offset)
+ stop_scroll_anim (priv);
-static void
-stop_scroll_anim (ELHomeAppletPrivate *priv)
-{
- priv->scroll_on_click = FALSE;
- priv->scroll_offset = 0;
- if (priv->scroll_anim_id > 0) {
- g_source_remove (priv->scroll_anim_id);
- priv->scroll_anim_id = 0;
- }
+ return GTK_WIDGET_CLASS (el_home_applet_parent_class)->expose_event (self, event);
}
static void