diff --git a/src/slic3r/GUI/WebViewDialog.hpp b/src/slic3r/GUI/WebViewDialog.hpp index 313413c48b..cc9a76e6f5 100644 --- a/src/slic3r/GUI/WebViewDialog.hpp +++ b/src/slic3r/GUI/WebViewDialog.hpp @@ -224,8 +224,21 @@ public: void send_api_key(); void send_credentials(); - void set_api_key(const std::string& key) { m_api_key = key; m_usr.clear(); m_psk.clear(); } - void set_credentials(const std::string& usr, const std::string& psk) { m_usr = usr; m_psk = psk; m_api_key.clear(); } + void set_api_key(const std::string &key) + { + if (m_api_key != key) { + clear(); + m_api_key = key; + } + } + void set_credentials(const std::string &usr, const std::string &psk) + { + if (m_usr != usr || m_psk != psk) { + clear(); + m_usr = usr; + m_psk = psk; + } + } void clear() { m_api_key.clear(); m_usr.clear(); m_psk.clear(); m_api_key_sent = false; } void sys_color_changed() override; private: diff --git a/src/slic3r/GUI/WebViewPlatformUtilsLinux.cpp b/src/slic3r/GUI/WebViewPlatformUtilsLinux.cpp index 196081173e..db6303ab84 100644 --- a/src/slic3r/GUI/WebViewPlatformUtilsLinux.cpp +++ b/src/slic3r/GUI/WebViewPlatformUtilsLinux.cpp @@ -14,7 +14,7 @@ struct Credentials { gboolean webkit_authorize_handler(WebKitWebView *web_view, WebKitAuthenticationRequest *request, gpointer user_data) { const Credentials& creds = *static_cast(user_data); - webkit_authentication_request_authenticate(request, webkit_credential_new(creds.username.c_str(), creds.password.c_str(), WEBKIT_CREDENTIAL_PERSISTENCE_FOR_SESSION)); + webkit_authentication_request_authenticate(request, webkit_credential_new(creds.username.c_str(), creds.password.c_str(), WEBKIT_CREDENTIAL_PERSISTENCE_PERMANENT)); return TRUE; }