<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:NimbusRomNo9L-ReguItal;
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.hoenzb
        {mso-style-name:hoenzb;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">you can do it with weston-ivi-shell. IVI-Shell introduces layer concept to weston.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">A layer is a group of surfaces which can be moved or resized together.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">But IVI-Shell is just an interface and you have to implement your own APIs to use it.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Wayland-IVI-Extension is a set of readily implemented APIs which are using weston-ivi-shell.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Some example APIs:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">ilm_layerSetPosition
<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">“</span></b><span style="font-size:9.0pt;font-family:NimbusRomNo9L-ReguItal">Sets the horizontal and vertical position of the layer. Relative position of
 layer’s surfaces would be maintained.”<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">ilm_layerSetDestinationRectangle
<o:p></o:p></span></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">“</span></b><span style="font-size:9.0pt;font-family:NimbusRomNo9L-ReguItal">Set the destination area on the display for a layer.
 The layer will be scaled and positioned to this rectangle<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.0pt;font-family:NimbusRomNo9L-ReguItal">for rendering.”<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.0pt;font-family:NimbusRomNo9L-ReguItal"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">ilm_layerSetVisibility<o:p></o:p></span></b></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.0pt;font-family:NimbusRomNo9L-ReguItal">“Sets the visibility  for all surfaces of a layer”<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.0pt;font-family:NimbusRomNo9L-ReguItal"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">ilm_layerSetVisibility<o:p></o:p></span></b></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.0pt;font-family:NimbusRomNo9L-ReguItal">“Sets the opacity for all surfaces of a layer”<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.0pt;font-family:NimbusRomNo9L-ReguItal"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">You can get more information from the website:
<a href="http://projects.genivi.org/wayland-ivi-extension/home"><span style="color:#1F497D">http://projects.genivi.org/wayland-ivi-extension/home</span></a><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">If you are interested I can help you to install & use it.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D">Best regards</span><span style="font-size:8.0pt;color:#1F497D"><br>
</span><span style="font-size:8.0pt;font-family:"Arial","sans-serif";color:#1F497D"><br>
</span><b><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D">Emre Ucan</span></b><span style="font-size:8.0pt;color:#1F497D"><br>
</span><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D">Software Group I (ADITG/SW1)</span><span style="font-size:8.0pt;color:#1F497D"><br>
</span><span style="font-size:8.0pt;font-family:"Arial","sans-serif";color:#1F497D"><br>
</span><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D">Tel. +49 5121 49 6937</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p></o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> wayland-devel [mailto:wayland-devel-bounces@lists.freedesktop.org]
<b>On Behalf Of </b>Hongze Zhao<br>
<b>Sent:</b> Donnerstag, 25. September 2014 03:49<br>
<b>To:</b> Jasper St. Pierre<br>
<b>Cc:</b> wayland mailing list<br>
<b>Subject:</b> Re: How to maintain relative position of two surfaces?<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">I am not familiar with subsurfaces as I am new to weston. I will look at it and see how it works. <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Hongze<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Wed, Sep 24, 2014 at 8:45 PM, Jasper St. Pierre <<a href="mailto:jstpierre@mecheye.net" target="_blank">jstpierre@mecheye.net</a>> wrote:<o:p></o:p></p>
<div>
<p class="MsoNormal">This sounds like you want to use subsurfaces, then.<br>
<br>
Any reason you can't just draw the child surface on top of the father surface, though?<o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Wed, Sep 24, 2014 at 6:16 PM, Hongze Zhao <<a href="mailto:zhaohongze@gmail.com" target="_blank">zhaohongze@gmail.com</a>> wrote:<o:p></o:p></p>
<div>
<p class="MsoNormal">Hi Jasper,<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks for reply. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Here is my use case.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <img border="0" width="562" height="279" id="_x0000_i1025" src="cid:image001.png@01CFD8A0.CF723890"><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Suppose we have a client called "father", who has a larger surface called "father surface" and a client called "child", whose smaller surface is "child surface". The child surface should be displayed in a given relative position above father
 surface and maintain their relative position. When I move father surface, the child surface will be moved together. But the child surface cannot be moved. Thus the child surface will looks like a part of father surface. I just need it works in the simplest
 scenario. I assume the two surfaces is in the same workspace, both surfaces cannot be resized, maximized or fullscreened. The two clients and compositor should work together to achieve this goal. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I know this is a weird use case. I am just wondering if there is some natural or easy way to implement this functionality. Or I have to do a lot of modifications.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Hongze<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Wed, Sep 24, 2014 at 7:54 PM, Jasper St. Pierre <<a href="mailto:jstpierre@mecheye.net" target="_blank">jstpierre@mecheye.net</a>> wrote:<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">The only way to position surfaces relatively one to another is by using a subsurface. But I imagine this isn't exactly what you want.<o:p></o:p></p>
</div>
<p class="MsoNormal">Can you explain a bit more about your use case? What happens if I put one surface on a different workspace from the others? Should the two be stacked independently (e.g. your window A, my terminal, your window B)? What happens when I resize
 the surfaces? Or maximize or fullscreen them?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal">On Wed, Sep 24, 2014 at 5:49 PM, Hongze Zhao <<a href="mailto:zhaohongze@gmail.com" target="_blank">zhaohongze@gmail.com</a>> wrote:<o:p></o:p></p>
</div>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal">Hi All,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I am doing some experiments on weston compositor. I am wondering if someone could give me some hints about how to maintain relative position of two surfaces. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Suppose I have two wayland clients. After I grab and move the surface of one client, I would like to maintain the relative positions of the the surfaces from two clients. Thus I have to automatically update the position of the other surface. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I feel that surface position is stored in an instance of weston_view, which is mainly maintained by desktop-shell. So I am not sure if there is some easy way to achieve my goal by modifying desktop-shell.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Hongze <o:p></o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">_______________________________________________<br>
wayland-devel mailing list<br>
<a href="mailto:wayland-devel@lists.freedesktop.org" target="_blank">wayland-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/wayland-devel</a><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><span style="color:#888888"><br>
<br clear="all">
<br>
-- <br>
  Jasper</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><span style="color:#888888">-- <o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="color:#888888">Hongze Zhao<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="color:#888888">Department of Computer Science<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:#888888">Duke University<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:#888888">Email: <a href="mailto:zhaohongze@gmail.com" target="_blank" title="[GMCP] Compose a new mail to zhaohongze@gmail.com">zhaohongze@gmail.com</a><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><span class="hoenzb"><span style="color:#888888">-- </span></span><span style="color:#888888"><br>
<span class="hoenzb">  Jasper</span></span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">-- <o:p></o:p></p>
<div>
<p class="MsoNormal">Hongze Zhao<o:p></o:p></p>
<div>
<p class="MsoNormal">Department of Computer Science<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Duke University<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Email: <a href="mailto:zhaohongze@gmail.com" target="_blank" title="[GMCP] Compose a new mail to zhaohongze@gmail.com">zhaohongze@gmail.com</a><o:p></o:p></p>
</div>
</div>
</div>
</div>
</body>
</html>