Commit Graph

160 Commits

Author SHA1 Message Date
Bilal Elmoussaoui
7c67084055 Relicense as LGPLv2.1+ 2023-06-01 12:04:35 +01:00
Christian Hergert
f1a6ce1fe1 Merge branch 'bilelmoussaoui/auto-resize' into 'main'
display: Add the possibility to disable auto resizing

See merge request chergert/libmks!22
2023-05-31 23:50:28 +00:00
Bilal Elmoussaoui
b23bdcffd7 In certain cases, you might want to control the VM size when running
QEMU instead of having libmks handling that when resizing the widget

This also would allow having an option for auto-scaling that would
scale the texture to fit the widget size
2023-05-31 20:13:06 +01:00
Christian Hergert
6d6c470288 Merge branch 'set-lib-soname' into 'main'
build: Set a SONAME version in the libmks library

See merge request chergert/libmks!23
2023-05-31 16:46:58 +00:00
Christian Hergert
23f85e443f Merge branch 'bilelmoussaoui/speaker' into 'main'
build: Don't include Speaker type

See merge request chergert/libmks!24
2023-05-31 16:46:36 +00:00
Bilal Elmoussaoui
fc996f251b build: Don't include Speaker type
Currently, the Speaker device is not fully implemented. So let us stop
building those files to avoid exposing them as part of the docs/gir API
until someone finishes it implementation

Part of #6
2023-05-30 11:16:01 +01:00
Javier Martinez Canillas
868aad0244
build: Set a SONAME version in the libmks library
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
2023-05-30 11:46:27 +02:00
Christian Hergert
543c0cbbda Merge branch 'aesteve/fix-atomic-kms-cursor' into 'main'
display-picture: set cursor on init

See merge request chergert/libmks!19
2023-05-26 04:51:34 +00:00
Christian Hergert
3c422815a8 Merge branch 'bilelmoussaoui/duplicated' into 'main'
Drop duplicated create_socketpair

See merge request chergert/libmks!21
2023-05-26 04:47:34 +00:00
Albert Esteve
25b58fc0a2 display-picture: set cursor on init
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>
2023-05-25 10:19:17 +02:00
Bilal Elmoussaoui
6b29de7164 Drop duplicated create_socketpair 2023-05-25 09:59:45 +02:00
Christian Hergert
00099bb4a5 Merge branch 'bilelmoussaoui/close-fd' into 'main'
paintable: Properly close DMABuf FD

See merge request chergert/libmks!20
2023-05-24 23:02:27 +00:00
Bilal Elmoussaoui
5736f4e19f paintable: Properly close DMABuf FD
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...
2023-05-24 15:17:46 +02:00
Christian Hergert
e8d30c4f73 Merge branch 'bilelmoussaoui/docs' into 'main'
docs: Document most of the public APIs

See merge request chergert/libmks!18
2023-05-23 19:54:00 +00:00
Bilal Elmoussaoui
c7772df9aa docs: Document most of the public APIs 2023-05-23 12:34:01 +02:00
Christian Hergert
c0f0d1c22c build: fix include directories for subprojects
We have no need to include the top-level when depended on, as config.h
will only ever be used by our internal .c files.

Related !17
2023-05-17 14:35:56 -07:00
Christian Hergert
f71a2002ba display-picture: use compute_point()
The gtk_widget_translate_coordinates() API is now deprecated, so use the
compute_point() API and ensure that we can translate to the target widget.
2023-05-17 13:53:49 -07:00
Christian Hergert
4be889b608 display-picture: remove deprecated allocation API usage 2023-05-17 13:48:21 -07:00
Christian Hergert
cae805a728 resizer: only branch when non-NULL
My previous commit broke this, which is needed because we always return
FALSE when either are NULL.
2023-05-17 13:37:33 -07:00
Christian Hergert
69dfaddb9d resizer: various code-style cleanup
Related !13
2023-05-17 13:36:11 -07:00
Christian Hergert
6a024f0e5d Merge branch 'bilelmoussaoui/reconfigure' into 'main'
display: Reconfigure screen when size change

See merge request chergert/libmks!13
2023-05-17 20:11:49 +00:00
Christian Hergert
233f30a2d1 Merge branch 'libmks-bilelmoussaoui/gdk-gl-texture-builder' 2023-05-17 13:09:05 -07:00
Bilal Elmoussaoui
c259212be5 dmabuf: Properly propagate damage area
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.
2023-05-17 13:08:37 -07:00
Christian Hergert
379f2e862a build: Depend on gtk main for GdkGLTextureBuilder
- 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
2023-05-17 13:08:31 -07:00
Christian Hergert
598e127650 .gitignore: ignore .flatpak-builder 2023-05-17 13:07:46 -07:00
Christian Hergert
b15e1f0483 Merge branch 'bilelmoussaoui/build-fixes' into 'main'
Various meson fixes

