]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
[x11] implement new activate/deactivate methods
authorRay Strode <rstrode@redhat.com>
Sat, 28 Nov 2009 04:19:01 +0000 (23:19 -0500)
committerRay Strode <rstrode@redhat.com>
Sat, 28 Nov 2009 05:24:59 +0000 (00:24 -0500)
We disable flushing when inactive.

src/plugins/renderers/x11/plugin.c

index 9e78c069ad37f81e537486963d5e3667041bd352..3777b6c2669f264a2eb3844fe635485f35237dac 100644 (file)
@@ -86,6 +86,8 @@ struct _ply_renderer_backend
   ply_console_t               *console;
 
   ply_fd_watch_t *display_watch;
+
+  uint32_t is_inactive : 1;
 };
 
 ply_renderer_plugin_interface_t *ply_renderer_backend_get_interface (void);
@@ -307,6 +309,18 @@ unmap_from_device (ply_renderer_backend_t *backend)
   ply_console_ignore_mode_changes (backend->console, false);
 }
 
+static void
+activate (ply_renderer_backend_t *backend)
+{
+  backend->is_inactive = false;
+}
+
+static void
+deactivate (ply_renderer_backend_t *backend)
+{
+  backend->is_inactive = true;
+}
+
 static void
 flush_area_to_device (ply_renderer_backend_t *backend,
                       ply_renderer_head_t    *head,
@@ -338,6 +352,9 @@ flush_head (ply_renderer_backend_t *backend,
 
   assert (backend != NULL);
 
+  if (backend->is_inactive)
+    return;
+
   pixel_buffer = head->pixel_buffer;
   updated_region = ply_pixel_buffer_get_updated_areas (pixel_buffer);
   areas_to_flush = ply_region_get_rectangle_list (updated_region);
@@ -516,6 +533,8 @@ ply_renderer_backend_get_interface (void)
       .query_device = query_device,
       .map_to_device = map_to_device,
       .unmap_from_device = unmap_from_device,
+      .activate = activate,
+      .deactivate = deactivate,
       .flush_head = flush_head,
       .get_heads = get_heads,
       .get_buffer_for_head = get_buffer_for_head,