summaryrefslogtreecommitdiff
path: root/atari/settings.c
diff options
context:
space:
mode:
authorOle Loots <ole@monochrom.net>2013-11-23 17:52:33 +0100
committerOle Loots <ole@monochrom.net>2013-11-23 17:52:33 +0100
commit418a6f7edd678461c106e0e5b01183400c0746a1 (patch)
tree328124192a4c089699af7cb8ed3ddaf1f237117e /atari/settings.c
parent65ebba7b5152af154f0b8806a5ae4cf2fb68d2f8 (diff)
downloadnetsurf-418a6f7edd678461c106e0e5b01183400c0746a1.tar.gz
netsurf-418a6f7edd678461c106e0e5b01183400c0746a1.tar.bz2
Added GUI pol timeout selection popup.
The user must decide for himself. Default to 0, which eats GUI resources but speeds-up rendering.
Diffstat (limited to 'atari/settings.c')
-rw-r--r--atari/settings.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/atari/settings.c b/atari/settings.c
index 94445c108..cf6aa73ae 100644
--- a/atari/settings.c
+++ b/atari/settings.c
@@ -59,6 +59,11 @@ static const char *font_engines[] = {
#endif
};
+/* Available GUI timeouts for the timeout selection popup: */
+static const char *gui_timeouts[] = {
+ "0", "5", "10"
+};
+
#define OBJ_SELECTED(idx) ((bool)((dlgtree[idx].ob_state & OS_SELECTED)!=0))
#define OBJ_CHECK(idx) (dlgtree[idx].ob_state |= (OS_SELECTED));
@@ -220,6 +225,9 @@ static void display_settings(void)
nsoption_charp(accept_language) ? nsoption_charp(accept_language) : (char*)"en",
INPUT_LOCALE_MAX_LEN );
+ sprintf(spare, "%d", nsoption_int(atari_gui_poll_timeout));
+ set_text(SETTINGS_BT_GUI_TOUT, spare, 2);
+
tmp_option_expire_url = nsoption_int(expire_url);
snprintf( spare, 255, "%02d", nsoption_int(expire_url) );
set_text( SETTINGS_EDIT_HISTORY_AGE, spare, 2 );
@@ -446,6 +454,28 @@ static void form_event(int index, int external)
OBJ_REDRAW(SETTINGS_BT_SEL_LOCALE);
break;
+ case SETTINGS_BT_GUI_TOUT:
+ objc_offset(dlgtree, SETTINGS_BT_GUI_TOUT, &x, &y);
+ tmp = gemtk_obj_get_text(dlgtree, SETTINGS_BT_GUI_TOUT);
+ pop_menu.mn_tree = gemtk_obj_create_popup_tree(gui_timeouts,
+ NOF_ELEMENTS(gui_timeouts), tmp, false, -1,
+ 100);
+
+ pop_menu.mn_item = 0;
+ pop_menu.mn_menu = 0;
+ pop_menu.mn_scroll = SCROLL_NO;
+ pop_menu.mn_keystate = 0;
+
+ menu_popup(&pop_menu, x, y, &me_data);
+ choice = me_data.mn_item;
+ if( choice > 0 && choice <= NOF_ELEMENTS(gui_timeouts) ) {
+ get_string(pop_menu.mn_tree, choice, spare);
+ set_text(SETTINGS_BT_GUI_TOUT, (char*)&spare[2], 5);
+ }
+
+ OBJ_REDRAW(SETTINGS_BT_GUI_TOUT);
+ break;
+
/*
case SETTINGS_INPUT_TOOLBAR_BGCOLOR:
objc_offset( FORM(win), SETTINGS_INPUT_TOOLBAR_BGCOLOR, &x, &y );
@@ -701,6 +731,8 @@ static void apply_settings(void)
gemtk_obj_get_text(dlgtree, SETTINGS_BT_SEL_LOCALE));
nsoption_set_int(expire_url,
atoi(gemtk_obj_get_text(dlgtree, SETTINGS_EDIT_HISTORY_AGE)));
+ nsoption_set_int(atari_gui_poll_timeout,
+ atoi(gemtk_obj_get_text(dlgtree, SETTINGS_BT_GUI_TOUT)));
nsoption_set_bool(send_referer,
OBJ_SELECTED(SETTINGS_CB_SEND_HTTP_REFERRER));
nsoption_set_bool(do_not_track,