1. 09 Dec, 2015 1 commit
  2. 18 Nov, 2015 1 commit
  3. 09 Jan, 2015 1 commit
  4. 14 Sep, 2014 1 commit
  5. 11 Jul, 2013 2 commits
  6. 03 Sep, 2012 1 commit
    • Lionel Landwerlin's avatar
      input-device: don't reset a device's stage until all touch points are gone · d6a0f7eb
      Lionel Landwerlin authored
      803b3baf introduced a new issue for
      multi touch events.
      In the case where 2 touch events for 2 different touch points are
      processed in the same iteration, a call to
      _clutter_stage_remove_device() when processing the first event will
      remove the stage setting of the InputDevice. That means Clutter will
      skip the second event, because it can't find a stage to which relate
      the event, so no related actor and so no emission.
      To fix this we move the _clutter_stage_(add/remove)_device() calls
      into the input device. This way the input device can find out exactly
      when to call these functions (i.e. when no touch point were previously
      active or when no touch point remain active).
  7. 17 Jul, 2012 1 commit
  8. 22 Jun, 2012 1 commit
  9. 19 Mar, 2012 1 commit
  10. 01 Mar, 2012 1 commit
    • Neil Roberts's avatar
      Add an input device function to convert keycodes to evdev codes · 13e3f9e5
      Neil Roberts authored
      This adds a virtual function to ClutterInputDevice to translate a
      keycode from the hardware_keycode member of ClutterKeyEvent to an
      evdev keycode. The function can fail so that input backends that don't
      have a sensible way to translate to evdev keycodes can return FALSE.
      There are implementations for evdev, wayland and X. The X
      implementation assumes that the X server is using an evdev driver in
      which case the hardware keycodes are the evdev codes plus 8.
      Reviewed-by: 's avatarEmmanuele Bassi <ebassi@linux.intel.com>
  11. 08 Dec, 2011 1 commit
  12. 11 Oct, 2011 1 commit
    • Emmanuele Bassi's avatar
      Clean up grab implementation · b6dd3069
      Emmanuele Bassi authored
      The grab API is a relic of Clutter 0.6, and hasn't been through proper
      vetting in a *long* time — mostly due to the fact that we don't really
      like grabs, and point to the ::captured-event as a way to implement
      "soft grabs" in toolkits and applications.
      The implementation of full and device grabs uses weak references on
      actors instead of using the ::destroy signal, which is meant exactly for
      the case of releasing pointers to actors when they are disposed.
      The API naming scheme is also fairly broken, especially for
      device-related grabs.
      Finally, keyboard device grabs are just not implemented.
      We can, in one go, clean up this mess and deprecate a bunch of badly
      named API by introducing generic device grab/ungrab methods on
      ClutterInputDevice, and re-implement the current API on top of them.
  13. 28 Jan, 2011 1 commit
    • Emmanuele Bassi's avatar
      Clean up crossing event synthesis code · 82d1e5a6
      Emmanuele Bassi authored
      Clutter should just require that the windowing system used by a backend
      adds a device to the stage when the device enters, and removes it from
      the stage when the device leaves; with this information, we can
      synthesize every crossing event and update the device state without
      other intervention from the backend-specific code.
      The generation of additional crossing events for actors that are
      covering the stage at the coordinates of the crossing event should be
      delegated to the event processing code.
      The x11 and win32 backends need to be modified to relay the enter and
      leave events from the windowing system.
  14. 21 Jan, 2011 7 commits
    • Emmanuele Bassi's avatar
      device/x11: Store min/max keycode in the XI device class · 6da51f6e
      Emmanuele Bassi authored
      The generic device class shouldn't have the minimum and maximum keycode,
      since no other input backend provides those.
    • Emmanuele Bassi's avatar
      device: Allow enabling/disabling non-master devices · 73cf6bd5
      Emmanuele Bassi authored
      Slave and floating devices should always be disabled, and not deliver
      events to the scene. It is up to the user to enable non-master devices
      and handle events coming from them.
      ClutterInputDevice gets a new :enabled property, defaulting to FALSE;
      when a device manager creates a new device it has to set it to TRUE if
      the :device-mode property is set to CLUTTER_INPUT_MODE_MASTER.
      The main event queue entry point, _clutter_event_push(), will
      automatically discard events coming from disabled devices.
    • Emmanuele Bassi's avatar
      device: Use a double for translate_axis() argument · 50e52f55
      Emmanuele Bassi authored
      While XI1 has axis data in events exposed as integers, XI2 uses double
      precision floating point values.
    • Emmanuele Bassi's avatar
      device: Add keys and axes accessors · 431200f4
      Emmanuele Bassi authored
      Allow retrieving the number of keys and axes, since we provide the API
      to iterate over them both.
    • Emmanuele Bassi's avatar
      input-device: Move select_stage_events() to a vfunc · 342cdd25
      Emmanuele Bassi authored
      Don't use a signal, use a virtual function.
    • Emmanuele Bassi's avatar
      input-device: Make ClutterInputDeviceClass private · 2777c52f
      Emmanuele Bassi authored
      We keep the symbol in the public header, but the definition is now
      private. You could not sub-class InputDevice anyway, without the
      instance structure, and the lack of padding in the class made actually
      implementing devices in backends really hard.
    • Emmanuele Bassi's avatar
      event/x11: Rework the way we translate X11 events · 1b1e77b4
      Emmanuele Bassi authored
      This is a lump commit that is fairly difficult to break down without
      either breaking bisecting or breaking the test cases.
      The new design for handling X11 event translation works this way:
        - ClutterBackend::translate_event() has been added as the central
          point used by a ClutterBackend implementation to translate a
          native event into a ClutterEvent;
        - ClutterEventTranslator is a private interface that should be
          implemented by backend-specific objects, like stage
          implementations and ClutterDeviceManager sub-classes, and
          allows dealing with class-specific event translation;
        - ClutterStageX11 implements EventTranslator, and deals with the
          stage-relative X11 events coming from the X11 event source;
        - ClutterStageGLX overrides EventTranslator, in order to
          deal with the INTEL_GLX_swap_event extension, and it chains up
          to the X11 default implementation;
        - ClutterDeviceManagerX11 has been split into two separate classes,
          one that deals with core and (optionally) XI1 events, and the
          other that deals with XI2 events; the selection is done at run-time,
          since the core+XI1 and XI2 mechanisms are mutually exclusive.
      All the other backends we officially support still use their own
      custom event source and translation function, but the end goal is to
      migrate them to the translate_event() virtual function, and have the
      event source be a shared part of Clutter core.
  15. 30 Nov, 2010 1 commit
    • 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.
  16. 21 Oct, 2010 2 commits