diff options
Diffstat (limited to 'frontends/gtk/preferences.c')
-rw-r--r-- | frontends/gtk/preferences.c | 67 |
1 files changed, 42 insertions, 25 deletions
diff --git a/frontends/gtk/preferences.c b/frontends/gtk/preferences.c index 3aaaa9026..26d32ee20 100644 --- a/frontends/gtk/preferences.c +++ b/frontends/gtk/preferences.c @@ -412,12 +412,6 @@ TOGGLEBUTTON_SIGNALS(checkHideAdverts, block_advertisements) /* enable javascript */ TOGGLEBUTTON_SIGNALS(checkEnableJavascript, enable_javascript) -/* disable plugins */ -TOGGLEBUTTON_SIGNALS(checkDisablePlugins, disable_plugins) - -/* high quality image scaling */ -TOGGLEBUTTON_SIGNALS(checkResampleImages, render_resample) - /* load and display of images */ G_MODULE_EXPORT void nsgtk_preferences_comboboxLoadImages_changed(GtkComboBox *combo, @@ -481,9 +475,6 @@ nsgtk_preferences_comboboxLoadImages_realize(GtkWidget *widget, /* enable animation */ TOGGLEBUTTON_SIGNALS(checkEnableAnimations, animate_images) -/* frame time */ -SPINBUTTON_SIGNALS(spinAnimationSpeed, minimum_gif_delay, 100.0) - /* Fonts */ /* default font */ @@ -839,15 +830,33 @@ TOGGLEBUTTON_SIGNALS(checkUrlSearch, search_url_bar) G_MODULE_EXPORT void nsgtk_preferences_comboSearch_changed(GtkComboBox *widget, struct ppref *priv) { - int provider; + gboolean set; + GtkTreeIter iter; + GtkTreeModel* model; + gchar* provider; + const char* defprovider; - provider = gtk_combo_box_get_active(widget); + set = gtk_combo_box_get_active_iter(GTK_COMBO_BOX(widget), &iter); + if (!set) { + return; + } - /* set the option */ - nsoption_set_int(search_provider, provider); + model = gtk_combo_box_get_model(GTK_COMBO_BOX(widget)); + gtk_tree_model_get(model, &iter, 0, &provider, -1); /* set search provider */ search_web_select_provider(provider); + + /* set to default option if the default provider is selected */ + if ((search_web_iterate_providers(-1, &defprovider) != -1) && + (strcmp(provider, defprovider) == 0)) { + free(provider); + /* use default option */ + provider = NULL; + } + + /* set the option which takes owership of the provider allocation */ + nsoption_set_charp(search_web_provider, provider); } G_MODULE_EXPORT void @@ -855,20 +864,29 @@ nsgtk_preferences_comboSearch_realize(GtkWidget *widget, struct ppref *priv) { int iter; const char *name; - int provider = nsoption_int(search_provider); - - if (priv->search_providers != NULL) { - gtk_list_store_clear(priv->search_providers); - for (iter = search_web_iterate_providers(0, &name); - iter != -1; - iter = search_web_iterate_providers(iter, &name)) { - gtk_list_store_insert_with_values(priv->search_providers, - NULL, -1, - 0, name, -1); + const char *provider; + int provider_idx = 0; + + if (priv->search_providers == NULL) { + return; + } + gtk_list_store_clear(priv->search_providers); + + provider = nsoption_charp(search_web_provider); + + iter = search_web_iterate_providers(-1, &name); + while (iter != -1) { + gtk_list_store_insert_with_values(priv->search_providers, + NULL, -1, + 0, name, -1); + if ((provider != NULL) && (strcmp(name, provider) == 0)) { + provider_idx = iter; } + iter = search_web_iterate_providers(iter, &name); } - gtk_combo_box_set_active(GTK_COMBO_BOX(widget), provider); + + gtk_combo_box_set_active(GTK_COMBO_BOX(widget), provider_idx); } @@ -1012,4 +1030,3 @@ GtkWidget* nsgtk_preferences(struct browser_window *bw, GtkWindow *parent) return GTK_WIDGET(priv->dialog); } - |