viewport: do nothing if new value is same with old
authorBoram Park <boram1288.park@samsung.com>
Thu, 21 Jan 2016 00:52:51 +0000 (09:52 +0900)
committerSeunghun Lee <shiin.lee@samsung.com>
Thu, 21 Jan 2016 07:20:13 +0000 (16:20 +0900)
Change-Id: I1774404c278cc94804f6b9aabddae1c1e5972adc

src/bin/e_comp_wl.c
src/modules/wl_desktop_shell/e_scaler.c

index c09e12c..71c900d 100644 (file)
@@ -2390,6 +2390,9 @@ _e_comp_wl_surface_cb_buffer_transform_set(struct wl_client *client EINA_UNUSED,
         return;
      }
 
+   if (ec->comp_data->pending.buffer_viewport.buffer.transform == transform)
+     return;
+
    ec->comp_data->pending.buffer_viewport.buffer.transform = transform;
    ec->comp_data->pending.buffer_viewport.changed = 1;
 }
@@ -2411,6 +2414,9 @@ _e_comp_wl_surface_cb_buffer_scale_set(struct wl_client *client EINA_UNUSED, str
         return;
      }
 
+   if (ec->comp_data->pending.buffer_viewport.buffer.scale == scale)
+     return;
+
    ec->comp_data->pending.buffer_viewport.buffer.scale = scale;
    ec->comp_data->pending.buffer_viewport.changed = 1;
 }
index d6646a6..32760c6 100644 (file)
@@ -58,6 +58,14 @@ _e_viewport_cb_set(struct wl_client *client EINA_UNUSED,
         return;
      }
 
+   if (ec->comp_data->pending.buffer_viewport.buffer.src_x == src_x &&
+       ec->comp_data->pending.buffer_viewport.buffer.src_y == src_y &&
+       ec->comp_data->pending.buffer_viewport.buffer.src_width == src_width &&
+       ec->comp_data->pending.buffer_viewport.buffer.src_height == src_height &&
+       ec->comp_data->pending.buffer_viewport.surface.width == dst_width &&
+       ec->comp_data->pending.buffer_viewport.surface.height == dst_height)
+     return;
+
    ec->comp_data->pending.buffer_viewport.buffer.src_x = src_x;
    ec->comp_data->pending.buffer_viewport.buffer.src_y = src_y;
    ec->comp_data->pending.buffer_viewport.buffer.src_width = src_width;
@@ -82,6 +90,9 @@ _e_viewport_cb_set_source(struct wl_client *client EINA_UNUSED,
 
    if (src_width == wl_fixed_from_int(-1) && src_height == wl_fixed_from_int(-1))
      {
+        if (ec->comp_data->pending.buffer_viewport.buffer.src_width == wl_fixed_from_int(-1))
+          return;
+
         /* unset source size */
         ec->comp_data->pending.buffer_viewport.buffer.src_width = wl_fixed_from_int(-1);
         ec->comp_data->pending.buffer_viewport.changed = 1;
@@ -98,6 +109,12 @@ _e_viewport_cb_set_source(struct wl_client *client EINA_UNUSED,
         return;
      }
 
+   if (ec->comp_data->pending.buffer_viewport.buffer.src_x == src_x &&
+       ec->comp_data->pending.buffer_viewport.buffer.src_y == src_y &&
+       ec->comp_data->pending.buffer_viewport.buffer.src_width == src_width &&
+       ec->comp_data->pending.buffer_viewport.buffer.src_height == src_height)
+     return;
+
    ec->comp_data->pending.buffer_viewport.buffer.src_x = src_x;
    ec->comp_data->pending.buffer_viewport.buffer.src_y = src_y;
    ec->comp_data->pending.buffer_viewport.buffer.src_width = src_width;
@@ -118,6 +135,9 @@ _e_viewport_cb_set_destination(struct wl_client *client EINA_UNUSED,
 
    if (dst_width == -1 && dst_height == -1)
      {
+        if (ec->comp_data->pending.buffer_viewport.surface.width == -1)
+          return;
+
         /* unset destination size */
         ec->comp_data->pending.buffer_viewport.surface.width = -1;
         ec->comp_data->pending.buffer_viewport.changed = 1;
@@ -133,6 +153,10 @@ _e_viewport_cb_set_destination(struct wl_client *client EINA_UNUSED,
         return;
      }
 
+   if (ec->comp_data->pending.buffer_viewport.surface.width == dst_width &&
+       ec->comp_data->pending.buffer_viewport.surface.height == dst_height)
+     return;
+
    ec->comp_data->pending.buffer_viewport.surface.width = dst_width;
    ec->comp_data->pending.buffer_viewport.surface.height = dst_height;
    ec->comp_data->pending.buffer_viewport.changed = 1;