Age | Commit message (Collapse) | Author | Files | Lines |
|
To include a quick fix regarding building the compositor
with rdp backend support.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I2611af2b867285b5529dbcdeceed4bfd2869ec9b
|
|
This is because we build with warns as failures and possibly the rdp
backend loading isn't enabled.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ia184b1a6fa2ec25b07329f10777c9d47451d53fe
|
|
We've added split type of functionality with support for loading the RDP
backend, such that this warrants an version update as well.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I28e35f53bb1d9a9d3deed204596bd8ef090cb579
|
|
From the ini configuration file.
Bug-AGL: SPEC-5077
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I12e47844771494f72db5e387d468bef70ceb5edf
|
|
Apparently, erase() would make the iterator invalid so we need grab
the next one to have the work correctly.
Bug-AGL: SPEC-5077
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I290fa1231eb6b37ab63c5f5c0bd8fe90d4363a77
|
|
Similar to Weston this loads the backend-rdp shared library.
Bug-AGL: SPEC-5077
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ib4e1d408fbb7e1eb0a09135c85a3275d424f7015
|
|
And with it also handle the re-mapping/unmapping of previous active
window such we don't run into weird behaviours, and be able to revert
back to the original output dimensions when going back to normal
windows.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I3703de998b0baa8a2b9d72276dcd56b315d3ca1a
|
|
This continues implementing the sticky window functionality to
be able to keep a window, set as sticky, always displayed while
having the ability to activate/switch to other windows.
This could be useful in a handful of sitauations like keeping the nav
application on, while activing other windows.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I94c835c0d8f9f7e334e4c75389d78bd267b71a87
|
|
This adds support for passing by the width argument such that users can
specify the width dimensions of the split window. Given that we might
another previous active window we also need to split that accordingly
depending on the orientation.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I39239c1af0358eaa671146d0f36a3a334e945067
|
|
If that window is a background one, this patch avoids doing that. The
background surface role needs to always be available. Discovered while
testing it out with flutter embedder.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ia46b7ae590ea4feafa8a67efeb8ad540f6d2dfa0
|
|
This allow to further customize how to handle the split window.
There's no implementation in the compositor for allow this functionality
to take place, but doing so can be at a later point in time.
Tagging the split window as sticky should allow activation of other
windows while keeping the split window always displayed.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Iae4d18d2a857497c11d0e77bf43f654e2b8ed501
|
|
It might be useful in the future to let clients choose how much of the
window to split so allow passing that. Note that there's no actual
implementation but if there's a need in the future it can be easily
added so it's better to add this now.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I82f36e86f56b0a65cbacac8368b63f68df69a350
|
|
This change would reset to default (none) orientation when activating a
different window, than those split and currently active.
The use-case is that when activating a different window all previous
split ones would reset to their original state (none orientation), such
that when the user tries to activate any former split windows it would get
the window without being split plus the other active window in the same
time. IOW going back and activating an former split window would also
display the other window which would complicate things a bit.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I315d42b656962bf3f68f140466ab58429a0e972c
|
|
Going back to regular, with a none orientation would allow to re-activate the
window. This wouldn't happen because we haven't been able to reset
the active window
Keeps things sane for the user and would allow navigating back to
those windows. Further patches should improve and avoid this entirely if
the split window is sticky.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ic2cc7fd2839f5a664957d3f111c400559d93cf3f
|
|
Rather than guessing why the windows do not activate.
Found some use cases where this would be useful to be explicit.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I65383f8b3467f3b3093786907b194dce3cf635af
|
|
This adds an implementation for it and includes the output name,
previously being missed.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I95181adebe1ff6cddf81796444774277fec28a9a
|
|
This introduces a new set_split request to allow changing the tile
orientation of the window. See the protocol XML for more implementation
details.
Of importance difference from the previous implementation is that
this patch makes use of the xdg-shell protocol, such that orientation
is being handled over the configure event to the client.
The protocol specifies a width to allow the client to control how much
of the output be assign the split window and also a sticky window
functionality.
Bug-AGL: SPEC-4839
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ia8b7d04a7514f55d647c3ea76b13bab51a3586aa
|
|
Add template files for gitlab
Bug-AGL: SPEC-4474
Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Change-Id: I811994c1179932fe83a6b5f1ceb674f65ec1c568
|
|
Deactivating fullscreen is a special case so we need to handle it
similarly to dialog/popups.
This adds an additional schedule for repaint in the fullscreen part to
force a redraw, otherwise deactivation/activation would need to inflict
any sort of damage to trigger a redraw.
Bug-AGL: SPEC-4348
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I258543f43514af07dfed7b36531816e90561cc61
|
|
Bug-AGL: SPEC-4977
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ib26d0b9f9d47e7d2e2d42b47a9702ba31d03f3b9
|
|
This bigger patch changes the way gRPC proxy client connects to the
server, more specifically how it binds to the same agl_shell interface
as the shell client.
I debated if this should be split into more pieces but I think it makes
more sense to have contained into a single patch as it doesn't make
sense to have some bits off and some bits on, as both the server and the
client side need to be changed at the same time.
This biggest change with this patch is to avoid a potential race condition
between the gRPC proxy client and the shell-client, but also to simplify
the way the gRPC client connects to the server as there aren't sufficient
guards in the server to the provent various corner cases to take place.
Rather than attempting to fix that, simplifying the entire bit and
allow only a single agl-shell client and a sigle gRPC proxy client
connected at a single time and remove any other potential clients
trying to connect at all, later on.
Context and usage:
Both the gRPC proxy and shell-client bind to the same agl_shell
interface, meaning that both use the shell-client (homescreen,
flutter-ics-homescreen, flutter-auto, wam) and the gRPC proxy can
issue agl_shell requests, with some minor differences --
setting background and panels which do not make sense for
gRPC proxy client.
The compositor can signal back to clients when a bind was OK or
not with the bound_ok/bound_fail event. Previously to
adding the bound_ok/bound_fail events, any other client trying to use
agl_shell interface, more than once, would get a protocol violation.
With the bound_ok/bound_fail events clients would instead receive this
event and could theoretically act upon it.
The race that this patch tries to overcome is that the gRPC client will
periodically attempt to verify if there's a shell-client already
connected to server by binding to agl_shell interface and waiting for
bound_fail event. In case it got bound_ok, it would disconnect and
attempt at latter point in time, until it got the bound_failed event, and thus
signalling that there's shell client already connected, allowing to
proceed further.
This worked fine most of the time, depending on how fast the shell
client also bind to agl_shell. For a brief period of time, it might be
that shell client also gets a bound_fail, requiring it to retry at a
later point in time. The disconnected/reconnect of the gRPC proxy would
then complicate matters as the client resources will get overwritten. So
rather than trying to try that fix that, a better approach is to
simplify the way this works entirely.
The change in this patch is that the gRPC proxy doesn't
connect/disconnect periodically but rather it waits for the compositor
to signal when it is ready to bind to agl_shell interface.
That happens with the help of the doas event status, from the
agl_shell_ext interface. If this event status is alright (OK) then it means
the gRPC can then bind to agl_shell interface.
If it gets a failed status it would just wait and then issue another
doas request and continue as such forever until it got an alright
status. The distinct is that in this case the gRPC proxy would not disconnect
and then reconnect retrying the same thing.
This change to simplify some of the assumption in server, and
client side implementation would just race with the shell client when
binding to the agl_shell interface.
Bug-AGL: SPEC-4977
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ib74f789553d3b130ee8e61d0068e617dc2209a58
|
|
And make sure we clear off the remaing client resources when doing an
unbind.
It seems we would hit it when checking set_background/ready/set_panel
requests, resulting in a protocol violation and finally terminating the
connection.
Bug-AGL: SPEC-4977
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ie5ed881511ec2ac4501d2a5cac349abc7f83c1fe
|
|
This is unlikely to happen in practice, but discovered while doing a
code audit, so let's let be on the safe side and don't attempt to deref
as we'll get invalid memory.
Bug-AGL: SPEC-5018
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ib874a7194ab3a7019a304ec4c1974824c78b26cc
|
|
We haven't add an official release since the beginning of the year, when
we introduced the gRPC API. So do another one, as we've changed a bit
the say the gRPC starts.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Idc2feace89a0cd77d1788e629fff9b5f2f443fce
|
|
This would speed the time checking if agl-shell was bounded or not.
Shouldn't make that much of a difference but we do not need to wait 250
ms just for testing that.
Bug-AGL: SPEC-4912
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I8751c1d69898a82a415ba9b756bdfe9657ef0546
|
|
This change moves a bit the start-up sequence of the gRPC server and
when it connects to the compositor.
Changing the start-up sequence avoids waiting for the channel to change
its state from disconnected to connected, and only wait for the wayland
connection to take place. Otherwise, we would wait first for the wayland
connection to take place, then wait for the gRPC server to start up
and finally wait for the channel to be in connected state, all which
would incur a massive waiting time.
Moving it a bit early requires to at least verify that we have the proxy
side (the wayland connection) is already set-up at that time.
Bug-AGL: SPEC-4912
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ied88a917df8ff98fefa601103ce04e13c8bb21ac
|
|
These are not seen until enabling the DEBUG directive.
Bug-AGL: SPEC-4912
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ic18c701909975978e82ef811ade416d802e567b5
|
|
Maybe the third time is a charm to avoid fall through and assume on the
exit path we do have a wl_display.
Bug-AGL: SPEC-4935
Reported-by: Lisandro Pérez Meyer <lpmeyer@ics.com>
Tested-by: Lisandro Pérez Meyer <lpmeyer@ics.com>
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I4adef5bf72d6b1a32a218bf1cfa6c8ed4450ba48
|
|
Commit d8e72099ecbcad, 'grpc-proxy: Terminate thread when we're
exiting', addressed a rather bigger issue to handle correctly the
shutdown/restart sequence. A consequence of that is the initial issue
opened in SPEC-4935 with a trace showing a protocol issue, due to fact
we're supplying an invalid wl_display without being connected to the
compositor.
While commit d8e72099ecbcad, 'grpc-proxy: Terminate thread when we're
exiting' does fix the issue and would make the underlying bug disappear
let's be more pedantic and don't attempt assume we have a compositor
connection when in fact we do not.
Bug-AGL: SPEC-4935
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Id10dabe5178f52fa6a0cf6d70c70799c98f4b6d5
|
|
We need to be joining the thread to be able to exit properly, so let us
do that.
Bug-AGL: SPEC-4935
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ib4e54fcb23267b632f61c10d6ec2835c55ec2f23
|
|
This adds basic scaling for floating windows, sending new dimensions to
the clients to resize itself.
Bug-AGL: SPEC-4862
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ic693153cd704b278dcddd2514afc8dafecf8829b
|
|
This adds basic movement for floating type of windows. The window needs
to be a floating type for this request to work out.
For the agl-shell protocol, this adds a set_app_float() request while
for gRPC it adds a SetAppPosition() request.
Bug-AGL: SPEC-4863
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I5ecc4257c3e84d15a8cabb183757753be37867f5
|
|
Turns out weston doesn't install xwayland-api header if Xwayland is not
installed, which is a shame, and should be rectified. Meanwhile, let's
guard access to the header and the API that the header exports.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I77638b263483628f8cc7a3dcbd08c8947db1d86b
|
|
In accordance to the upstream changes refer to the logging context
rather than the compositor instance.
Depends on https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/29064
Bug-AGL: SPEC-4861
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I4a8aeac4ef33e0631c23ae85347fea8a1b36c4de
|
|
All app_ids are not valid for xwayland type of surfaces to need to check
against it.
Bug-AGL: SPEC-4847
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I84dc9b493648f4fe48b1c23c8ead0283505acce0
|
|
This provides a far better way of determining if the surface is
xwayland or not. We can then make sure all X11 clients can be displayed.
Bug-AGL: SPEC-4847
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I2140c452c0d37a84323eaf75787eb32a7771a56e
|
|
This allow starting up XWayland and the ability to display, albeit
is incomplete, given that we have no way at this moment to make the
window maximized, as we do with xdg-shell/native wayland applications.
A further patch, together with libweston changes are needed to make this
complete. For now this can provide us with initial smoke testing. Tested
with basic X11 clients, including Unigine, which is the reason for
having this the moment.
Note that this at the moment compiled-out, requiring the pass
-Dxwayland=true when building the compositor.
Bug-AGL: SPEC-4782
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I87d2a852165cb3f03482bea1e04931bdd6d4c115
|
|
The activation area can set-up with agl_shell as well, so give
the ini configuration file precedence over the one set-up by
agl_shell.
Bug-AGL: SPEC-4829
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ifae82b8c29575e7a9a06422588ad6a8cce80946e
|
|
Rather than doing that always, be more selective, and perform it if we
had already an application active.
Bug-AGL: SPEC-4829
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I707f92d1cc1f820af493bae9daa5a948aa452ad8
|
|
This is a temporary work-around for doing another read of the ini file
for the activation-area in case we detected that we have one set-up but
the activation area is empty. This happens when we're getting the ready()
request from the shell client, when we're initializing the layout.
Bug-AGL: SPEC-4829
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I152e7cba34b74390de2a46df4799c1fb44441d3f
|
|
Similar to Waltham, SMACK hasn't been really used and it was actually
a compile option, showing as a example the deny policy. The RBA and the
allow-all policy still available, and we can revisit the policy
mechanism if we plan on switching to SELinux.
Bug-AGL: SPEC-4806
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Iedac63585676ebc47201debcf73870cb0538cc09
|
|
Waltham hasn't been used in a while, its support has been removed for
some time, we've been deprecating it last release so it's time to remove
it from the compositor as well.
Bug-AGL: SPEC-4669
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Iaf1e467b1228051fd96cac424ac6781d67f9fefa
|
|
And split the screenshot in multiple files, to match each output.
Bug-AGL: SPEC-4788
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I6d9e545c05ff949900f0158720888eb757c2c271
|
|
Bug-AGL: SPEC-4593
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I79d4447b7768b72712e244504782a33ba257a33d
|
|
This brings in support to pass, over the command line, debug scopes
that can help out debug issues with HW with other components or with
libweston itself. One particular importance is the drm-backend debug
scope.
Bug-AGL: SPEC-4593
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I7a182ffe0b2b9bfdeced184514283265bb17c607
|
|
So far, we could start an application on a different output, but
moving them back-and-worth wasn't really supported. This handles
a few use-cases like:
- move an application's window from one output to another
- install black curtain in case we no longer have any other surfaces
on that output;
- deactivate and switch to the previous active window in case there's
one available
- the activation is handled by the shell client, while deactivation
is done implicitly by the compositor to simplify the shell client
This does a bit of rewording of a function that returns true whenever
we have only a single application window on a particular output.
Bug-AGL: SPEC-4673
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I58cde58c6a2e2dade93566bfd7aff5ed697f5450
|
|
Checking both width and height isn't a strict requirement, either can
different. This unties the check such that we can actually move
windows/applications between different outputs.
We also add here an explicit surface damage as we're removing the view
from the layer.
Bug-AGL: SPEC-4773
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ie91b8c0fd2e9357fe00fd693e2a70fa3b4b4d31a
|
|
Some applications, set up their app_ids after the initial surface
commit, which is too late to move them/place them to a different output.
This addresses that in the case the application sets one up, after the
initial surface commit.
Bug-AGL: SPEC-4759
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I4762af1ba6e8708722385ac06c37486dd4b6aac1
|
|
A while ago we switched to activation-by-default turned off which passes
the responsability of activating applications to the shell client. The
shell client uses the app_id to indentify the application to display,
and the output.
The output would normally be hard-coded to the first available output
but there is nothing that prevents the shell to display it on other
outputs.
This patch does just that, it would allow the user use configurable
option in the ini file, under the [output], agl-shell-app-id=app_id, by
re-using the event from the compositor sent to the shell client to
pick up a different output, the one specified in the section entry.
Bug-AGL: SPEC-4529
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ieea1a28fe6776ecc691fd38da9b4c3495ac5a5ea
|
|
Though there's no difference between the desktop and remote role this
would simplify handling, and with it we remove the implicit activation
of surfaces, which wasn't addressed when we switched to
activate-by-default=false by default.
Bug-AGL: SPEC-4673, SPEC-4759, SPEC-4529, SPEC-4756
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ia5e57155ed26c53958e0e9590be04f91c5de1c28
|