diff --git a/gui/audio.c b/gui/audio.c
index b2e565a6..52adad9a 100644
--- a/gui/audio.c
+++ b/gui/audio.c
@@ -92,6 +92,33 @@ void __gui_audio_pause_changed(GtkComboBox *combo, gpointer data)
audio_pause_after(gtk_combo_box_get_active(combo) - 1);
}
+void __gui_audio_pause_change_text(GtkEntry *entry, gpointer data)
+{
+ const gchar *text = gtk_entry_get_text(entry);
+ int n = audio_get_pause_count();
+ unsigned int i;
+
+ if (g_str_match_string("Keep", text, true))
+ n = -1;
+ else if (g_str_match_string("This", text, true))
+ n = 0;
+ else if (g_str_match_string("Next", text, true))
+ n = 1;
+ else {
+ for (i = 0; text[i] != '\0'; i++) {
+ if (!g_ascii_isdigit(text[i]))
+ continue;
+ if (i > 0 && text[i-1] == '-')
+ i -= 1;
+ n = g_strtod(text + i, NULL);
+ break;
+ }
+ }
+
+ if (!audio_pause_after(n))
+ __gui_audio_set_pause_text(audio_get_pause_count(), audio_cur_state());
+}
+
void __gui_audio_pause_inc(GtkButton *button, gpointer data)
{
audio_pause_after(audio_get_pause_count() + 1);
diff --git a/share/ocarina/ocarina.ui b/share/ocarina/ocarina.ui
index c330c506..6e2569ec 100644
--- a/share/ocarina/ocarina.ui
+++ b/share/ocarina/ocarina.ui
@@ -737,6 +737,7 @@ audio-volume-medium
True
True
Paused
+
False
@@ -750,6 +751,7 @@ audio-volume-medium
False
False
True
+