]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
Revert "ply-pixel-display: Pause the display and unpause it at a framerate"
authorRay Strode <rstrode@redhat.com>
Sat, 16 Dec 2023 19:45:37 +0000 (14:45 -0500)
committerRay Strode <rstrode@redhat.com>
Sun, 17 Dec 2023 12:57:02 +0000 (07:57 -0500)
This reverts commit 815d3c72e2e4f7299490e43147972e7d31b91d17.

This idea of pausing and unpausing updates at a given framerate is good,
but doing it at the ply-pixel-display level causes a proble with
monitor hotplug.

src/libply-splash-core/ply-pixel-display.c
src/libply-splash-graphics/ply-console-viewer.c

index 6de4b1a00b487b97e84f8069183a163d52f24b0d..62398038a688cc97b7a6495c1a0e13091ae89640 100644 (file)
 #include "ply-renderer.h"
 #include "ply-utils.h"
 
-#ifndef FRAMES_PER_SECOND
-#define FRAMES_PER_SECOND 60
-#endif
-
 struct _ply_pixel_display
 {
         ply_event_loop_t                *loop;
@@ -62,23 +58,6 @@ struct _ply_pixel_display
         int                              pause_count;
 };
 
-static void
-on_timeout (ply_pixel_display_t *display)
-{
-        double sleep_time;
-
-
-        sleep_time = 1.0 / FRAMES_PER_SECOND;
-
-        ply_pixel_display_unpause_updates (display);
-        ply_pixel_display_pause_updates (display);
-
-        ply_event_loop_watch_for_timeout (display->loop,
-                                          sleep_time,
-                                          (ply_event_loop_timeout_handler_t)
-                                          on_timeout, display);
-}
-
 ply_pixel_display_t *
 ply_pixel_display_new (ply_renderer_t      *renderer,
                        ply_renderer_head_t *head)
@@ -203,19 +182,9 @@ ply_pixel_display_set_draw_handler (ply_pixel_display_t             *display,
                                     ply_pixel_display_draw_handler_t draw_handler,
                                     void                            *user_data)
 {
-        double sleep_time;
-
         assert (display != NULL);
 
         display->draw_handler = draw_handler;
         display->draw_handler_user_data = user_data;
-
-        sleep_time = 1.0 / FRAMES_PER_SECOND;
-
-        ply_event_loop_watch_for_timeout (display->loop,
-                                          sleep_time,
-                                          (ply_event_loop_timeout_handler_t)
-                                          on_timeout, display);
-        ply_pixel_display_pause_updates (display);
 }
 
index e423cc40d7f0489bd38decb29f5b79c55da70d7f..8e1ee6288ad5b2eca2d8c7582e423e823fbf782d 100644 (file)
@@ -158,6 +158,7 @@ update_console_messages (ply_console_viewer_t *console_viewer)
         if (number_of_messages < 0)
                 return;
 
+        ply_pixel_display_pause_updates (console_viewer->display);
         node = ply_list_get_first_node (console_viewer->message_labels);
         while (node != NULL) {
                 ply_rich_text_t *line = NULL;
@@ -210,6 +211,7 @@ update_console_messages (ply_console_viewer_t *console_viewer)
         ply_pixel_display_draw_area (console_viewer->display, 0, 0,
                                      ply_pixel_display_get_width (console_viewer->display),
                                      ply_pixel_display_get_height (console_viewer->display));
+        ply_pixel_display_unpause_updates (console_viewer->display);
 }
 
 void