13
0

change idle priority of Editor::redisplay_track_views()

It appears that GDK/glib will not run idle callbacks with a lower priority than
HIGH_IDLE+10 *if* a new user input event is pending. This means that if mouse
motion events are arriving and causing resizes of selected tracks, the call
to ::redisplay_track_views() which is needed to update all the other tracks,
will not take place if a new motion event arrives. Changing the priority to
same as is used for the ::idle_resize() callback prevents new motion events
from being handled before ::redisplay_track_views() is called.
This commit is contained in:
Paul Davis 2022-04-05 18:01:35 -06:00
parent f8b0a8843c
commit f2e6798e66

View File

@ -5617,7 +5617,7 @@ void
Editor::queue_redisplay_track_views ()
{
if (!_tvl_redisplay_connection.connected ()) {
_tvl_redisplay_connection = Glib::signal_idle().connect (sigc::mem_fun (*this, &Editor::redisplay_track_views));
_tvl_redisplay_connection = Glib::signal_idle().connect (sigc::mem_fun (*this, &Editor::redisplay_track_views), Glib::PRIORITY_HIGH_IDLE+10);
}
}