}
static void set_username(struct config *c, const char *s) {
- c->username = s;
+ xfree(c->username);
+ c->username = xstrdup(s);
}
static void set_password(struct config *c, const char *s) {
- c->password = s;
+ xfree(c->password);
+ c->password = xstrdup(s);
}
/** @brief Table used to generate the form */
gtk_widget_destroy(login_window);
}
+/** @brief User pressed cancel in the login window */
+static void login_help(GtkButton attribute((unused)) *button,
+ gpointer attribute((unused)) userdata) {
+ popup_help("intro.html#login");
+}
+
/** @brief Keypress handler */
static gboolean login_keypress(GtkWidget attribute((unused)) *widget,
GdkEventKey *event,
/* Buttons that appear at the bottom of the window */
static struct button buttons[] = {
{
- "Login",
- login_ok,
- "(Re-)connect using these settings",
- 0
+ GTK_STOCK_HELP,
+ login_help,
+ "Go to manual",
+ 0,
+ gtk_box_pack_start,
},
{
GTK_STOCK_CLOSE,
login_cancel,
"Discard changes and close window",
- 0
+ 0,
+ gtk_box_pack_end,
+ },
+ {
+ "Login",
+ login_ok,
+ "(Re-)connect using these settings",
+ 0,
+ gtk_box_pack_end,
},
};