On 10/31/17 12:48 PM, Pekka Paalanen wrote:
From: Pekka Paalanen <pekka.paala...@collabora.co.uk>

Split out a new function. This is a pure refactoring, no change in
behaviour.

This helps a following patch that adds a loop over output->head_list.

Signed-off-by: Pekka Paalanen <pekka.paala...@collabora.co.uk>


Quite obvious:
Reviewed-by: Quentin Glidic <sardemff7+...@sardemff7.net>

Thanks,


---
  libweston/compositor.c | 57 +++++++++++++++++++++++++++++++-------------------
  1 file changed, 36 insertions(+), 21 deletions(-)

diff --git a/libweston/compositor.c b/libweston/compositor.c
index c3c7e27c..d96c96d4 100644
--- a/libweston/compositor.c
+++ b/libweston/compositor.c
@@ -76,15 +76,45 @@ weston_output_transform_scale_init(struct weston_output 
*output,
  static void
  weston_compositor_build_view_list(struct weston_compositor *compositor);
-static void weston_mode_switch_finish(struct weston_output *output,
-                                     int mode_changed,
-                                     int scale_changed)
+/** Send wl_output events for mode and scale changes
+ *
+ * \param head Send on all resources bound to this head.
+ * \param mode_changed If true, send the current mode.
+ * \param scale_changed If true, send the current scale.
+ */
+static void
+weston_mode_switch_send_events(struct weston_head *head,
+                              bool mode_changed, bool scale_changed)
+{
+       struct weston_output *output = head->output;
+       struct wl_resource *resource;
+       int version;
+
+       wl_resource_for_each(resource, &head->resource_list) {
+               if (mode_changed) {
+                       wl_output_send_mode(resource,
+                                           output->current_mode->flags,
+                                           output->current_mode->width,
+                                           output->current_mode->height,
+                                           output->current_mode->refresh);
+               }
+
+               version = wl_resource_get_version(resource);
+               if (version >= WL_OUTPUT_SCALE_SINCE_VERSION && scale_changed)
+                       wl_output_send_scale(resource, output->current_scale);
+
+               if (version >= WL_OUTPUT_DONE_SINCE_VERSION)
+                       wl_output_send_done(resource);
+       }
+}
+
+static void
+weston_mode_switch_finish(struct weston_output *output,
+                         int mode_changed, int scale_changed)
  {
        struct weston_seat *seat;
        struct weston_head *head;
-       struct wl_resource *resource;
        pixman_region32_t old_output_region;
-       int version;
pixman_region32_init(&old_output_region);
        pixman_region32_copy(&old_output_region, &output->region);
@@ -133,22 +163,7 @@ static void weston_mode_switch_finish(struct weston_output 
*output,
        head = &output->head;
/* notify clients of the changes */
-       wl_resource_for_each(resource, &head->resource_list) {
-               if (mode_changed) {
-                       wl_output_send_mode(resource,
-                                           output->current_mode->flags,
-                                           output->current_mode->width,
-                                           output->current_mode->height,
-                                           output->current_mode->refresh);
-               }
-
-               version = wl_resource_get_version(resource);
-               if (version >= WL_OUTPUT_SCALE_SINCE_VERSION && scale_changed)
-                       wl_output_send_scale(resource, output->current_scale);
-
-               if (version >= WL_OUTPUT_DONE_SINCE_VERSION)
-                       wl_output_send_done(resource);
-       }
+       weston_mode_switch_send_events(head, mode_changed, scale_changed);
  }


--

Quentin “Sardem FF7” Glidic
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to