From 8c72400a20e21501a98d7ce844a9a0299fbca4a1 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Fri, 3 Dec 2010 16:41:45 +0000 Subject: Fixed reading the correct preferences for Fl::options() (STR #2463). Fixed not to override system options with user options, if they are not explicitly set (same STR). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7944 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl.cxx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/Fl.cxx b/src/Fl.cxx index b46a278ad..6a4daaabe 100644 --- a/src/Fl.cxx +++ b/src/Fl.cxx @@ -1777,15 +1777,16 @@ bool Fl::option(Fl_Option opt) int tmp; { // first, read the system wide preferences Fl_Preferences prefs(Fl_Preferences::SYSTEM, "fltk.org", "fltk"); - Fl_Preferences opt(prefs, "options"); - prefs.get("ArrowFocus", tmp, 0); options_[OPTION_ARROW_FOCUS] = tmp; - prefs.get("NativeFilechooser", tmp, 0); options_[OPTION_NATIVE_FILECHOOSER] = tmp; + Fl_Preferences opt_prefs(prefs, "options"); + opt_prefs.get("ArrowFocus", tmp, 0); options_[OPTION_ARROW_FOCUS] = tmp; + opt_prefs.get("NativeFilechooser", tmp, 0); options_[OPTION_NATIVE_FILECHOOSER] = tmp; } { // next, check the user preferences + // override system options only, if the option is set ( >= 0 ) Fl_Preferences prefs(Fl_Preferences::USER, "fltk.org", "fltk"); - Fl_Preferences opt(prefs, "options"); - prefs.get("ArrowFocus", tmp, 0); options_[OPTION_ARROW_FOCUS] = tmp; - prefs.get("NativeFilechooser", tmp, 0); options_[OPTION_NATIVE_FILECHOOSER] = tmp; + Fl_Preferences opt_prefs(prefs, "options"); + opt_prefs.get("ArrowFocus", tmp, -1); if (tmp >= 0) options_[OPTION_ARROW_FOCUS] = tmp; + opt_prefs.get("NativeFilechooser", tmp, -1); if (tmp >= 0) options_[OPTION_NATIVE_FILECHOOSER] = tmp; } { // now, if the developer has registered this app, we could as for per-application preferences } -- cgit v1.2.3