summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--grpc-proxy/agl_shell.proto3
-rw-r--r--grpc-proxy/grpc-async-cb.cpp2
-rw-r--r--grpc-proxy/shell.cpp4
-rw-r--r--grpc-proxy/shell.h2
-rw-r--r--protocol/agl-shell.xml7
-rw-r--r--src/shell.c6
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;