See merge request chergert/libmks!16
2023-05-17 20:06:34 +00:00
Bilal Elmoussaoui
51f8615099 build: Set the pkg-config name when generating GIR
Should help gi-docgen figure out the pkg-config name to display in the
docs
2023-05-14 19:03:01 +02:00
Bilal Elmoussaoui
2636c9e1a9 build: Various fixes to auto generated sources
Needed to fix the build when GTK is also built from a subproject
2023-05-14 19:03:01 +02:00
Bilal Elmoussaoui
42686c113e misc: Ignore VSCode specific folders
VSCode + VSCode Flatpak generates those folders making it quiet
esay to accidently add those files to a commit by mistake
2023-05-10 01:50:42 +02:00
Bilal Elmoussaoui
a804f766f9 display: Reconfigure screen when size change
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.
2023-05-10 00:32:35 +02:00
Christian Hergert
018b072100 Merge branch 'bilelmoussaoui/mks-cosmetics' into 'main'
tools/mks: Cosmetic changes

See merge request chergert/libmks!15
2023-05-09 21:44:15 +00:00
Bilal Elmoussaoui
ab157df65d tools/mks: Cosmetic changes
- Prefer dark style: per the HIG recommendations 
- Sets a slightly bigger default size
2023-05-09 18:58:16 +00:00
Christian Hergert
cd7825d9d5 build: allow -Dtracing for more logging information 2023-04-20 14:00:04 -07:00
Christian Hergert
5c12eac44f Merge branch 'dbus-connection-setup-flags' into 'main'
tools: Set g_dbus_connection_new_for_address initialization flags

See merge request chergert/libmks!12
2023-04-20 20:50:03 +00:00
Christian Hergert
15e6667292 Merge branch 'add-vala-support' into 'main'
Add VAPI (vala) support

See merge request chergert/libmks!11
2023-04-20 20:46:21 +00:00
Christian Hergert
2a7ec12df3 Merge branch 'bilelmoussaoui/cleanup' into 'main'
display-picture: Don't compute min-width/min-height

See merge request chergert/libmks!10
2023-04-20 20:45:46 +00:00
Christian Hergert
0e1c0a7d10 Merge branch 'bilelmoussaoui-main-patch-78694' into 'main'
readme: Add a link to the docs

See merge request chergert/libmks!9
2023-04-20 20:42:27 +00:00
Felipe Borges
14c368d9e7 Add VAPI (vala) support 2023-04-17 12:46:26 +02:00
Felipe Borges
86c54a6fdc tools: Set g_dbus_connection_new_for_address initialization flags
Otherwise private dbus connections fail with ""The connection is closed".
2023-04-17 12:38:33 +02:00
Bilal Elmoussaoui
26f4b72708 display-picture: Don't compute min-width/min-height
They are not useful for us as we would like the user to be able to
shrink the picture.
It is a leftover of migrating from GtkPicture
2023-04-13 15:13:27 +02:00
Bilal Elmoussaoui
b4fade7fe1 cleanup: Drop useless conditions 2023-04-13 15:04:40 +02:00
Bilal Elmoussaoui
2d29e054b0 readme: Add a link to the docs 2023-04-04 09:24:47 +00:00
Christian Hergert
188c63a183 Merge branch 'bilelmoussaoui/fix-focus' into 'main'
display: Grab focus on MksDisplayPicture

See merge request chergert/libmks!8
2023-04-04 03:28:32 +00:00
Christian Hergert
02edb73d2a Merge branch 'bilelmoussaoui/expose-translate-keycode' into 'main'
keyboard: Expose keycode translation helper

See merge request chergert/libmks!7
2023-04-04 03:26:14 +00:00
Christian Hergert
5d1f5818c9 Merge branch 'bilelmoussaoui-main-patch-70944' into 'main'
display-picture: Fix keyval value

See merge request chergert/libmks!6
2023-04-04 03:23:29 +00:00
Christian Hergert
8e7702012a Merge branch 'bilelmoussaoui/fix-session-ctor' into 'main'
session: Fix the display dbus path

See merge request chergert/libmks!5
2023-04-04 03:23:13 +00:00
Christian Hergert
0b46c75dc8 Merge branch 'bilelmoussaoui/fix-subproject-build' into 'main'
build: Fix building as a subproject

See merge request chergert/libmks!4
2023-04-04 03:22:49 +00:00
Christian Hergert
02f18f1835 Merge branch 'bilelmoussaoui/docs' into 'main'
Build & publish docs using gi-docgen

See merge request chergert/libmks!3
2023-04-04 03:22:27 +00:00
Bilal Elmoussaoui
5783b6a8ce display: Grab focus on MksDisplayPicture 2023-04-03 22:17:31 +02:00
Bilal Elmoussaoui
57370d5a73 keyboard: Expose keycode translation helper
Useful for exposing keyboard shortcuts triggers on the UI
Similar to what Boxes does for Ctrl+Shift+F
2023-04-03 17:33:11 +02:00