[label] Operate with display set to NULL

Performing a ply_label_show with the display set to NULL allows the label to be
drawn any pixel buffer and not perform any redraw events.
This commit is contained in:
Charlie Brej 2009-11-17 22:46:32 +00:00
parent bfaa5e9742
commit 8debba60b0

View file

@ -221,7 +221,7 @@ set_text_for_control (ply_label_plugin_control_t *label,
free (label->text);
label->text = strdup (text);
size_control (label);
if (!label->is_hidden)
if (!label->is_hidden && label->display != NULL)
ply_pixel_display_draw_area (label->display,
dirty_area.x, dirty_area.y,
dirty_area.width, dirty_area.height);
@ -246,7 +246,7 @@ show_control (ply_label_plugin_control_t *label,
size_control (label);
if (!label->is_hidden)
if (!label->is_hidden && label->display != NULL)
ply_pixel_display_draw_area (label->display,
dirty_area.x, dirty_area.y,
dirty_area.width, dirty_area.height);
@ -260,9 +260,10 @@ void
hide_control (ply_label_plugin_control_t *label)
{
label->is_hidden = true;
ply_pixel_display_draw_area (label->display,
label->area.x, label->area.y,
label->area.width, label->area.height);
if (label->display != NULL)
ply_pixel_display_draw_area (label->display,
label->area.x, label->area.y,
label->area.width, label->area.height);
label->display = NULL;
label->loop = NULL;