]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
label-freetype: Force resize calculation when moving control
authorRay Strode <rstrode@redhat.com>
Thu, 4 Jan 2024 21:05:40 +0000 (16:05 -0500)
committerRay Strode <rstrode@redhat.com>
Thu, 4 Jan 2024 21:07:06 +0000 (16:07 -0500)
When moving the label around we need to do a full recalculation
of the metrics, because the position is part of the computation.

src/plugins/controls/label-freetype/plugin.c

index 9b2f369ccff8f605a39bb76bb4949e6abf8ba8fe..917b04c0c991b42ee432f963ea9dca7561331f03 100644 (file)
@@ -854,15 +854,19 @@ show_control (ply_label_plugin_control_t *label,
               long                        y)
 {
         ply_rectangle_t dirty_area;
+        bool force_resize = false;
 
         dirty_area = label->area;
         label->display = display;
-        label->area.x = x;
-        label->area.y = y;
+        if (label->area.x != x || label->area.y != y) {
+                label->area.x = x;
+                label->area.y = y;
+                force_resize = true;
+        }
 
         label->is_hidden = false;
 
-        size_control (label, false);
+        size_control (label, force_resize);
 
         if (!label->is_hidden && label->display != NULL)
                 ply_pixel_display_draw_area (label->display,