062b696df2
wayland: Add method to relate a pad ring to its group
2016-07-22 13:31:09 +02:00
5effde59f6
backends: Implement the "show osd" pad action
...
Just call back into meta_display_request_show_osd().
2016-07-22 13:31:09 +02:00
76595af8af
core: Add special case for the pad OSD in event handling
...
When it's active, we want wayland to stop handling (most notably key)
events.
2016-07-22 13:31:09 +02:00
21c8911254
core: Add meta_display_request_pad_osd() function
...
There may be external/compositor-specific reasons to trigger the
pad OSD. Expose this call so the pad OSD can be triggered looking
up the right settings, monitor, etc...
2016-07-22 13:31:09 +02:00
35554555e0
core: Add MetaDisplay:show-pad-osd signal
...
This is intended to be caught in the gnome-shell code, in order to
show the OSD with the pad action mapping.
2016-07-22 13:31:09 +02:00
e2ad8700a9
backends: Export function to query the mapped MetaMonitorInfo of a tablet
...
Or NULL if the tablet is mapped to the full desktop size.
2016-07-22 13:31:09 +02:00
323c608b0c
backends: Export call to retrieve the base GSettings for a tablet
2016-07-22 13:31:09 +02:00
0efe076a0a
backends: Implement "switch monitor" pad button action
...
This action remaps the tablet to each of the connected monitors,
or to the span of all monitors.
2016-07-22 13:31:09 +02:00
6f7f98540f
core: Add public MetaDisplay functions to get action labels for pad buttons
...
This API will be used from the gnome-shell pad OSD implementation, in order
to show the actions that currently apply to every button/ring/strip in the
tablet.
2016-07-22 13:31:09 +02:00
56632d2ef7
backends: Add function to retrieve the label for a pad button action
...
As those are specified by settings.
2016-07-22 13:31:09 +02:00
6296d30e1a
wayland: Add getters for the current feedback strings in MetaWaylandTabletPad
...
Each of the buttons/rings/strips may have one such feedback string, this API
makes is meant to make lookups consistent.
2016-07-22 13:31:09 +02:00
ed16b40c98
meta: Add MetaPadActionType enum
...
This will be used on lookups to the current action assigned to
any element in a tablet pad.
2016-07-22 13:31:09 +02:00
7bba20e536
wayland: Hook MetaWaylandTabletPad to pad button actions management
...
These are handled by the MetaInputSettings, so hook the events emitted
to it.
2016-07-22 13:31:09 +02:00
8e6244238d
backends: Add API to trigger actions related to pad buttons
...
It does nothing at the moment, but can be hooked into MetaWaylandTabletPad
now. For X11, we need to trigger these for the pad events we receive from
the passive pad button grabs.
2016-07-22 13:31:09 +02:00
ba9ec00694
wayland: Add update() phase to MetaWaylandTabletPad
...
This will be needed to update internal state of pad groups.
2016-07-22 13:31:09 +02:00
08cda496f8
wayland: Apply pressure settings before sending wp_tablet_tool.pressure
2016-07-22 13:31:09 +02:00
f9552bb9c0
backends: Add function to apply pressure sensitivity to tablet tools
...
A bezier curve is created out of the 2 control points in settings, so
the pressure is made to follow the stablished curve between 0 and 1.
2016-07-22 13:31:09 +02:00
7e267e9b01
wayland: Implement stylus button actions
...
Those just send different BTN_ keycodes.
2016-07-22 13:31:09 +02:00
fbb4c0b831
backends: Add function to retrieve the action mapped to an stylus button
...
This function will be useful for the wayland implementation, because buttons
are mapped at the time of sending those through the wire.
As x11/wayland implementations differ here, this function will be useful for
the wayland implementation, as the action is handled lat
2016-07-22 13:31:09 +02:00
d7faab76e0
backends: Perform libwacom checks before applying settings
...
Some settings make no sense on external tablets, and others make
no sense in display/system-integrated tablets. Perform those checks
so we don't end up with possibly broken configuration.
2016-07-22 13:31:09 +02:00
b7892ba1c5
backends: Disable keep-aspect and output mapping on relative devices
...
Those settings make no sense there, so should be made ineffective.
2016-07-22 13:31:09 +02:00
ab2d2af176
backends: Implement set_tablet_mapping() in native backend
...
We can now just set the mapping through clutter_input_device_set_mapping()
2016-07-22 13:31:09 +02:00
73958aeb59
backends: Add private getter for the MetaInputSettings
...
We will need to fetch information from it at certain places.
2016-07-22 13:31:09 +02:00
77b33a86b8
backends: Fetch libwacom information for tablets in MetaInputSettings
...
Given that information defines largely how such devices are to be
configured, it makes sense to have that information at hand. A getter
has been also added for the places where it could be useful, although
it will require HAVE_LIBWACOM checks in callers too.
2016-07-22 13:31:09 +02:00
f3b94d9a78
wayland: Implement wp_tablet.path
...
Now that we have clutter_input_device_get_device_node(), it is trivial
to implement.
2016-07-22 13:31:09 +02:00
f6e471fca4
backends: Add function to lookup the mapping for a given tablet
...
At least for wayland, this needs implementing within mutter. So add
a function to look this setting up.
2016-07-22 13:31:09 +02:00
1dd121002f
backends: Store mappable devices' info in the hashtable
...
Instead of as closure data. We will need to store (and query) more
per-device info, so access to this struct is necessary.
2016-07-22 13:31:09 +02:00
526fdca3fb
backends: Map tablets/pads, and wire to configuration vfuncs
...
With this, the left-handed setting works. The other configuration
vfuncs remain empty stubs, but will be correctly applied when those
are handled.
2016-07-22 13:31:09 +02:00
220ac7c8f2
backends: Add empty stubs for tablet configuration
...
Those will be called when configuring tablets.
2016-07-22 13:31:09 +02:00
5ea39e0e77
wayland: Implement wp_tablet_tool.hardware_id_wacom
...
We can now fetch this info from the ClutterInputDeviceTool, so
use it to implement this event.
2016-07-22 13:31:09 +02:00
c1d157e136
wayland: Add focus management to pads
...
All pads will share the same focus than the keyboard, so this means that:
- The focus changes in-sync for keyboard and all pad devices, and
- Newly plugged pads will be immediately focused on that same surface
2016-07-22 13:31:09 +02:00
2cd21f1b20
wayland: Add MetaWaylandTabletSeat API to correlate pads/tablets
...
All pads have one tablet, but a tablet may have multiple pads. Add
API to look things up from a MetaWaylandTablet(Pad).
2016-07-22 13:31:09 +02:00
5ccde659c1
wayland: Add pointer from MetaWaylandTabletSeat to MetaWaylandSeat
...
It will be useful to backreference to the MetaWaylandSeat from tablet
code.
2016-07-22 13:31:09 +02:00
fd62a1f6ce
wayland: Wire up pad device event management
...
The tablet manager will now lookup the correct MetaWaylandTabletSeat,
and forward the events through it.
2016-07-22 13:31:09 +02:00
b8808ca24d
wayland: Implement pad management in MetaWaylandTabletSeat
...
Now pads are looked up and notified upon, both on startup and
when plugging a tablet.
2016-07-22 13:31:09 +02:00
41ff0aaf60
wayland: Implement wp_tablet_pad
...
This object represents the collection of buttons, strips and rings
in a tablet pad. All the objects created (pad, strips and rings)
share a common focus surface and have the same lifetime.
2016-07-22 13:31:09 +02:00
c5d0791710
wayland: Implement wp_tablet_pad_group
2016-07-22 13:31:09 +02:00
828277f5e0
wayland: Implement wp_tablet_pad_strip
...
This represents pad sliders.
2016-07-22 13:31:09 +02:00
e56d6b06cf
wayland: Implement wp_tablet_pad_ring
...
This object represents pad "wheels"
2016-07-22 13:31:09 +02:00
8b769a3412
wayland: Set an specific role on surfaces passed in wp_tablet_tool.set_cursor
...
This is now separated from the generic cursor one. This means that wl_surfaces
can't be shared across wl_pointer and wp_tablet_tool. This is a change in
tablet protocol v2.
2016-07-22 13:31:09 +02:00
8d3ac8c3e9
wayland: Add MetaWaylandSurfaceRoleTabletCursor
...
This is a simple subclass of MetaWaylandSurfaceRoleCursor, mostly
so we can distinguish by GType, the methods in the parent class
still apply and are useful.
2016-07-22 13:31:09 +02:00
074b0d6b2a
wayland: Make MetaWaylandSurfaceRoleCursor derivable
2016-07-22 13:31:09 +02:00
8e8cdf1873
wayland: Make additional data in MetaWaylandSurfaceRoleCursor private
...
This will help subclassing it.
2016-07-22 13:31:09 +02:00
72ee6b8b65
wayland: Use wl_fixed_t for angle arguments in wp_tablet_tool
...
This is a change in tablet protocol v2
2016-07-22 13:31:09 +02:00
3d9bb1cc09
wayland: Use tablet protocol v2
...
This commit merely updates the code generation from the v2 protocol
description.
2016-07-22 13:31:09 +02:00
4ed59a020d
Throw an error in case of unsupported session type
...
When launching a GNOME session from a text-mode VT, the logind session
type is unlikely to be set to either "wayland" or "x11". We search for a
supported session type first with logind and then with
$XDG_SESSION_TYPE. As a fallback, we also test $DISPLAY in case of a
"tty" logind session to support starting through xinit. Ideally, such
setups should set XDG_SESSION_TYPE=x11.
If no supported session type is found, we throw an error.
https://bugzilla.gnome.org/show_bug.cgi?id=759388
2016-07-22 10:52:04 +08:00
b5e797f453
MetaSurfaceActorWayland: clean up var assigned to self
...
https://bugzilla.gnome.org/show_bug.cgi?id=769054
2016-07-22 10:44:19 +08:00
125cba7100
backend: simplify assert
...
We already checked that constraint is non-null.
https://bugzilla.gnome.org/show_bug.cgi?id=769054
2016-07-22 10:44:19 +08:00
ad7ec6b979
main: Fix compilation with wayland disabled
...
https://bugzilla.gnome.org/show_bug.cgi?id=769024
2016-07-21 20:34:28 +08:00
de1464f88f
renderer-native: Adjust to StageView memory handling changes
...
ClutterStageView now takes ownership of the :framebuffer property,
so we need to release our own reference.
2016-07-20 20:58:20 +02:00