1. 15 Mar, 2020 1 commit
  2. 26 Feb, 2020 1 commit
    • Carlos Garnacho's avatar
      backends/native: Shuffle udev client initialization in MetaSeatNative · 88bb24f6
      Carlos Garnacho authored
      This may be used indirectly before creation as we dispatch libinput events
      right after creation (to let input devices be known), so those device
      additions would trigger the touch-mode checks.
      
      Creating it in advance results in checks being correctly performed, although
      redundantly.
      
      Spotted by Bastien Nocera.
      
      Closes: #1067
      88bb24f6
  3. 15 Aug, 2019 3 commits
    • Hans de Goede's avatar
      kms: Deal with GPUs being unplugged · f3660dc6
      Hans de Goede authored
      Add meta-kms and meta-monitor-manager-kms listener for the udev
      device-removed signal and on this signal update the device state /
      re-enumerate the monitors, so that the monitors properly get updated
      to disconnected state on GPU removal.
      
      We really should also have meta-backend-native remove the GPU itself
      from our list of GPU objects. But that is more involved, see:
      #710
      
      This commit at least gets us to a point where we properly update the
      list of monitors when a GPU gets unplugged; and where we no longer
      crash the first time the user changes the monitor configuration after
      a GPU was unplugged.
      
      Specifically before this commit we would hit the first g_error () in
      meta_renderer_native_create_view () as soon as some monitor
      (re)configuration is done after a GPU was unplugged.
      
      !713
      f3660dc6
    • Hans de Goede's avatar
      udev: Add device-removed signal · 6792903c
      Hans de Goede authored
      Add a device-removed signal which gets emitted when a GPU is removed.
      
      !713
      6792903c
    • Hans de Goede's avatar
      udev: Fix wrong closure function usage for the "device-added" signal · 17c21784
      Hans de Goede authored
      The "device-added" signal should use g_cclosure_marshal_VOID__OBJECT not
      g_cclosure_marshal_VOID__VOID.
      
      Instead of fixing this manually, simply replace the closure function for
      both signals with NULL, glib will then automatically set the correct
      va_marshaller.
      
      !713
      17c21784
  4. 20 Jun, 2019 4 commits
  5. 25 Mar, 2019 2 commits
    • Carlos Garnacho's avatar
      clutter: Drop no longer necessary API · 47663c7e
      Carlos Garnacho authored
      clutter_input_device_get_physical_size was just used for device mapping
      heuristics in MetaInputMapper. It now started using the info from udev
      on for both backends, so this means this clutter API is no longer
      necessary.
      
      #514
      47663c7e
    • Carlos Garnacho's avatar
      backends: Use udev to determine absolute input devices' size · 9843e21f
      Carlos Garnacho authored
      Use the ID_INPUT_WIDTH_MM/ID_INPUT_HEIGHT_MM udev properties to figure out
      absolute input devices' physical size. This works across both backends, and
      requires less moving pieces to have it get the right results.
      
      Concretely, fixes size detection on X11/libinput, which makes touchscreen
      mapping go wrong.
      
      #514
      9843e21f
  6. 22 Jan, 2019 1 commit
  7. 29 Nov, 2018 1 commit
    • Jonas Ådahl's avatar
      backend/x11/nested: Always claim the lid is open · c8db8bbe
      Jonas Ådahl authored
      The nested backend used the value from udev, meaning that one couldn't
      configure the fake monitor if the laptop panel of the host was closed.
      Avoid this annoyance by always having the nested backend claiming the
      lid is open.
      c8db8bbe
  8. 06 Nov, 2018 2 commits
    • Georges Basile Stavracas Neto's avatar
      gudev: Require 232 · d3dc7d6f
      Georges Basile Stavracas Neto authored
      gudev and libudev might have different versions, and
      since 361bf847 we require gudev >= 232 to be able to
      use g_autoptr with gudev types.
      
      Since the previous commit, however, the meson build
      was using the same version for libudev and gudev.
      
      Fix that by requiring different versions for gudev
      (>= 232) and libudev (>= 228).
      d3dc7d6f
    • Georges Basile Stavracas Neto's avatar
      build: Make minimum udev version as 228 · b607d35a
      Georges Basile Stavracas Neto authored
      Continuous' latest udev version is 228, and that is
      not going to change too soon. Since we do not depend
      on udev 232 specific features or bugfixes, just lower
      the minimum version and make Continouos happy.
      b607d35a
  9. 19 Sep, 2018 1 commit
    • Tony Novak's avatar
      input-settings: detect trackball using udev ID_INPUT_TRACKBALL · 8685de96
      Tony Novak authored
      Previously, trackballs were detected based on the presence of the
      substring "trackball" in the device name. This had the downside of
      missing devices, such as the Kensington Expert Mouse, which don't have
      "trackball" in their names.
      
      Rather than depending on the device name, use the ID_INPUT_TRACKBALL
      property from udev to determine whether or not to treat a device as a
      trackball.
      
      This adds a new function, `is_trackball_device`, to MetaInputEvents, and
      eliminates the `meta_input_device_is_trackball` function.
      
      Fixes: #258
      8685de96
  10. 01 Sep, 2017 1 commit
  11. 19 Oct, 2016 2 commits
  12. 28 Jul, 2016 1 commit
    • Jonas Ådahl's avatar
      settings: Support mouse and trackball accel profile · 23c4ac6c
      Jonas Ådahl authored
      Support changing the mouse and trackball acceleration profile. This
      makes it possible to for example disable pointer acceleration by
      choosing the 'flat' profile.
      
      This adds an optional dependency on gudev. Gudev is used by the X11
      backend to detect whether a device is a mouse or not. Without gudev
      support, the accel profile settings has have effect for mouse devices.
      
      Trackball still uses the "strstr" approach, since udev doesn't support
      tagging devices as trackball devices yet.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=769179
      23c4ac6c
  13. 02 Mar, 2015 1 commit
  14. 14 Oct, 2014 1 commit
  15. 12 Apr, 2011 1 commit
  16. 30 Nov, 2010 4 commits
    • Damien Lespiau's avatar
      evdev: Close the device gracefully in case of a read() error · 7cd6ba28
      Damien Lespiau authored
      Even with udev, the read fails before udev has a chance to signal the
      change. Hence (and to handle errors gracefully anyway), let's remove the
      device from the device manager in case of a read() error.
      7cd6ba28
    • Damien Lespiau's avatar
      evdev: Merge clutter-event-evdev.[ch] into the device manager · afd279dd
      Damien Lespiau authored
      The device manager now fully owns the GSources corresponding to the
      devices it manages. This will allow not only to remove the source when
      udev signals a device removal but also handle read() errors gracefully
      by removing the faulty device from the manager.
      afd279dd
    • Damien Lespiau's avatar
      evdev: Support hotplug (addition/removal) of evdev devices · afee3b00
      Damien Lespiau authored
      Just connect to the GUdevClient "uevent" signal and deals with
      "add"/"remove" commands. This drives the installation/removal of
      GSource to listen to the device.
      afee3b00
    • Damien Lespiau's avatar
      evdev: First stab at an evdev backend · c6493885
      Damien Lespiau authored
      This backend is a event backend that can be enabled for EGL (for now).
      It uses udev (gudev) to query input devices on a linux system, listens to
      keyboard events from input devices and xkbcommon to translate raw key
      codes into key keysyms.
      
      This commit only supports key events, more to follow.
      c6493885