diff options
Diffstat (limited to 'gtk/src')
-rw-r--r-- | gtk/src/subtitlehandler.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/gtk/src/subtitlehandler.c b/gtk/src/subtitlehandler.c index 759caae21..537440806 100644 --- a/gtk/src/subtitlehandler.c +++ b/gtk/src/subtitlehandler.c @@ -552,6 +552,7 @@ subtitle_burned_toggled_cb( GValue *subtitle_list; gint count; GValue *settings; + gint source; g_debug("burned toggled"); tp = gtk_tree_path_new_from_string (path); @@ -574,12 +575,21 @@ subtitle_burned_toggled_cb( return; settings = ghb_array_get_nth(subtitle_list, row); + source = ghb_settings_get_int(settings, "SubtitleSource"); + if (source != VOBSUB) + return; if (!active && mustBurn(ud, settings)) return; ghb_settings_set_boolean(settings, "SubtitleBurned", active); - gtk_list_store_set(GTK_LIST_STORE(tm), &ti, 2, active, -1); + + if (active) + { + ghb_settings_set_boolean(settings, "SubtitleDefaultTrack", !active); + gtk_list_store_set(GTK_LIST_STORE(tm), &ti, 3, !active, -1); + } + // Unburn the rest if (active) ghb_subtitle_exclusive_burn(ud, row); @@ -603,6 +613,7 @@ subtitle_default_toggled_cb( GValue *subtitle_list; gint count; GValue *settings; + gboolean burned; g_debug("default toggled"); tp = gtk_tree_path_new_from_string (path); @@ -625,10 +636,17 @@ subtitle_default_toggled_cb( return; settings = ghb_array_get_nth(subtitle_list, row); + if (active && mustBurn(ud, settings)) + return; ghb_settings_set_boolean(settings, "SubtitleDefaultTrack", active); - gtk_list_store_set(GTK_LIST_STORE(tm), &ti, 3, active, -1); + + if (active) + { + ghb_settings_set_boolean(settings, "SubtitleBurned", !active); + gtk_list_store_set(GTK_LIST_STORE(tm), &ti, 2, !active, -1); + } // allow only one default ghb_subtitle_exclusive_default(ud, row); ghb_live_reset(ud); |