[PATCH weston 00/19] Basic tablet support in Weston

Stephen Chandler Paul thatslyude at gmail.com
Wed Aug 6 16:07:50 PDT 2014


Hi! As some of you have been aware, I have been working on implementing tablet
ssupport in libinput, the wayland protocol and weston. This patchset adds basic
tablet support to weston, along with support in the shell and the window
manager. It should be noted that these patches rely on one of the earlier
patches to libinput that I posted on the mailing list: "tablet: Add
libinput_tablet_has_axis()", along with the tablet-support branch in the git repository for libinput.

As of right now, the following things are still missing/haven't been finished
yet:
* Tablet objects don't ever send a removed event, right now it's up to the
  clients to free the resources for each tool object.
* Tablet tool objects should be separate for each tablet connected that doesn't
  report serial numbers. Right now tablet objects are shared by all tablets
  connected to the system unconditionally.
* The tablet cursor disappears occasionally when moving a window and causing
  the mouse pointer to change images, but reappears the next time a client sets
  a cursor image.
* weston-flower can crash the shell for some reason. It seems that if a tablet
  is turned on, and the first surface the tool comes into focus on belongs to a
  weston-flower instance, the desktop-shell runs into an error and exits. I
  haven't noticed this with anything other then weston-flower though.
* Held down buttons are released when the tool changes focus from one surface
  to another, instead of being held down until they're released.
* Some of the declarations for structs in my code might need to be moved
  around, I'm not sure what the expected guidelines for this in weston's code
  are though.
* A surface argument needs to be added to the proximity_out event, so we can
  tell if the tablet tool is leaving proximity to switch focus to another
  surface, or if it's just exiting proximity.

Review/critique would be appreciated, thank you! ^^

Cheers,
	Lyude

Stephen Chandler Paul (19):
  tablet: Add XML for wl_tablet and wl_tablet_manager
  tablet: Add initial tablet support to weston
  client: Add support for handling motion events in toytoolkit
  client: Add support for handling proximity_in/out events in
    libtoytoolkit
  tablet: Add support for setting/changing the tablet cursor in weston
  client: Add tablet cursor support into libtoytoolkit
  tablet: Add support for tablet tool objects
  client: Add support for tool objects in libtoytoolkit
  client: Add support for tablet cursor motion to window frames in
    libtoytoolkit
  tablet: Add support for button presses to weston
  client: Add support for handling button presses to libtoytoolkit
  tablet: Add support for up/down events to weston
  client: Add up/down event support into libtoytoolkit
  tablet: Add support for moving windows around using the stylus
  tablet: Add support for reporting pressure, distance, and tilt in
    weston
  client: Add support for pressure, distance, and tilt into
    libtoytoolkit
  tablet: Add tablet support to the top panel of the desktop shell
  tablet: Add binding to activate surfaces using the tablet tool
  tablet: Add demo application for tablets

 .gitignore                  |   1 +
 Makefile.am                 |  23 +-
 clients/desktop-shell.c     |  55 ++++
 clients/tablet.c            | 341 ++++++++++++++++++++
 clients/window.c            | 607 ++++++++++++++++++++++++++++++++++++
 clients/window.h            | 102 ++++++
 desktop-shell/shell.c       | 282 +++++++++++++++++
 protocol/wayland-tablet.xml | 310 +++++++++++++++++++
 shared/cairo-util.h         |   4 +
 shared/frame.c              |  38 +++
 src/bindings.c              |  37 +++
 src/compositor.c            |   1 +
 src/compositor.h            | 171 ++++++++++
 src/input.c                 | 736 ++++++++++++++++++++++++++++++++++++++++++++
 src/libinput-device.c       | 317 +++++++++++++++++++
 src/libinput-device.h       |   4 +-
 16 files changed, 3024 insertions(+), 5 deletions(-)
 create mode 100644 clients/tablet.c
 create mode 100644 protocol/wayland-tablet.xml

-- 
1.8.5.5



More information about the wayland-devel mailing list