st-button: Don't rely on hover to accept clicks
Since commit 4f1f226828
we only consider buttons clicked when the
release event had a corresponding press event. However as we use
the hover state to check whether a release event actually occurred
on the button, we dismiss any clicks in cases where we missed the
enter event - most likely due to some other actor holding a grab.
Instead, check whether the button contains the event's source, which
should be less error-prone.
https://bugzilla.gnome.org/show_bug.cgi?id=748919
This commit is contained in:
parent
29811a85dc
commit
464d5d8a13
@ -211,7 +211,7 @@ st_button_button_release (ClutterActor *actor,
|
|||||||
{
|
{
|
||||||
gboolean is_click;
|
gboolean is_click;
|
||||||
|
|
||||||
is_click = button->priv->grabbed && st_widget_get_hover (ST_WIDGET (button));
|
is_click = button->priv->grabbed && clutter_actor_contains (actor, event->source);
|
||||||
st_button_release (button, device, mask, is_click ? event->button : 0, NULL);
|
st_button_release (button, device, mask, is_click ? event->button : 0, NULL);
|
||||||
|
|
||||||
button->priv->grabbed &= ~mask;
|
button->priv->grabbed &= ~mask;
|
||||||
|
Loading…
Reference in New Issue
Block a user