Commit Graph

15 Commits

Author SHA1 Message Date
Christian Hergert
d533773cf7 lib: fix absolute x,y mouse position 2023-02-15 18:02:51 -08:00
Christian Hergert
a57f55e24c lib: remove "none" initial cursor
We don't always get a cursor from the peer at startup. So ignore it until
we get a cursor delivered.
2023-02-15 18:00:29 -08:00
Christian Hergert
7d7ccea630 lib: allow shrinking display 2023-02-15 17:52:48 -08:00
Christian Hergert
62f084b0b4 lib: robustness fixes for mouse movement 2023-02-15 17:52:40 -08:00
Christian Hergert
0a7c1ff21c lib: use mouse-set from peer to update local position
We may need to tweak this for relative mouse positions if we find we dont
get reliable information from the peer. But this is a start, which I see
we get back from Qemu at least when we're in -enable-kvm mode.
2023-02-15 12:16:47 -08:00
Christian Hergert
5c52047800 lib: set cursor from guest provided texture data 2023-02-15 12:02:03 -08:00
Christian Hergert
8dd08014b1 lib: set "none" for cursor in display
We have a remote cursor to deal with.
2023-02-15 11:34:38 -08:00
Christian Hergert
3d89b77ed2 lib: ensure display widget is focusable
Otherwise we won't get keyboard input.
2023-02-15 11:34:17 -08:00
Christian Hergert
7c63e051fd lib: use legacy event controller
Now that we are doing our own paintable management, we can more easily
transition to doing our own event management with the Legacy event
controller (which, despite the name, really just allows us to get more
direct GdkEvent for processing).

Additionally, this adds support for scroll events to the guest.
2023-02-15 10:38:24 -08:00
Christian Hergert
2286183747 lib: export paintable properties
This is mostly useful so that we can see things within the inspector at
runtime in case we need to debug what backends are used.
2023-02-15 07:01:32 -08:00
Christian Hergert
a8505e1245 lib: remove use of GtkPicture
We want a bit more control over things than we can get with GtkPicture so
do the snapshot/measure internally. This allows us to know where the
picture is to be allocated so that we can translate pointer events to the
location within the console.
2023-02-15 06:47:10 -08:00
Christian Hergert
6c5829d949 lib: make clicks and motion work
We need to handle a mouse that is not absolute positioned (the default it
seems) and this does that (crudely for the moment until we have some sort
of grab management).

Additionally, click events are propagated to the Qemu instance as well.
2023-02-14 14:19:12 -08:00
Christian Hergert
beb7299d25 lib: add basic input controllers to MksDisplay
Still plenty to do on the motion bits, but at least basic key controller
events propagate now.
2023-02-14 13:34:45 -08:00
Christian Hergert
6beaf8b925 lib: encapsulate GtkPicture within MksDisplay
We don't need to do this manually now that we have GtkPicture working
correctly with content-fit. We still want to maintain our own widget to
manage things like grabs and all that though.
2023-02-14 11:18:48 -08:00
Christian Hergert
d20dcd2674 lib: start on MksDisplay widget 2023-02-13 21:53:57 -08:00