viewport: Use e_surface_buffer_try_get 71/315671/2
authorSeunghun Lee <shiin.lee@samsung.com>
Tue, 30 Jul 2024 07:00:45 +0000 (16:00 +0900)
committerJunSeok Kim <juns.kim@samsung.com>
Tue, 6 Aug 2024 05:17:41 +0000 (05:17 +0000)
Change-Id: I01de45284a496c88084ff9f076eba517e0fb7caf

src/bin/server/e_comp_wl_viewport.c

index 1073bbd..7b32959 100644 (file)
@@ -1489,7 +1489,7 @@ e_comp_wl_viewport_apply(E_Client *ec)
    if (viewport)
      _e_comp_wl_viewport_parent_check(viewport);
 
-   if (viewport && ec->comp_data->buffer_ref.buffer)
+   if (viewport && e_surface_has_buffer(viewport->surface))
      {
         E_Comp_Wl_Buffer_Viewport *vp = &ec->comp_data->scaler.buffer_viewport;
         Eina_Bool changed = EINA_FALSE, src_changed = EINA_FALSE;
@@ -1525,7 +1525,7 @@ e_comp_wl_viewport_apply(E_Client *ec)
           }
      }
    else if (viewport)
-     PIN("%p buffer", ec->comp_data->buffer_ref.buffer);
+     PIN("%p buffer", e_surface_buffer_try_get(viewport->surface));
 
    EINA_LIST_FOREACH(ec->comp_data->sub.list, l, subc)
       e_comp_wl_viewport_apply(subc);
@@ -1577,6 +1577,7 @@ _e_comp_wl_viewport_cb_apply_viewport(struct wl_listener *listener, void *data)
    E_Client *ec;
    E_Client *topmost;
    Eina_Bool changed = EINA_FALSE;
+   E_Surface *parent_surface;
 
    viewport = container_of(listener, E_Viewport, surface_apply_viewport_listener);
    ec = viewport->ec;
@@ -1604,8 +1605,14 @@ _e_comp_wl_viewport_cb_apply_viewport(struct wl_listener *listener, void *data)
    _e_comp_wl_viewport_parent_check(viewport);
 
    if (!viewport->current.changed) return;
-   if (!ec->comp_data->buffer_ref.buffer) return;
-   if (viewport->epc && !viewport->epc->comp_data->buffer_ref.buffer) return;
+   if (!e_surface_has_buffer(viewport->surface)) return;
+
+   if (viewport->epc)
+     {
+        parent_surface = e_surface_from_ec(viewport->epc);
+        if (!e_surface_has_buffer(parent_surface))
+          return;
+     }
 
    PDB("apply: topmost(%p)", topmost);