- struct ivi_output *output = surface->desktop.last_output;
-
- /* TODO */
- if (surface->role != IVI_SURFACE_ROLE_DESKTOP)
+ struct ivi_output *output;
+
+ if (surface->role == IVI_SURFACE_ROLE_DESKTOP)
+ output = surface->desktop.last_output;
+ else if (surface->role == IVI_SURFACE_ROLE_POPUP)
+ output = surface->popup.output;
+ else if (surface->role == IVI_SURFACE_ROLE_SPLIT_H ||
+ surface->role == IVI_SURFACE_ROLE_SPLIT_V)
+ output = surface->split.output;
+ else if (surface->role == IVI_SURFACE_ROLE_FS)
+ output = surface->fs.output;
+ else