aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-06-09 23:23:27 +0900
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-06-10 12:19:16 +0900
commitee78c7d1cb676f997dd479720853e9a482a270c8 (patch)
tree823172e6565b4d93a2d91e8a2e784cabda1bac37
parent61f72b854becd30d15447b6c675a673dffb65372 (diff)
Get pid from callback
Add new function into wayland_ivi_wm Get surface properties function. Change-Id: Id2d98d7751c02de59dd118cffddfdf1b6bf0814e Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
-rw-r--r--src/wayland_ivi_wm.cpp10
-rw-r--r--src/wayland_ivi_wm.hpp2
2 files changed, 11 insertions, 1 deletions
diff --git a/src/wayland_ivi_wm.cpp b/src/wayland_ivi_wm.cpp
index 5cc16b2..b26ce7e 100644
--- a/src/wayland_ivi_wm.cpp
+++ b/src/wayland_ivi_wm.cpp
@@ -534,6 +534,14 @@ void controller::create_screen(struct wl_output *output)
this->screen = std::make_unique<struct screen>(0, this, output);
}
+void controller::get_surface_properties(uint32_t surface_id, int param)
+{
+ if(param == 0){
+ param = IVI_WM_PARAM_OPACITY | IVI_WM_PARAM_VISIBILITY | IVI_WM_PARAM_SIZE;
+ }
+ ivi_wm_surface_get(this->proxy.get(), surface_id, param);
+}
+
void controller::layer_created(uint32_t id)
{
HMI_DEBUG("wm", "compositor::controller @ %p layer %u (%x)", this->proxy.get(), id, id);
@@ -608,6 +616,7 @@ void controller::surface_stats_received(struct surface *s, uint32_t surface_id,
{
HMI_DEBUG("wm", "compositor::surface %s @ %d f %u pid %u",
__func__, surface_id, frame_count, pid);
+ this->sprops[s->id].id = pid;
}
void controller::surface_created(uint32_t id)
@@ -624,7 +633,6 @@ void controller::surface_created(uint32_t id)
// Set surface type:IVI_WM_SURFACE_TYPE_DESKTOP)
// for resizing wayland surface when switching from split to full surface.
ivi_wm_set_surface_type(this->proxy.get(), id, IVI_WM_SURFACE_TYPE_DESKTOP);
-
// Set source reactangle even if we should not need to set it
// for enable setting for destination region.
this->surfaces[id]->set_source_rectangle(0, 0, this->output_size.w, this->output_size.h);
diff --git a/src/wayland_ivi_wm.hpp b/src/wayland_ivi_wm.hpp
index cd69623..ffbfd70 100644
--- a/src/wayland_ivi_wm.hpp
+++ b/src/wayland_ivi_wm.hpp
@@ -166,6 +166,7 @@ struct surface_properties
int32_t orientation;
int32_t visibility;
float opacity;
+ uint32_t pid;
};
/**
@@ -289,6 +290,7 @@ struct controller : public wayland_proxy<struct ivi_wm>
void layer_create(uint32_t id, int32_t w, int32_t h);
void surface_create(uint32_t id);
void create_screen(struct wl_output *output);
+ void get_surface_properties(uint32_t surface_id, int param = 0);
// Events
void surface_visibility_changed(struct surface *s, int32_t visibility);