From db3614b5856954d116d9eb4c7fdc6419f641d4cc Mon Sep 17 00:00:00 2001 From: jp9000 Date: Fri, 22 Aug 2014 15:48:19 -0700 Subject: [PATCH] Always create new object when setting a sub-object Do not use the object returned from obs_data_get_obj to set new settings. It could be the default object, which means you'd just end up modifying the default data, which won't get saved. Always create a new object when setting sub-object data. It doesn't particularly hurt anything. --- obs/properties-view.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/obs/properties-view.cpp b/obs/properties-view.cpp index a8d801c24..da2dd4081 100644 --- a/obs/properties-view.cpp +++ b/obs/properties-view.cpp @@ -623,17 +623,13 @@ bool WidgetInfo::FontChanged(const char *setting) } else { MakeQFont(font_obj, font); font = QFontDialog::getFont(&success, font, view); - } - - if (!success) { obs_data_release(font_obj); - return false; } - if (!font_obj) { - font_obj = obs_data_create(); - obs_data_set_obj(view->settings, setting, font_obj); - } + if (!success) + return false; + + font_obj = obs_data_create(); obs_data_set_string(font_obj, "face", QT_TO_UTF8(font.family())); obs_data_set_string(font_obj, "style", QT_TO_UTF8(font.styleName())); @@ -648,6 +644,7 @@ bool WidgetInfo::FontChanged(const char *setting) label->setFont(font); label->setText(QString("%1 %2").arg(font.family(), font.styleName())); + obs_data_set_obj(view->settings, setting, font_obj); obs_data_release(font_obj); return true; }