don't load font unless needed
This commit is contained in:
parent
750f55b6ef
commit
5a149e01ae
@ -216,6 +216,7 @@ struct xrdp_painter* xrdp_painter_create(struct xrdp_wm* wn);
|
||||
void xrdp_painter_delete(struct xrdp_painter* self);
|
||||
int xrdp_painter_begin_update(struct xrdp_painter* self);
|
||||
int xrdp_painter_end_update(struct xrdp_painter* self);
|
||||
int xrdp_painter_font_needed(struct xrdp_painter* self);
|
||||
int xrdp_painter_set_clip(struct xrdp_painter* self,
|
||||
int x, int y, int cx, int cy);
|
||||
int xrdp_painter_clr_clip(struct xrdp_painter* self);
|
||||
|
@ -233,6 +233,7 @@ int xrdp_bitmap_set_focus(struct xrdp_bitmap* self, int focused)
|
||||
return 0;
|
||||
}
|
||||
painter = xrdp_painter_create(self->wm);
|
||||
xrdp_painter_font_needed(painter);
|
||||
xrdp_painter_begin_update(painter);
|
||||
if (focused)
|
||||
{
|
||||
@ -827,6 +828,7 @@ int xrdp_bitmap_invalidate(struct xrdp_bitmap* self, struct xrdp_rect* rect)
|
||||
if (self->type == WND_TYPE_BITMAP) /* if 0, bitmap, leave */
|
||||
return 0;
|
||||
painter = xrdp_painter_create(self->wm);
|
||||
xrdp_painter_font_needed(painter);
|
||||
painter->rop = 0xcc; /* copy */
|
||||
if (rect == 0)
|
||||
painter->use_clip = 0;
|
||||
|
@ -73,6 +73,7 @@ struct xrdp_font* xrdp_font_create(struct xrdp_wm* wm)
|
||||
int datasize;
|
||||
struct xrdp_font_item* f;
|
||||
|
||||
//g_printf("loading font\n");
|
||||
self = (struct xrdp_font*)g_malloc(sizeof(struct xrdp_font), 1);
|
||||
self->wm = wm;
|
||||
make_stream(s);
|
||||
|
@ -31,7 +31,6 @@ struct xrdp_painter* xrdp_painter_create(struct xrdp_wm* wm)
|
||||
self->wm = wm;
|
||||
self->orders = wm->orders;
|
||||
self->rop = 0xcc; /* copy */
|
||||
self->font = xrdp_font_create(wm);
|
||||
self->clip_children = 1;
|
||||
return self;
|
||||
}
|
||||
@ -61,6 +60,16 @@ int xrdp_painter_end_update(struct xrdp_painter* self)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
int xrdp_painter_font_needed(struct xrdp_painter* self)
|
||||
{
|
||||
if (self->font == 0)
|
||||
{
|
||||
self->font = xrdp_font_create(self->wm);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/* returns boolean, true if there is something to draw */
|
||||
int xrdp_painter_clip_adj(struct xrdp_painter* self, int* x, int* y,
|
||||
@ -415,6 +424,7 @@ int xrdp_painter_text_width(struct xrdp_painter* self, char* text)
|
||||
int len;
|
||||
struct xrdp_font_item* font_item;
|
||||
|
||||
xrdp_painter_font_needed(self);
|
||||
rv = 0;
|
||||
len = g_strlen(text);
|
||||
for (index = 0; index < len; index++)
|
||||
@ -433,6 +443,7 @@ int xrdp_painter_text_height(struct xrdp_painter* self, char* text)
|
||||
int len;
|
||||
struct xrdp_font_item* font_item;
|
||||
|
||||
xrdp_painter_font_needed(self);
|
||||
rv = 0;
|
||||
len = g_strlen(text);
|
||||
for (index = 0; index < len; index++)
|
||||
@ -480,6 +491,7 @@ int xrdp_painter_draw_text(struct xrdp_painter* self,
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
xrdp_painter_font_needed(self);
|
||||
font = self->font;
|
||||
f = 0;
|
||||
k = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user