Skip to content

Commit 1a30d36

Browse files
gtkui: fix streamer_lock within conf_lock, which may cause deadlock when preferences open while streamer is locked (fixes #3311)
1 parent 13658dc commit 1a30d36

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

plugins/gtkui/prefwin/prefwinmisc.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,12 @@
2828
#include "prefwin.h"
2929
#include "prefwinmisc.h"
3030

31+
static int _initializing_prefwin = 0;
32+
3133
void
3234
prefwin_init_gui_misc_tab (GtkWidget *_prefwin) {
35+
_initializing_prefwin = 1;
36+
3337
GtkWidget *w = _prefwin;
3438
prefwin_set_toggle_button("minimize_on_startup", deadbeef->conf_get_int ("gtkui.start_hidden", 0));
3539

@@ -100,6 +104,8 @@ prefwin_init_gui_misc_tab (GtkWidget *_prefwin) {
100104
prefwin_set_combobox (combobox, i);
101105
}
102106
}
107+
108+
_initializing_prefwin = 0;
103109
}
104110

105111
void
@@ -173,6 +179,9 @@ void
173179
on_titlebar_format_playing_changed (GtkEditable *editable,
174180
gpointer user_data)
175181
{
182+
if (_initializing_prefwin) {
183+
return;
184+
}
176185
const char *text = gtk_entry_get_text (GTK_ENTRY (editable));
177186
if (*text == 0) {
178187
text = NULL;
@@ -187,6 +196,9 @@ void
187196
on_titlebar_format_stopped_changed (GtkEditable *editable,
188197
gpointer user_data)
189198
{
199+
if (_initializing_prefwin) {
200+
return;
201+
}
190202
const char *text = gtk_entry_get_text (GTK_ENTRY (editable));
191203
if (*text == 0) {
192204
text = NULL;

0 commit comments

Comments
 (0)