• Jonas Ådahl's avatar
    backend: Set up and use ownership chains · c390f70e
    Jonas Ådahl authored and Marge Bot's avatar Marge Bot committed
    This means objects have an owner, where the chain eventually always
    leads to a MetaContext. This also means that all objects can find their
    way to other object instances via the chain, instead of scattered global
    singletons.
    
    This is a squashed commit originally containing the following:
    
    cursor-tracker: Don't get backend from singleton
    
    idle-manager: Don't get backend from singleton
    
    input-device: Pass pointer to backend during construction
    
    The backend is needed during construction to get the wacom database.
    
    input-mapper: Pass backend when constructing
    
    monitor: Don't get backend from singleton
    
    monitor-manager: Get backend directly from monitor manager
    
    remote: Get backend from manager class
    
    For the remote desktop and screen cast implementations, replace getting
    the backend from singletons with getting it via the manager classes.
    
    launcher: Pass backend during construction
    
    device-pool: Pass backend during construction
    
    Instead of passing the (maybe null) launcher, pass the backend, and get
    the launcher from there. That way we always have a way to some known
    context from the device pool.
    
    drm-buffer/gbm: Get backend via device pool
    
    cursor-renderer: Get backend directly from renderer
    
    input-device: Get backend getter
    
    input-settings: Add backend construct property and getter
    
    input-settings/x11: Don't get backend from singleton
    
    renderer: Get backend from renderer itself
    
    seat-impl: Add backend getter
    
    seat/native: Get backend from instance struct
    
    stage-impl: Get backend from stage impl itself
    
    x11/xkb-a11y: Don't get backend from singleton
    
    backend/x11/nested: Don't get Wayland compositor from singleton
    
    crtc: Add backend property
    
    Adding a link to the GPU isn't enough; the virtual CRTCs of virtual
    monitors doesn't have one.
    
    cursor-tracker: Don't get display from singleton
    
    remote: Don't get display from singleton
    
    seat: Don't get display from singleton
    
    backend/x11: Don't get display from singleton
    
    Part-of: <!2718>
    c390f70e