forked from AuroraMiddleware/gtk
GtkPadController: Make ring/strip actions be activated with the axis value
This way these axes may be used in detail by the implementors of pad GActions. https://bugzilla.gnome.org/show_bug.cgi?id=770026
This commit is contained in:
parent
b24a865d9b
commit
e9771d642f
@ -61,6 +61,10 @@
|
|||||||
* …
|
* …
|
||||||
* pad_controller = gtk_pad_controller_new (window, action_group, NULL);
|
* pad_controller = gtk_pad_controller_new (window, action_group, NULL);
|
||||||
* ]|
|
* ]|
|
||||||
|
*
|
||||||
|
* The actions belonging to rings/strips will be activated with a parameter
|
||||||
|
* of type %G_VARIANT_TYPE_DOUBLE bearing the value of the given axis, it
|
||||||
|
* is required that those are made stateful and accepting this #GVariantType.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
@ -154,6 +158,16 @@ gtk_pad_controller_activate_action (GtkPadController *controller,
|
|||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_pad_controller_activate_action_with_axis (GtkPadController *controller,
|
||||||
|
const GtkPadActionEntry *entry,
|
||||||
|
gdouble value)
|
||||||
|
{
|
||||||
|
g_action_group_activate_action (controller->action_group,
|
||||||
|
entry->action_name,
|
||||||
|
g_variant_new_double (value));
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gtk_pad_controller_handle_mode_switch (GtkPadController *controller,
|
gtk_pad_controller_handle_mode_switch (GtkPadController *controller,
|
||||||
GdkDevice *pad,
|
GdkDevice *pad,
|
||||||
@ -253,7 +267,16 @@ gtk_pad_controller_handle_event (GtkEventController *controller,
|
|||||||
if (!entry)
|
if (!entry)
|
||||||
return GDK_EVENT_PROPAGATE;
|
return GDK_EVENT_PROPAGATE;
|
||||||
|
|
||||||
gtk_pad_controller_activate_action (pad_controller, entry);
|
if (event->type == GDK_PAD_RING ||
|
||||||
|
event->type == GDK_PAD_STRIP)
|
||||||
|
{
|
||||||
|
gtk_pad_controller_activate_action_with_axis (pad_controller, entry,
|
||||||
|
event->pad_axis.value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gtk_pad_controller_activate_action (pad_controller, entry);
|
||||||
|
}
|
||||||
|
|
||||||
return GDK_EVENT_STOP;
|
return GDK_EVENT_STOP;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user