X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Flibds%2Fbackend%2Fwayland%2Foutput.c;h=7728abf9031e40b2ff28c97e44374041ba5169b8;hb=6c6e5e02b50d4c1855981f6bd8df71754f71db40;hp=c57820f8547ae438ad53a84a56da06ccde8f51a9;hpb=ac5fa7143dbbb7a956fa2f1c9abae32b1f8809c5;p=platform%2Fcore%2Fuifw%2Flibds-tizen.git diff --git a/src/libds/backend/wayland/output.c b/src/libds/backend/wayland/output.c index c57820f..7728abf 100644 --- a/src/libds/backend/wayland/output.c +++ b/src/libds/backend/wayland/output.c @@ -7,6 +7,7 @@ #include "libds/output.h" #include "xdg-shell-client-protocol.h" +#include "output.h" #include "backend.h" const struct ds_output_interface wl_output_iface; @@ -14,6 +15,8 @@ static const struct xdg_surface_listener wl_output_xdg_surface_listener; static const struct xdg_toplevel_listener wl_output_xdg_toplevel_listener; static void output_update_cursor(struct ds_wl_output *output); +static bool output_set_custom_mode(struct ds_output *ds_output, + int32_t width, int32_t height, int32_t refresh); struct ds_output * ds_wl_backend_create_output(struct ds_backend *ds_backend) @@ -286,6 +289,14 @@ wl_output_iface_commit(struct ds_output *ds_output) output = wl_output_from_output(ds_output); + if (ds_output->pending.committed & DS_OUTPUT_STATE_MODE) { + if (!output_set_custom_mode(ds_output, + ds_output->pending.custom_mode.width, + ds_output->pending.custom_mode.height, + ds_output->pending.custom_mode.refresh)) + return false; + } + ds_buffer = ds_output->pending.buffer; buffer = get_or_create_wl_buffer(output->backend, ds_buffer); if (!buffer) @@ -355,3 +366,11 @@ static const struct xdg_toplevel_listener wl_output_xdg_toplevel_listener = .configure = wl_output_xdg_toplevel_handle_configure, .close = wl_output_xdg_toplevel_handle_close, }; + +static bool output_set_custom_mode(struct ds_output *ds_output, + int32_t width, int32_t height, int32_t refresh) +{ + ds_output_update_custom_mode(ds_output, width, height, 0); + + return true; +}