]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
[label] Operate with display set to NULL
authorCharlie Brej <cbrej@cs.man.ac.uk>
Tue, 17 Nov 2009 22:46:32 +0000 (22:46 +0000)
committerCharlie Brej <cbrej@cs.man.ac.uk>
Tue, 17 Nov 2009 22:46:32 +0000 (22:46 +0000)
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.

src/plugins/controls/label/plugin.c

index 5f1d1679a31a51f9cce25f6a62ccfd15e7ec1728..4e053fd1980b9af07fd7f5018c98b0850585ca5f 100644 (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;