summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Resource.cc7
-rw-r--r--src/Resource.h1
-rw-r--r--src/openbox.cc2
3 files changed, 9 insertions, 1 deletions
diff --git a/src/Resource.cc b/src/Resource.cc
index cff9bd38..2a678f89 100644
--- a/src/Resource.cc
+++ b/src/Resource.cc
@@ -85,6 +85,13 @@ bool Resource::load() {
return true;
}
+void Resource::create() {
+ if (m_database != NULL)
+ XrmDestroyDatabase(m_database);
+ m_modified = false;
+ ASSERT(NULL != (m_database = XrmGetStringDatabase("")));
+}
+
void Resource::setValue(const std::string &rname, bool value) {
ASSERT(m_database != NULL);
diff --git a/src/Resource.h b/src/Resource.h
index 726755f3..7d792494 100644
--- a/src/Resource.h
+++ b/src/Resource.h
@@ -50,6 +50,7 @@ public:
void save();
bool load();
+ void create();
void setValue(const std::string &rname, bool value);
void setValue(const std::string &rname, int value);
diff --git a/src/openbox.cc b/src/openbox.cc
index dff68102..86baec6e 100644
--- a/src/openbox.cc
+++ b/src/openbox.cc
@@ -1001,7 +1001,7 @@ void Openbox::save() {
void Openbox::load() {
if (!config.load())
- return;
+ config.create();
std::string s;
long l;