summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2022-06-10layout: Add a way common way activate viewsMarius Vlad3-0/+65
We install a common function which is being used to de-couple keyboard presence from input and xdg-shell activation. We also also use it at surface removal/destruction. Bug-AGL: SPEC-4413 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I2686e5a4aab3e95fbeaa4100faa2dc0051881f24
2022-06-10shell: Extract some common functionsMarius Vlad3-15/+30
For instance this exports retreiving a ivi_seat from weston_seat, and they are useful in other parts as well. Bug-AGL: SPEC-4413 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I838823570792761dfb5ac4beea635e843dd5cd22
2022-06-10input: Migrate ivi_seat to ivi_compositor headerMarius Vlad2-13/+13
We might need to retrieve the seat in from different places to make it available. Bug-AGL: SPEC-4413 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I76343fe6039ae088356ddc33364e917d67dd414b
2022-06-10input: Remove keyboard listener keyboard focus activationMarius Vlad1-37/+0
This is part of the bigger series to remove the need to have a keyboard present to activate views/surfaces. This clean-ups any keyboard listener we had installed previously. Bug-AGL: SPEC-4413 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Iacd63a857cfe4d17c665f37dc8338cd790b7d16f
2022-06-03compositor: Properly dispose of fullscreen views at shutdownMarius Vlad2-1/+10
While we can have multiple outputs, each with its own fullscreen view, we have a layer-per-output hence we can't really call layer_fini() in the output destruction as that what would result in an invalid link access. Handle those views destruction and with it, the fullscreen layer fini, in the finalize bit where all others are handled as well. This fixes a crash at shutdown, which could be seen when using multiple outputs, and probably quite problematic when handling a restart. Fixes: 43bdf9a42bac33df174d6ac7ff1ab2e15441c7b5 Bug-AGL: SPEC-4420 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I773890a24ad8ca2556c1d4ddda7f37ebae02c9de
2022-05-04shell: Do not set none role for applications w/o appidMarius Vlad1-5/+0
With commit 'layout: Send dimensions when setting up property as fullscreen' we made so that fullscreen applications will receive the configure event right from the beginning but that changed a bit the way we handled applications that do not set-up an appid before doing the initial wl_surface.commit. Avoid doing that such that applications do not need to go through a resize. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I91a9ab97ff5e30d3a86cda499d394c1a9fcde338
2022-05-04shell: Let the output destroy handler handle layer finiMarius Vlad2-12/+1
This way we don't race with it. Part of 'shell: Added missing layer fini calls'. Bug-AGL: SPEC-4351 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I366364ba128ca1dacd3d3639a1b74b02f3ceef21
2022-05-04desktop: Document the repaint scheduleMarius Vlad1-0/+11
Add some further comment why we could still potential need it. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I510cd60d5feeccf7d8b9b34fb73e0e272fac5c6a
2022-05-04Revert "desktop: No need to schedule a compositor repaint"Marius Vlad1-0/+2
This reverts commit 8f85581e96bc71512cbef015ff12dc6441c07d9c. I incorrectly assumed that we don't need to schedule a repaint, but applications that do not set-up an appid would still need to go through a resize and we need to continue to allow doing that. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I3702fa0a9c29290746250992d8921f777daa9fbf
2022-05-03shell: Added missing layer fini callsMarius Vlad3-1/+77
Newer libweston version introduced additional API to determine if we are missing out proper destruction paths. Bug-AGL: SPEC-4351 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I135ca463992244ae91512854c7da7004de48f72e
2022-05-03compositor: Proper indentationMarius Vlad1-2/+4
Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I010463d02a1dc71539754be24ce8c5d747a31b96
2022-05-03desktop: Remove dead codeMarius Vlad2-20/+0
Some dead code artefacts, no need to keep these in. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Idca7f858592b422a0e028ed03e10f4bb418bcb40
2022-05-03desktop: No need to schedule a compositor repaintMarius Vlad1-2/+0
Part of a larger clean-up. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I8532fb03e1911f9dc5c04fa113d2b3e2eeba4879
2022-05-03meson.build: Bump up meson versionMarius Vlad1-3/+2
Bump meson version requirements to a much newer version + some minor compiler options which are handled directly by the build system. yocto seem to use meson 0.63 so we're more than fine bumping the verison for meson. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I69305b3b33e4919cb19ffa088b3530720f1b45c5
2022-05-03layout: Inform client to resize for fullscreen rolesMarius Vlad2-19/+58
In a previous patch we optimized sending the dimensions from the start, but in some situations the client might set up the surface roles *after* that happens, which might lead to issue as we are explicitly terminating the connection if the client wasn't correctly resized by that time. This corrects that such that even if we perform a late set-up for the fullscreen role, we can still tell the client to resize, and later on to display the surface. Bug-AGL: SPEC-4339 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I491c60c9881e99bc3201216a842782417286f0d9
2022-05-03layout: Send dimensions when setting up property as fullscreenMarius Vlad4-28/+65
Instead of doing it at commit time, do it right after getting the xdg toplevel surface such that clients can use it from the beginning. This now includes fullscreen, besides regular desktop roles, and it avoid mapping the fullscreen upon commit if the dimensions do not really match up. Bug-AGL: SPEC-4339 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I7185b10770c69d1d6572b0bc025c4a58fe431c67
2022-04-29layout: Do perform a view update transform when unmappedMarius Vlad1-0/+2
We should always perform a view update transformed when the view is not mapped -- or better said when mapping the view. Found while investigating some certain bevahiours related to surfaces not being activated by default. While a dirty+surface damage is sufficient when adding views to layers, on mapping we should also perform an transform update of the view. Bug-AGL: SPEC-4302 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ia8e8ed2c4cc165e7fd371a474d85b5fe38bd87fa
2022-04-29layout: Make the view mapped at activation completionMarius Vlad1-3/+1
Instead of tagging it various places just do it a completion phase. Makes things a bit easier to follow/read. Bug-AGL: SPEC-4302 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I91ad6b29a786c4c78afa8ff07d104008be7bcb84
2022-04-29compositor: Rename activated_by_default to mappedMarius Vlad3-15/+15
This variable is about surface being displayed, rather than being activatred so use mapped to better reflect that. It also makes things easier to keep track per surface about surfaces being activated by default or not. No functional change whatsoever. Bug-AGL: SPEC-4302 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ib0c508dff3eef593d86f259b55ff4e7087313a69
2022-03-29Weston 10.0 compatibility changesScott Murray3-5/+5
Changes: - Bump libweston dependencies in meson.build. - Handle addition of another argument to the wet_main and weston_compositor_create functions. Bug-AGL: SPEC-3819 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2022-03-29Weston 9.0 compatibility changesScott Murray3-20/+20
Changes: - Bump libweston dependencies in meson.build - Match weston_compositor_tear_down -> weston_compositor_destroy API change by following what was done in weston for 9.0 - Update log context code to match API changes, based on what was done in weston for 9.0 - Update transform names to match weston - Initialize a couple of structure fields to avoid failure from -Werror=missing-field-initializers triggered by changes in newer wayland. Bug-AGL: SPEC-3819 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I48fab590eb59a1b83b0cebc3762ba730450b0e3a
2022-03-17Remove the listener in the end of ivi_shell_destroy()duerpei1-0/+1
Bug-AGL: SPEC-4291 Signed-off-by: duerpei <duep.fnst@fujitsu.com> Change-Id: Ieaa78e59365c8749754117cf2587b4c72e1f1f31
2022-03-15Fix potential memory leak in agl-compositorduerpei1-2/+8
wet_main->parse_options-> .... ->strdup ->malloc "config_file" memory is not released "log"memory is not released When agl-compositor startup parameters contain socket and modules, the memory of socket_name and option_modules also needs to be released. So these two pointers are also released. Bug-AGL: SPEC-4270 Signed-off-by: duerpei <duep.fnst@fujitsu.com> Change-Id: I0d74b92187a0779610f32e75b33ab4fca10329a5
2022-03-02layout: Address all other callsites w/ dirty+surface damagemarlin_12.93.0marlin/12.93.012.93.0Marius Vlad1-10/+13
This is just a missing left-over 'layout: Inflict damage on all subsurfaces'. As we have different paths for other types of surface roles, address them as well. Bug-AGL: SPEC-4262 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I2b68bf986ad694b0e31396edc24c54cf1dc4d834
2022-03-02layout: Inflict surface damageMarius Vlad1-2/+1
Commit 'layout: Remove explicit damage call' re-done the way we've handled additions to the layer, removing any damage infliction to either the plane where to view is visible. While marking the view as dirty (and with it any other children to the that view), we still to tell the compositor that the view being added, has suffered changes. Bug-AGL: SPEC-4262 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: If3033df36943fb466302e7907bd38f9a0703d49b
2022-03-02layout: Remove left-over commentMarius Vlad1-2/+0
Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Iba0cab61d20d8c92f6e179e25388c66a7d0e41f3
2022-02-23Fix potential memory leakduerpei1-0/+1
Bug-AGL:SPEC-4257 Signed-off-by: duerpei <duep.fnst@fujitsu.com> Change-Id: I0effc97710d9bf93f5044e22400e9ff6699a4309
2022-01-28meson.build: Don't set the dependency type for wayland-scannermarlin_12.92.0marlin/12.92.012.92.0Marius Vlad1-1/+1
meson (0.53) seem to be smart enough to resolve cross-compile dependencies without setting explicitly the dependency type. Setting the dependency as native results in ignoring PKG_CONFIG_PATH and using PATH to choose and alternative pkg-config. Sourcing the yocto/OE toolchain would result in picking the hosts pkg-config due to modified a PATH where SDKTARGETSYSROOT is before any of the hosts paths. Combined that with the fact that PKG_CONFIG_PATH is reset when the dependency is se to native (why that hapens is something to further investigate) results in not finding wayland-scanner. Tested with both yocto/OE toolchains and native (local) builds to make sure we can still build it and seems we're fine. Bug-AGL: SPEC-4169 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I5c4b12eff044aeb0c3ab4c18e943da4e15d6c411
2022-01-20Fix potential memory leakRongrong Yuan1-0/+5
Bug-AGL: SPEC-4221 Signed-off-by: Rongrong Yuan <yuanrr.fnst@fujitsu.com> Change-Id: I30634977a3b899647a5f2faad2c70db39e97d09e
2022-01-13client/screenshooter: Compute the width/height for a single outputMarius Vlad1-0/+2
We're missing determining the buffers dimenions, so this basically adds that. Turns out this was introduced w/ commit 'clients/screenshooter: Fix taking screenshot on multiple outputs'. Still clueless on how this worked in CI, unless we're using `-a' to take a screenshot on all outputs. Bug-AGL: SPEC-4217 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I9a849457e9ca40f0b36e7249d9142b32ca3114ab
2021-12-22agl-compositor: Add NULL check after creating surface/viewAndyZhou1-2/+6
Add a check to verify if both the surface/view was created successfully in function create_black_surface_view of src/shell.c file. Bug-AGL: SPEC-4193 Signed-off-by: ZhouMingying <zhoumy@cn.fujitsu.com> Change-Id: I69c6a6023c8b7a3b6e376f3cba25020a851648ab
2021-12-22agl-compositor:Add NULL check after zalloc in src directorymarlin_12.91.0marlin/12.91.012.91.0AndyZhou3-4/+72
There's no NULL check in zalloc. Add a NULL check after zalloc. And add memory free before return error. Bug-AGL: SPEC-4178 Signed-off-by: ZhouMingying <zhoumy@cn.fujitsu.com> Change-Id: Ic0e0e2007b2897a451507aed100ad01b65695383
2021-12-21agl-compositor:Add NULL check after zalloc in screenshooter.cAndyZhou1-0/+2
There's no NULL check in zalloc. xdg_output is alloced by zalloc. Add a NULL check after zalloc and before use xdg_output. Bug-AGL: SPEC-4178 Signed-off-by: ZhouMingying <zhoumy@cn.fujitsu.com> Change-Id: Idc2e3fd6be823c063a84868ba37b26ffe90db6fc
2021-12-20agl-compositor: Correct several spell issues in the protocol xml filesAndyZhou3-5/+5
There are several spell issues in the protocol xml files. Modify to correct them. Bug-AGL: SPEC-4174 Signed-off-by: ZhouMingying <zhoumy@cn.fujitsu.com> Change-Id: I052a1cb4b1a0054305899a1d83e4be0fd9d03c2b
2021-12-17agl-compositor: Correct several spell or grammar issues in the README.md file.AndyZhou1-14/+14
There are several issues in the README.md file. Modify to correct them. Bug-AGL: SPEC-4154 Signed-off-by: AndyZhou <zhoumy@cn.fujitsu.com> Change-Id: I3a26692ba5257f99038262fdd1e45d87dd84da08
2021-12-16layout: Remove explicit damage callMarius Vlad1-3/+2
As we will be marking all the views dirty, weston_output_repaint() should pick-up correctly any inflicted damage, and perform an implicit redraw without the need for an explict to call to weston_view_below_damage(). Note that we still need to schedule a repaint for that particular view. While at it, also remove an explicit call to weston_view_update_transform() which is going to be handled internally as well, when rebuilding the view list by libweston. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ic701daebe69613b3dcc8eef96cac05c1b803327a
2021-12-16layout: Inflict damage on all subsurfacesMarius Vlad1-0/+1
As it has been seen with the camera-gstreamer application, when switching back and forth between various other application and camera-gstreamer we'll get artefacts/black surface as a result that we're only adding damage to the main parent surface. Bug-AGL: SPEC-4145 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Idf49e6c9100d63f5a5c63c34bfc65e8641eba822
2021-12-10meson.build: Bump compositor versionMarius Vlad1-4/+3
This bumps the compositor version to accomodate the protocol update well. Bug-AGL: SPEC-4133 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Iea01e3e36ef9ebf1f90e3fb07bd9637d8d060ab2
2021-12-10shell: Refactor pending surfaces for existing pending onesMarius Vlad1-18/+128
This patch refactors a bit the way we add pending surface roles, such that it updates to an existing surface, rather than create a new one with the same app_id. Bug-AGL: SPEC-4133 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ifd7477ea0f0840d6fd82bbc21216a7694d0efa8b
2021-12-10src/desktop: Add a compositor destroy listenerMarius Vlad3-1/+20
Tearing down the ivi compositor instance (the shell) requires listening for such an event and handle any potential destruction of surfaces. With it we use to destroying any pending surfaces might have been left. Bug-AGL: SPEC-4133 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I911c590409700374007673da680b7a76f69be1b2
2021-12-08src/shell: Add set_app_property_mode requestMarius Vlad3-6/+77
Bug-AGL: SPEC-4133 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Iffc770e079788bb553077665169365dc7b2d901e
2021-11-09layout: Fix-up the positions when placing the pop-up/dialogMarius Vlad1-1/+15
Turns out we weren't accounting for the initial position (of the output) as to derive the correct positioning of thew view/surface. This uses the output x and y value and together with the values supplied by the user to result in correct placement. Bug-AGL: SPEC-4127 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I38f0bb9051d4650283cfa483936b121a6d136ca6
2021-11-05shell: Fix passing maximized state from the startMarius Vlad3-5/+60
We've added an optimization where we where sending to regular (desktop) surfaces from the beginning the maximized state, together with the size whenever the client signaled that it is ready to present. That optimization failed to take into account other potential roles, more importanly, the pop-op role which should not be getting any window state, and implicitly shouldn't be getting any surface dimensions, leaving it to the client to decide that. Patch checks all pending lists to make sure we're not skipping any on purpose. Bug-AGL: SPEC-4119 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I4f8c62af545c5955e7fa41c3fd73f52d6c73b600
2021-09-28meson.build: Add a waltham-transmitter pkg-config pc filemarlin_12.90.1marlin/12.90.112.90.1Marius Vlad1-1/+1
It would be of tremendous help to know when the transmitter plugin is really installed, to avoid assuming that the waltham library is enough. Bug-AGL: SPEC-4087 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I8c569fae641472fe9a2454a89fcf6da4f2a33ccc
2021-09-28meson.build: Conditionally build with headless supportMarius Vlad2-0/+19
This allow to build the compositor without headless support, just in case libweston wasn't built with it. Bug-AGL: SPEC-4087 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ie848d842ace06b21371de6f70ad18600927f8044
2021-09-28meson.build: Clarify out-of-tree build errorMarius Vlad1-5/+9
And with it remove libweston-X mentioning, as it applies to all libweston versions. Bug-AGL: SPEC-4087 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I47b37822204c3ce1397a6a5efc9e7ee6ce1e8e1b
2021-09-03clients/screenshooter: Fix taking screenshot on multiple outputsMarius Vlad1-18/+14
Turns out we were re-initializing the buffers min/max values each time for each output, thus not computing the entire combined output. This is a trivial fix. Bug-AGL: SPEC-4064 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ie0c7490c902273b42c81e09cd08e480f30a654c0
2021-08-26compositor: Do not allow vt-switching by defaultMarius Vlad1-1/+1
Users are still able to customize that behaviour by modifying configuration file. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Id21b9cf5b486b8f124bfc128c139f8b706c16b45
2021-07-13compositor: Avoid loading systemd-notify plug-inMarius Vlad1-0/+8
This helps being compliant with the weston ini configuration file, and in the same time being able to load other necessary modules. Instead of creating a separate module for loading the systemd-notify do the same thing as xwayland and avoid any attempt of loading it if passed over the command line, or specified in the ini file. Bug-AGL: SPEC-4001 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I46018f2dff5599bb3acc7c7334e77437995d0588
2021-06-24meson.build: Install run-time shared library to a specific pathMarius Vlad1-0/+3
Use prefix_path + libdir to install the run-time shared library and avoid pulling lib with it. This is necessary to avoid installing under PREFIX/ and use PREFIX/agl-compositor instead. This was unfortunately missed when doing the split in a previous commit. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I02b2162f62cbdbf3d00f54edae52aa03c7b4b046