aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dillorc5
-rw-r--r--dw/widget.cc4
-rw-r--r--src/html.cc2
-rw-r--r--src/plain.cc4
-rw-r--r--src/prefs.c1
-rw-r--r--src/prefs.h1
-rw-r--r--src/prefsparser.cc7
7 files changed, 21 insertions, 3 deletions
diff --git a/dillorc b/dillorc
index ba132ba0..713a290a 100644
--- a/dillorc
+++ b/dillorc
@@ -46,6 +46,11 @@
# RENDERING SECTION
#-------------------------------------------------------------------------
+# Set the background color
+# bg_color=gray
+# bg_color=0xd6d6c0
+#bg_color=0xdcd1ba
+
# Default fonts:
#
# If FLTK2 has been configured with Xft enabled (the default), you can
diff --git a/dw/widget.cc b/dw/widget.cc
index ded963fc..ee8cb17c 100644
--- a/dw/widget.cc
+++ b/dw/widget.cc
@@ -337,9 +337,7 @@ style::Color *Widget::getBgColor ()
widget = widget->parent;
}
- MSG_WARN("No background color found!\n");
- return NULL;
-
+ return layout->getBgColor ();
}
diff --git a/src/html.cc b/src/html.cc
index c46ec4af..91b8ac99 100644
--- a/src/html.cc
+++ b/src/html.cc
@@ -1785,6 +1785,8 @@ static void Html_tag_open_body(DilloHtml *html, const char *tag, int tagsize)
*/
if (!bgColor)
bgColor = html->styleEngine->style ()->backgroundColor;
+ if (!bgColor)
+ bgColor = style::Color::create (HT2LT(html), prefs.bg_color);
HT2LT(html)->setBgColor(bgColor);
diff --git a/src/plain.cc b/src/plain.cc
index 4da618e4..b5b2dc0a 100644
--- a/src/plain.cc
+++ b/src/plain.cc
@@ -85,6 +85,8 @@ void a_Plain_free(void *data);
*/
DilloPlain::DilloPlain(BrowserWindow *p_bw)
{
+ style::Color *bgColor;
+
/* Init event receiver */
plainReceiver.plain = this;
@@ -95,6 +97,8 @@ DilloPlain::DilloPlain(BrowserWindow *p_bw)
state = ST_SeekingEol;
Layout *layout = (Layout*) bw->render_layout;
+ bgColor = style::Color::create (layout, prefs.bg_color);
+ layout->setBgColor(bgColor);
StyleEngine styleEngine (layout);
styleEngine.startElement ("body");
diff --git a/src/prefs.c b/src/prefs.c
index 5514c01a..f968710a 100644
--- a/src/prefs.c
+++ b/src/prefs.c
@@ -36,6 +36,7 @@ DilloPrefs prefs;
void a_Prefs_init(void)
{
prefs.allow_white_bg = TRUE;
+ prefs.bg_color = 0xdcd1ba;
prefs.buffered_drawing = 1;
prefs.contrast_visited_color = TRUE;
prefs.enterpress_forces_submit = FALSE;
diff --git a/src/prefs.h b/src/prefs.h
index 684262ed..4009925c 100644
--- a/src/prefs.h
+++ b/src/prefs.h
@@ -46,6 +46,7 @@ struct _DilloPrefs {
DilloUrl *start_page;
DilloUrl *home;
bool_t allow_white_bg;
+ int32_t bg_color;
bool_t contrast_visited_color;
bool_t show_tooltip;
int panel_size;
diff --git a/src/prefsparser.cc b/src/prefsparser.cc
index 78cade0b..95f98c16 100644
--- a/src/prefsparser.cc
+++ b/src/prefsparser.cc
@@ -16,11 +16,13 @@
#include "prefs.h"
#include "misc.h"
#include "msg.h"
+#include "colors.h"
#include "prefsparser.hh"
typedef enum {
PREFS_BOOL,
+ PREFS_COLOR,
PREFS_STRING,
PREFS_URL,
PREFS_INT32,
@@ -43,10 +45,12 @@ int PrefsParser::parseOption(char *name, char *value)
{
const SymNode_t *node;
uint_t i;
+ int st;
/* Symbol array, sorted alphabetically */
const SymNode_t symbols[] = {
{ "allow_white_bg", &prefs.allow_white_bg, PREFS_BOOL },
+ { "bg_color", &prefs.bg_color, PREFS_COLOR },
{ "buffered_drawing", &prefs.buffered_drawing, PREFS_INT32 },
{ "contrast_visited_color", &prefs.contrast_visited_color, PREFS_BOOL },
{ "enterpress_forces_submit", &prefs.enterpress_forces_submit,
@@ -122,6 +126,9 @@ int PrefsParser::parseOption(char *name, char *value)
*(bool_t *)node->pref = (!dStrcasecmp(value, "yes") ||
!dStrcasecmp(value, "true"));
break;
+ case PREFS_COLOR:
+ *(int32_t *)node->pref = a_Color_parse(value, *(int32_t*)node->pref,&st);
+ break;
case PREFS_STRING:
dFree(*(char **)node->pref);
*(char **)node->pref = dStrdup(value);