Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi EIS in remote desktop and PW stream integration #2

Open
wants to merge 17 commits into
base: main
Choose a base branch
from

Commits on Aug 30, 2023

  1. eis: Remove meta_ prefix from variables

    This is more or less never used elsewhere, so don't start here.
    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    3822e7f View commit details
    Browse the repository at this point in the history
  2. eis: Don't expose global socket

    How EIS will be used depends on its context, meaning we'll have multiple
    EIS contexts that expose different things. To prepare for this remove
    the global socket since that won't work with multiple contexts.
    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    51230a7 View commit details
    Browse the repository at this point in the history
  3. remote-desktop/session: Take over EIS context

    This means there will be an EIS context per session, which will enable
    per session devices and region.
    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    6e0b658 View commit details
    Browse the repository at this point in the history
  4. eis/client: Fix indentation

    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    51443d1 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    52ae2b4 View commit details
    Browse the repository at this point in the history
  6. remote-desktop/session: Limit device type access when using libei

    The portal could limit access to certain device types, but this was not
    forwarded to the EIS context. Add a way to do this, and make use of it.
    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    bdb33fd View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    7e353c8 View commit details
    Browse the repository at this point in the history
  8. eis/client: Add user_data to add-device helper

    This will allow passing extra context to the configure function.
    Currently all NULL, but preparing for the future.
    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    bfe5e5e View commit details
    Browse the repository at this point in the history
  9. eis: Add "viewport" interface

    A MetaEisViewport represents an absolute region backend by e.g. a
    pointer device. There are two kinds: a standalone viewport, which
    corresponds to a viewport that has no neighbours, and a non-standalone,
    which represents a region of a global coordinate space.
    
    The reason for having non-standalone viewports is to allow to mirror the
    logical monitor layout of a desktop, while the standalone are meant to
    represent things that are not part of the logical monitor layout.
    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    e8bf360 View commit details
    Browse the repository at this point in the history
  10. eis: Fix header include style

    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    5ecd275 View commit details
    Browse the repository at this point in the history
  11. screen-cast: Pass remote desktop session on construction

    We already have the remote desktop session ID, and we'll soon need the
    actual remote desktop session in the screen cast session, so pass it on
    construction.
    
    The old screen cast type is set implicitly instead.
    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    dfd4262 View commit details
    Browse the repository at this point in the history
  12. eis: Tear down in dispose

    This means clients can disconnect signals without warnings being logged.
    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    cac54fa View commit details
    Browse the repository at this point in the history
  13. remote-desktop/session: Add API to acquire new mapping ID

    They are guaranteed to be unique per session, and never reused.
    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    44e11a1 View commit details
    Browse the repository at this point in the history
  14. screen-cast: Implement MetaEisViewport in all stream types

    This will be used to describe a eis_region in a eis_device.
    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    51e2a43 View commit details
    Browse the repository at this point in the history
  15. eis: Use either standalone or shared devices for absolute input

    Sometimes it makes no sense to have a shared pointer device, for example
    when they have no set region occupying the global stage coordinate
    space. This applies to for example window screen cast based pointer
    device regions - they are always local to the window, and have no
    position.
    
    We do need shared absolute devices in some cases though, primarily
    multi-head remote desktop, where it must be possible to keep a button
    reliably pressed when crossing monitors that have their own
    corresponding regions.
    
    To handle this, outsource all this policy to the one who drives the
    emulated input devices. Remote desktop sessions where the screen casts
    correspond to specific monitors (physical or virtual), we need to make
    sure they map to the stage coordinate space, while for window screencast
    or area screencasts, we create standalone absolute pointer devices with
    a single region each.
    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    a327c23 View commit details
    Browse the repository at this point in the history
  16. eis: Don't treat EIS errors as fatal

    g_error() is fatal, but EIS errors are not necessarily that.
    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    df32cd5 View commit details
    Browse the repository at this point in the history
  17. remote-desktop/session: Add regions for all monitors if input-only

    If we're a input-only remote desktop session, create libei regions on an
    absolute pointer device corresponding to all logical monitors. This
    allows absolute pointer motions without screen casting.
    jadahl committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    ae8df67 View commit details
    Browse the repository at this point in the history