void html_engine_hide_cursor (HTMLEngine *engine) { HTMLEngine *e = engine; g_return_if_fail (engine != NULL); g_return_if_fail (HTML_IS_ENGINE (engine)); if ((engine->editable || engine->caret_mode) && engine->cursor_hide_count == 0) { if (!engine->editable) { e = html_object_engine (engine->cursor->object, NULL); if (e) { e->caret_mode = engine->caret_mode; html_cursor_copy (e->cursor, engine->cursor); } else e = engine; } html_engine_draw_cursor_in_area (e, 0, 0, -1, -1); } engine->cursor_hide_count++; }
static void draw (HTMLObject *o, HTMLPainter *p, gint x, gint y, gint width, gint height, gint tx, gint ty) { HTMLObject *aclue; HTMLClueV *cluev; GdkRectangle paint; cluev = HTML_CLUEV (o); if (!html_object_intersect (o, &paint, x, y, width, height)) return; if (cluev->background_color) { html_painter_alloc_color (p, &cluev->background_color->color); html_painter_draw_background (p, &cluev->background_color->color, NULL, tx + paint.x, ty + paint.y, paint.width, paint.height, 0, 0); } HTML_OBJECT_CLASS (&html_clue_class)->draw (o, p, x, y , width, height, tx, ty); tx += o->x; ty += o->y - o->ascent; for ( aclue = HTML_CLUEV (o)->align_left_list; aclue != NULL; aclue = cluev_next_aligned (aclue) ) { html_object_draw (aclue, p, x - o->x - aclue->parent->x, y - (o->y - o->ascent) - (aclue->parent->y - aclue->parent->ascent), width - aclue->parent->x, height, tx + aclue->parent->x, ty + aclue->parent->y - aclue->parent->ascent); } for (aclue = HTML_CLUEV (o)->align_right_list; aclue != NULL; aclue = cluev_next_aligned (aclue)) { html_object_draw (aclue, p, x - o->x - aclue->parent->x, y - (o->y - o->ascent) - (aclue->parent->y - aclue->parent->ascent), width - aclue->parent->x, height, tx + aclue->parent->x, ty + aclue->parent->y - aclue->parent->ascent); } if (cluev->border_style != HTML_BORDER_NONE && cluev->border_width > 0) { GdkColor *color; if (cluev->border_color) { html_painter_alloc_color (p, &cluev->border_color->color); color = &cluev->border_color->color; } else { HTMLEngine *e = html_object_engine (o, GTK_HTML (p->widget)->engine); color = &html_colorset_get_color_allocated (e->settings->color_set, p, HTMLTextColor)->color; } html_painter_draw_border (p, color, tx, ty, o->width, o->ascent + o->descent, cluev->border_style, html_painter_get_pixel_size (p) * cluev->border_width); } }