The libmks library is currently unversioned, but donwstream users expect
this library to have a proper SONAME version in order to package them.
A stable release has not yet happened because the project is still under
development and the API/ABI might change. But having a versioned SONAME
would allow distributions to package libmks, without the need to add any
downstream patch to set the library version.
Since the "0.1.0" version is already set as the meson project, let's use
it to set the library version as well. The meson build system will use the
first part of the version (0) as the SONAME version, which is aligned with
the convention used by other projects:
$ ls ./lib/libmks-1.so* -1
./lib/libmks-1.so
./lib/libmks-1.so.0
./lib/libmks-1.so.0.1.0
$ objdump -p ./lib/libmks-1.so.0.1.0 | grep SONAME
SONAME libmks-1.so.0
Set cursor to none (i.e., hide it) on init.
Otherwise, in cases where the define_cursor
signal is not received (e.g., atomic kms),
there are two cursors painted on the Widget
display.
Signed-off-by: Albert Esteve <aesteve@redhat.com>
As g_unix_fd_list_get will dup the FD, we must close it once we are done
with it.
The issue went unnoticable during my testing as apprently, the max
number of open FDs is not in sync between host & toolbox and that is
annoying podman issue...
The current approach makes use of
- A tiled rendering to work around gdk_texture_diff only doing pointer
comparaison
- Assumes that we would only recieve a scanout cmd followed by multiple
flush ones
In reality, with virtio-gpu at least, the scanout cmd is always
submitted followed by a flush one containing the damaged region.
With the assumption currently made, we end up creating a new paintable
for every scanout cmd causing a full redraw instead
of only redrawing the damaged areas.
Isntead we create the paintable once and call import whenever
we receive a flush cmd (UpdateDMABUF) so we can properly
pass the damage area when creating a GdkGLTexture making
the tiled rendering no longer needed.
- Add a meson subproject for building main gtk
- Adapt the docs CI job to install the necessary build deps
- Disable werror in the CI for now, until we port aways from deprecated
APIs
- Switch from using add_global_argument as it would affect subprojects
# Conflicts:
# .gitignore
Otherwise the VM would have no idea about the size of the target widget.
To do so, we introduce a ScreenResizer object that remembers the previous
screen attributes as well the next attributes to configure.
Taking care of scheduling resize operations and avoids submitting
the same attributes twice.