summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2024-11-25layout: Use weston_view_move_to_layer when adding to hidden layerMarius Vlad1-41/+12
Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I6b0fa5a0ccb491ab18fcad23f4655beadb364a32
2024-11-25layout: Use weston_view_move_to_layer helper for de-activating viewsMarius Vlad1-11/+4
Finally, adjust the de-activating views. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I64e0c548c676ad9852bc5fe293eb76635e370c21
2024-11-25layout: Use weston_view_move_layer for all other surface rolesMarius Vlad1-40/+21
Simiarly, make sure all call sites are using the newer helper. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I83b18a80e28d1c6df83b7c46abe58cdbbba4b1ee
2024-11-25layout: Update layout to use weston_view_move_to helperMarius Vlad1-6/+4
This for the hidden layer part. Split these into multiple chunks in case I need to backtrack, or we encounter regressions. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: If0b8832eede274dae319337668d90f20405dac16
2024-11-25layout: Update layout to use weston_view_move_to helperMarius Vlad1-23/+11
Purely cosmetic, but let's update any missing call sites. Makes easier when we update to newer version of libweston. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ib514bc426d46e00ba3cc897767b7e9a4dd3f96a0
2024-08-21compositor: Add option to disable black curtainsMarius Vlad3-9/+15
Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I089b52fd9a908bb7b7b6b78119c1c34216b4be21
2024-08-21compositor: Align to the right the remoting outputMarius Vlad1-0/+2
This was an oversight when we migrated to libweston 13, so align the other right to avoid overlapping with the other outputs. This should allow remoting to work, assuming that host can actually grab the frames. Bug-AGL: SPEC-5230 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I0de113804a5888dba38869e5afb857a162389de2
2024-07-16layout: Don't assume we have background surface set-upsalmon_18.90.0salmon/18.90.018.90.0Marius Vlad1-2/+2
set_background request assumes we have set-up a bg surface which might not be the always case. Just avoid dereferencing before testing for a valid background surface role. Bug-AGL: SPEC-5205 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Reported-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I3481d7eda83c8d6e7605dc0e8fec240029405808
2024-04-26compositor: Use stdint for specifing integer storagericefish_18.0.0ricefish/18.0.018.0.0Marius Vlad1-1/+1
Fixes the following build failure on arm32: | ../git/src/compositor.c: In function 'log_timestamp': | ../git/src/compositor.c:1848:39: error: format '%li' expects argument of type 'long int', but argument 6 has type '__suseconds64_t' {aka 'long long i nt'} [-Werror=format=] | 1848 | snprintf(buf, len, "%s[%s.%03li]", datestr, | | ~~~~^ | | | | | long int | | %03lli | 1849 | timestr, (tv.tv_usec / 1000)); | | ~~~~~~~~~~~~~~~~~~~ | | | | | __suseconds64_t {aka long long int} Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I9c9a532e2535501035867ed29a2d296900509489
2024-04-20clients/screenshot: Add support for weston output captureMarius Vlad8-775/+1075
libweston now provides a protocol which we can use for doing screenshots, not needing to provide one ourselves. This imports a simple client used in Weston but it has some changes to match our current args. Bug-AGL: SPEC-5095 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I00c9e976975447c74668fbfe1045b9177c623064
2024-04-20compositor: Fix wet_process cleanup on compositor shuwdownMarius Vlad3-11/+19
Bug-AGL: PEC-5104 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ib57d93378847cf2c7fa07782d983a179fa4a7ce8
2024-04-17compositor: fix building with RDP disabledScott Murray1-1/+2
Fix declaration of stub function used when the RDP backend is not enabled. Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2024-04-09compositor: Add support for building XwaylandMarius Vlad5-130/+288
This updates with the Weston's front-end. Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Id421bdd04fc6943e991cbf51e9478450411721ef
2024-04-09compositor: Fix RDP loading codeMarius Vlad1-5/+22
Some minor changes were added to the RDP backend, so these just updates our loading code to it. Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I411c825c098a4201a0d017856da3d979f5d9f6ff
2024-03-28compositor: Fix loading nested X11/Wayland backendsMarius Vlad1-5/+31
The AGL compositor frontend uses ivi_output to denote an output and pass it around, with the implication that's available on retrieval later on. In order for that to actually work, and by the mechanism we are retriving it we need to install a destruction handler a bit earlier, such that is available. Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ifbbfff67c75f98fe4ce84613674fb308880bf7e6
2024-03-28compositor: Add more error messagesMarius Vlad1-4/+17
This prints out eariler when a backend failed to load. Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I0414d65199177c70c9d98fd6920f70e18b415f4b
2024-03-28layout: Fix panel initialization with no weston surfaceMarius Vlad1-2/+2
Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ib60ad86aa893d812ce4cf2babbb28b860c9b94a4
2024-03-28compositor: Re-work the DRM and other backends loading phaseMarius Vlad1-82/+199
This follows Weston frontend code for loading up and head/output enablement. RDP, Wayland and X11 backend loading are all handled through the same common code, while the DRM one has a clear distinct one. This greatly simplifies the loading phase and provides a more easier, intuitive code review. Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I97d39004dea0e030478f27ea18989887b8e2cc82
2024-03-28layout: Migrate the layout save/restore to a more useful placeMarius Vlad4-91/+93
Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I5d7284de09485a42dd84075b5fa2268a81982745
2024-03-28compositor/build: Remove HEADLESS backendMarius Vlad2-87/+7
Headless backend was introduced to test out the compositor but never materialized. Besides removing headless loading of the backend, also do a bit of clean-up and remove vnc and pipewire strings as we currently have no such backend capability at this moment. Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I87fdc0aa6c41bdcc8b1f53880860df7139ca7ae8
2024-03-28compositor: Don't reuse weston_compositor_create_outputMarius Vlad1-18/+9
With libweston 13 we don't have a create with head option. Just use the one available has underneath that's what is using as well. Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I236d9caa193dafdd20dc2636a517c4e5bf597bd7
2024-03-28layout, shell: Use implicit layer move to add views to layersMarius Vlad3-27/+18
This afffects the background/panels and black curtain installment, with regular activation still using the older approach. Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: If8f8272fa29e02535eb5751a3119eb6deba0c3ae
2024-03-21compositor: Fix RDP and HEADLESS backends loadingMarius Vlad3-9/+14
Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Id2a3001e02f1be62c621f942be69e5006c20e7a3
2024-03-21compositor: Adapt loading to latest versionMarius Vlad2-31/+38
Some missing bits to adapt to loading correctly the backends. Bug-AGL: SPEC-5096, SPEC-5061 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ibc97d9701ca6dfd7326362fcd2dcf3af681ad704
2024-03-11src: weston_process renamed to wet_processDenys Dmytriyenko1-6/+6
Also, wet_process.cleanup now takes extra data argument. Bug-AGL: SPEC-5061 Change-Id: I2e7e6d976663a41d0a53866d6bde4df0531f1790 Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
2024-03-11src: weston_compositor_load_backend now returns backendDenys Dmytriyenko2-17/+14
And since weston_compositor structure now doesn't provide backend field, move it to the parent ivi_compositor structure. Bug-AGL: SPEC-5061 Change-Id: Ia0463ecdf149172c67857131530fc42e56fe5190 Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
2024-03-11src: use weston_coord_* structuresDenys Dmytriyenko4-46/+49
Offsets and coordinates are now handled and passed around via corresponding weston_coord_* structures. Bug-AGL: SPEC-5061 Change-Id: Ifa6958cce71eca80e4412545c3542842cd4d64da Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
2024-03-11meson.build: update for weston 13Denys Dmytriyenko1-1/+1
Bug-AGL: SPEC-5061 Change-Id: If56c7121b48ab5f826534e3dc538052f4bdef1ac Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
2024-03-11compositor: Fix building when x11 is not enabledMarius Vlad1-2/+4
This is just an aftermath of the change in 'meson.build, src: update for weston 12' which missed up the change for not having the x11 backend. Bug-AGL: SPEC-4578 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Iff2112ece5d378d7d9f8fe67ed05bd9c5d354155
2024-03-11meson.build, src: update for weston 12Marius Vlad6-37/+141
Update dependencies for libweston-12 in meson.build, as well as adjust sources due to libweston-desktop/libweston-desktop.h moving to libweston/desktop.h This adds support libweston 12 which includes the following changes: - use MODULEDIR, for both weston and libweston when loading - use backend, renderer when starting up and pass those up Bug-AGL: SPEC-4578 Signed-off-by: Denys Dmytriyenko <denys@konsulko.com> Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I269e877ee3ae8cf8f1447bda05e11422244a416e
2024-03-11src: Make sure we don't die out when performing output hot-pluggingMarius Vlad1-2/+2
Bug-AGL: SPEC-4617 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I3147cbfbc5a5c3913d8e361b907f5c19bf539276
2024-03-11meson.build, src: update for weston 11Marius Vlad5-18/+86
Bump Weston library dependencies to work with Weston 11.0.0. The following changes are needed to port the compositor to the latest changes from libweston 11. Specifically we now use weston_surface_unref() instead of weston_surface_destroy(). The weston_head parameter is now needed when creating an output in weston_compositor_create_output(). We now use weston_buffer_create_solid_rgba() instead of weston_surface_set_color() to create our black curtain. A further upstream updates has been added to include some of the shell-utils wrapper but we'll get those in the next release of libweston. Finally, in order to attach heads and enable the outputs, we need to start from 1, rather than 0, and we now need lazy output placement for multiple outputs, following basically what weston is doing. Bug-AGL: SPEC-4578 Bug-AGL: SPEC-4617 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ie4aa7bc09b99d85b6bda49437c5f4789012244e1
2024-03-11meson.build: Fix wayland-scanner detectionScott Murray1-1/+1
Update wayland-scanner dependency to mark it as native, as detection fails with newer meson without it. This also matches what is done in Weston's meson.build. Bug-AGL: SPEC-4578 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2024-02-23meson.build: Do another version bumpMarius Vlad1-1/+1
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
2024-02-23compositor: Avoid compiler warning and build failureMarius Vlad2-1/+3
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
2024-02-23meson.build: Bump version to 0.22.3Marius Vlad1-1/+1
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
2024-02-23compositor: Add support for loading width/height/transformMarius Vlad1-1/+37
From the ini configuration file. Bug-AGL: SPEC-5077 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I12e47844771494f72db5e387d468bef70ceb5edf
2024-02-23main-grpc: Fix iterator going invalid at destruction timeMarius Vlad1-6/+4
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
2024-02-23compositor: Add the ability to load rdp-backend.soMarius Vlad3-11/+183
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
2024-02-22layout/shell: Keep track of previous roleMarius Vlad3-16/+28
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
2024-02-22layout: Added sticky implementation for split windowsMarius Vlad3-13/+108
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
2024-02-22shell/layout: Add implementation for the width paramMarius Vlad3-21/+53
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
2024-02-22src: Don't attempt to split background role windowMarius Vlad2-2/+2
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
2024-02-22grpc-proxy/shell: Add sticky parameter when setting up split windowMarius Vlad6-6/+17
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
2024-02-22grpc-proxy/shell: Add width for split windowMarius Vlad6-11/+13
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
2024-02-22layout/shell: Reset split type of windowsMarius Vlad3-10/+41
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
2024-02-22shell: Reset active view to allow further activationMarius Vlad1-0/+5
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
2024-02-22layout: Specify the reason for not activating windowsMarius Vlad1-3/+7
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
2024-02-22grpc-proxy: Extend AglShellSetSplit from gRPC proxyMarius Vlad4-5/+25
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
2024-02-22layout/shell: Add basic support for split windowMarius Vlad7-4/+402
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