Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
M
mutter
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 742
    • Issues 742
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 98
    • Merge Requests 98
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • GNOME
  • mutter
  • Merge Requests
  • !1403

Merged
Opened Aug 12, 2020 by Carlos Garnacho@carlosgMaintainer

Handle input on a thread

  • Overview 301
  • Commits 85
  • Pipelines 72
  • Changes 100

From the main commit:

backends/native: Add input thread inside MetaSeatImpl
    
This (now) doesn't change anything in regards to the API that the UI
thread should access from the MetaSeatImpl. The MetaInputDeviceNative,
MetaInputSettings and MetaKeymap objects are now considered owned by
the input thread, as well as all of libinput objects.
    
The MetaEventSource now dispatches events in a GMainContext that is
the thread default to this thread, and all UI-thread-accessible API
(seat and virtual input device API) will be handled in a serialized
manner by that same input thread.
    
The MetaSeatImpl itself is still considered to be owned by the caller
thread, and all the signals that this object emits will be emitted in
the GMainContext that is default at the time of calling
meta_seat_impl_new().
    
The MetaInputSettings configuration changes will likewise be handled
in the input thread, close to libinput devices.

Before that, an insane number of refactors to accommodate this. There's scares, there's joy, there's tears, MetaSeatImpl and MetaInputSettings argue, but get together again around the third act. they end up riding towards a gorgeous sunset. Will they live happily ever after?

Edited Nov 04, 2020 by Carlos Garnacho
Assignee
Assign to
Reviewer
Request review from
GNOME 40
Milestone
GNOME 40
Assign milestone
Time tracking
Reference: GNOME/mutter!1403
Source branch: wip/carlosg/input-thread