st: Make st_button_fake_release() work with touch press
The st_button_release() call wouldn't happen because StButton does not set priv->button_mask on touch events. And if we make it called, we can't try to unset the device grab at the end of the function, as device/sequence are unset earlier on.
This commit is contained in:
parent
40db4a6795
commit
3dd3c1ac34
@ -765,7 +765,13 @@ st_button_fake_release (StButton *button)
|
|||||||
g_return_if_fail (ST_IS_BUTTON (button));
|
g_return_if_fail (ST_IS_BUTTON (button));
|
||||||
|
|
||||||
priv = st_button_get_instance_private (button);
|
priv = st_button_get_instance_private (button);
|
||||||
if (priv->pressed)
|
if (priv->device && priv->press_sequence)
|
||||||
|
{
|
||||||
|
clutter_input_device_sequence_ungrab (priv->device,
|
||||||
|
priv->press_sequence);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (priv->pressed || priv->press_sequence)
|
||||||
st_button_release (button, priv->device,
|
st_button_release (button, priv->device,
|
||||||
priv->pressed, 0, NULL);
|
priv->pressed, 0, NULL);
|
||||||
|
|
||||||
@ -775,14 +781,6 @@ st_button_fake_release (StButton *button)
|
|||||||
clutter_ungrab_pointer ();
|
clutter_ungrab_pointer ();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priv->device &&
|
|
||||||
priv->press_sequence)
|
|
||||||
{
|
|
||||||
clutter_input_device_sequence_ungrab (priv->device,
|
|
||||||
priv->press_sequence);
|
|
||||||
priv->press_sequence = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
priv->device = NULL;
|
priv->device = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user