1
0
Fork 0
mirror of https://gitlab.gnome.org/GNOME/calls.git synced 2025-01-07 04:15:32 +00:00

ringer: Take ui-active property into account

Only start ringing once the UI is deemed active, i.e. the "pre-ring" phase has
passed.

Fixes #371
This commit is contained in:
Evangelos Ribeiro Tzaras 2022-02-01 08:25:14 +01:00
parent 1d5c8952ad
commit 93cf894a8c
2 changed files with 12 additions and 10 deletions

View file

@ -340,7 +340,8 @@ has_incoming_call (CallsRinger *self)
CallsUiCallData *call = node->data;
if (is_ring_state (cui_call_get_state (CUI_CALL (call))) &&
!calls_ui_call_data_get_silenced (call))
!calls_ui_call_data_get_silenced (call) &&
calls_ui_call_data_get_ui_active (call))
return TRUE;
}
return FALSE;
@ -373,14 +374,12 @@ call_added_cb (CallsRinger *self,
self->calls = g_list_append (self->calls, call);
g_signal_connect_swapped (call,
"notify::state",
G_CALLBACK (update_ring),
self);
g_signal_connect_swapped (call,
"notify::silenced",
G_CALLBACK (update_ring),
self);
g_object_connect (call,
"swapped-signal::notify::state", G_CALLBACK (update_ring), self,
"swapped-signal::notify::silenced", G_CALLBACK (update_ring), self,
"swapped-signal::notify::ui-active", G_CALLBACK (update_ring), self,
NULL);
update_ring (self);
}

View file

@ -356,7 +356,10 @@ test_ringing_hang_up_call_ringer_cancelled (void **state)
calls_call_set_state (CALLS_CALL (data->call_one), CALLS_CALL_STATE_INCOMING);
add_call (data->manager, data->ui_call_one);
g_timeout_add (10, G_SOURCE_FUNC (t3_on_ringer_timeout), data);
/** this timeout needs to be longer than the delay for activating the UI/ringer,
* see DELAY_UI_MS in calls-ui-call-data.c
*/
g_timeout_add (20, G_SOURCE_FUNC (t3_on_ringer_timeout), data);
/* main loop will quit in t3_on_ringer_timeout() */
g_main_loop_run (data->loop);