diff options
-rw-r--r-- | grpc-proxy/agl_shell.proto | 3 | ||||
-rw-r--r-- | grpc-proxy/grpc-async-cb.cpp | 2 | ||||
-rw-r--r-- | grpc-proxy/shell.cpp | 4 | ||||
-rw-r--r-- | grpc-proxy/shell.h | 2 | ||||
-rw-r--r-- | protocol/agl-shell.xml | 7 | ||||
-rw-r--r-- | src/shell.c | 6 |
6 files changed, 13 insertions, 11 deletions
diff --git a/grpc-proxy/agl_shell.proto b/grpc-proxy/agl_shell.proto index cb9f191..c8d57ac 100644 --- a/grpc-proxy/agl_shell.proto +++ b/grpc-proxy/agl_shell.proto @@ -36,7 +36,8 @@ message DeactivateResponse { message SplitRequest { string app_id = 1; int32 tile_orientation = 2; - string output_name = 3; + int32 width = 3; + string output_name = 4; } message SplitResponse { diff --git a/grpc-proxy/grpc-async-cb.cpp b/grpc-proxy/grpc-async-cb.cpp index 8c4ed24..23a293d 100644 --- a/grpc-proxy/grpc-async-cb.cpp +++ b/grpc-proxy/grpc-async-cb.cpp @@ -225,7 +225,7 @@ GrpcServiceImpl::SetAppSplit(grpc::CallbackServerContext *context, LOG("m_aglShell not set-up\n"); return nullptr; } - m_aglShell->SetAppSplit(request->app_id(), request->tile_orientation(), request->output_name()); + m_aglShell->SetAppSplit(request->app_id(), request->tile_orientation(), request->width(), request->output_name()); grpc::ServerUnaryReactor* reactor = context->DefaultReactor(); reactor->Finish(grpc::Status::OK); diff --git a/grpc-proxy/shell.cpp b/grpc-proxy/shell.cpp index 8e78b20..6dffe6b 100644 --- a/grpc-proxy/shell.cpp +++ b/grpc-proxy/shell.cpp @@ -140,7 +140,7 @@ Shell::SetAppScale(const std::string &app_id, } void -Shell::SetAppSplit(const std::string &app_id, uint32_t orientation, const std::string &output_name) +Shell::SetAppSplit(const std::string &app_id, uint32_t orientation, uint32_t width, const std::string &output_name) { struct window_output *woutput, *w_output; struct agl_shell *shell = this->m_shell.get(); @@ -161,6 +161,6 @@ Shell::SetAppSplit(const std::string &app_id, uint32_t orientation, const std::s w_output, link); - agl_shell_set_app_split(shell, app_id.c_str(), orientation, w_output->output); + agl_shell_set_app_split(shell, app_id.c_str(), orientation, width, w_output->output); wl_display_flush(m_shell_data->wl_display); } diff --git a/grpc-proxy/shell.h b/grpc-proxy/shell.h index 587ed90..f428088 100644 --- a/grpc-proxy/shell.h +++ b/grpc-proxy/shell.h @@ -40,7 +40,7 @@ public: m_shell(shell), m_shell_data(sh_data) { } void ActivateApp(const std::string &app_id, const std::string &output_name); void DeactivateApp(const std::string &app_id); - void SetAppSplit(const std::string &app_id, uint32_t orientation, const std::string &output_name); + void SetAppSplit(const std::string &app_id, uint32_t orientation, uint32_t width, const std::string &output_name); void SetAppFloat(const std::string &app_id, int32_t x_pos, int32_t y_pos); void SetAppNormal(const std::string &app_id); diff --git a/protocol/agl-shell.xml b/protocol/agl-shell.xml index f8aee4c..4f71a51 100644 --- a/protocol/agl-shell.xml +++ b/protocol/agl-shell.xml @@ -352,7 +352,7 @@ </request> <request name="set_app_split" since="11"> - <description summary="set the application split"> + <description summary="set the application with a split orientation"> This requests asks the compositor to change the application from the original mode (whatever that might be) to a split, tiled orientation mode defined in the tile orientation enum. @@ -406,11 +406,16 @@ such that users can cycle between that one or the other, assumes there's another window in the first place. + A width size can also be specified for the split window. Note that this + width can't exceed the output width value, or the compositor can choose + to ignore this value. + See xdg_toplevel.set_app_id from the xdg-shell protocol for a description of app_id. </description> <arg name="app_id" type="string"/> <arg name="orientation" type="uint" enum="tile_orientation"/> + <arg name="width" type="int" summary="width of the window being split"/> <arg name="output" type="object" interface="wl_output"/> </request> </interface> diff --git a/src/shell.c b/src/shell.c index b8f096a..13c03f0 100644 --- a/src/shell.c +++ b/src/shell.c @@ -1896,7 +1896,7 @@ shell_ivi_surf_count_split_surfaces(struct ivi_compositor *ivi) static void shell_set_app_split(struct wl_client *client, struct wl_resource *res, - const char *app_id, uint32_t orientation, + const char *app_id, uint32_t orientation, int32_t width, struct wl_resource *output_res) { struct ivi_surface *surf; @@ -1921,10 +1921,6 @@ void shell_set_app_split(struct wl_client *client, struct wl_resource *res, return; } - /* otherwise, take actions now */ - weston_log("%s() added split surface for app_id '%s' with orientation %d\n", - __func__, app_id, orientation); - if (output->previous_active) { struct weston_view *ev = output->previous_active->view; |