diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/prefs.c | 6 | ||||
-rw-r--r-- | src/prefs.h | 1 | ||||
-rw-r--r-- | src/uicmd.cc | 7 |
3 files changed, 13 insertions, 1 deletions
diff --git a/src/prefs.c b/src/prefs.c index 3c87f730..67b99617 100644 --- a/src/prefs.c +++ b/src/prefs.c @@ -76,6 +76,7 @@ typedef enum { DRC_TOKEN_LIMIT_TEXT_WIDTH, DRC_TOKEN_LINK_COLOR, DRC_TOKEN_LOAD_IMAGES, + DRC_TOKEN_BUFFERED_DRAWING, DRC_TOKEN_MIDDLE_CLICK_OPENS_NEW_TAB, DRC_TOKEN_NOPROXY, DRC_TOKEN_PANEL_SIZE, @@ -123,6 +124,7 @@ struct SymNode_ { static const SymNode_t symbols[] = { { "allow_white_bg", DRC_TOKEN_ALLOW_WHITE_BG }, { "bg_color", DRC_TOKEN_BG_COLOR }, + { "buffered_drawing", DRC_TOKEN_BUFFERED_DRAWING }, { "contrast_visited_color", DRC_TOKEN_CONTRAST_VISITED_COLOR }, { "enterpress_forces_submit", DRC_TOKEN_ENTERPRESS_FORCES_SUBMIT }, { "focus_new_tab", DRC_TOKEN_FOCUS_NEW_TAB }, @@ -321,6 +323,9 @@ static int Prefs_parse_pair(char *name, char *value) case DRC_TOKEN_LOAD_IMAGES: prefs.load_images = (strcmp(value, "YES") == 0); break; + case DRC_TOKEN_BUFFERED_DRAWING: + prefs.buffered_drawing = atoi(value); + break; case DRC_TOKEN_FW_FONT: dFree(prefs.fw_fontname); prefs.fw_fontname = dStrdup(value); @@ -444,6 +449,7 @@ void a_Prefs_init(void) prefs.show_progress_box=TRUE; prefs.fullwindow_start=FALSE; prefs.load_images=TRUE; + prefs.buffered_drawing=1; prefs.vw_fontname = dStrdup(D_VW_FONTNAME); prefs.fw_fontname = dStrdup(D_FW_FONTNAME); prefs.generate_submit = FALSE; diff --git a/src/prefs.h b/src/prefs.h index 46096aff..275aec48 100644 --- a/src/prefs.h +++ b/src/prefs.h @@ -52,6 +52,7 @@ struct _DilloPrefs { bool_t show_progress_box; bool_t fullwindow_start; bool_t load_images; + int32_t buffered_drawing; char *vw_fontname; char *fw_fontname; bool_t generate_submit; diff --git a/src/uicmd.cc b/src/uicmd.cc index 15907f47..d6a52f0f 100644 --- a/src/uicmd.cc +++ b/src/uicmd.cc @@ -168,7 +168,8 @@ BrowserWindow *a_UIcmd_browser_window_new(int ww, int wh, const void *vbw) Window *win = new Window(ww, wh); win->shortcut(0); // Ignore Escape - win->clear_double_buffer(); + if (prefs.buffered_drawing != 2) + win->clear_double_buffer(); win->set_flag(RAW_LABEL); CustTabGroup *DilloTabs = new CustTabGroup(0, 0, ww, wh); DilloTabs->clear_tab_to_focus(); @@ -198,6 +199,10 @@ BrowserWindow *a_UIcmd_browser_window_new(int ww, int wh, const void *vbw) Layout *layout = new Layout (platform); FltkViewport *viewport = new FltkViewport (0, 0, 1, 1); + if (prefs.buffered_drawing == 1) + viewport->setBufferedDrawing (true); + else + viewport->setBufferedDrawing (false); layout->attachView (viewport); new_ui->set_render_layout(*viewport); |