GUACAMOLE-630: Persist details of color scheme and font changes.
This commit is contained in:
parent
4dabea37af
commit
ccfcfb116d
@ -343,6 +343,11 @@ guac_terminal* guac_terminal_create(guac_client* client,
|
|||||||
term->upload_path_handler = NULL;
|
term->upload_path_handler = NULL;
|
||||||
term->file_download_handler = NULL;
|
term->file_download_handler = NULL;
|
||||||
|
|
||||||
|
/* Copy initially-provided color scheme and font details */
|
||||||
|
term->color_scheme = strdup(color_scheme);
|
||||||
|
term->font_name = strdup(font_name);
|
||||||
|
term->font_size = font_size;
|
||||||
|
|
||||||
/* Set size of available screen area */
|
/* Set size of available screen area */
|
||||||
term->outer_width = width;
|
term->outer_width = width;
|
||||||
term->outer_height = height;
|
term->outer_height = height;
|
||||||
@ -511,6 +516,10 @@ void guac_terminal_free(guac_terminal* term) {
|
|||||||
/* Free scrollbar */
|
/* Free scrollbar */
|
||||||
guac_terminal_scrollbar_free(term->scrollbar);
|
guac_terminal_scrollbar_free(term->scrollbar);
|
||||||
|
|
||||||
|
/* Free copies of font and color scheme information */
|
||||||
|
free((char*) term->color_scheme);
|
||||||
|
free((char*) term->font_name);
|
||||||
|
|
||||||
/* Free the terminal itself */
|
/* Free the terminal itself */
|
||||||
free(term);
|
free(term);
|
||||||
|
|
||||||
@ -1955,6 +1964,16 @@ void guac_terminal_apply_color_scheme(guac_terminal* terminal,
|
|||||||
terminal->term_height - 1,
|
terminal->term_height - 1,
|
||||||
terminal->term_width - 1);
|
terminal->term_width - 1);
|
||||||
|
|
||||||
|
/* Acquire exclusive access to terminal */
|
||||||
|
guac_terminal_lock(terminal);
|
||||||
|
|
||||||
|
/* Update stored copy of color scheme */
|
||||||
|
free((char*) terminal->color_scheme);
|
||||||
|
terminal->color_scheme = strdup(color_scheme);
|
||||||
|
|
||||||
|
/* Release terminal */
|
||||||
|
guac_terminal_unlock(terminal);
|
||||||
|
|
||||||
guac_terminal_notify(terminal);
|
guac_terminal_notify(terminal);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1979,6 +1998,20 @@ void guac_terminal_apply_font(guac_terminal* terminal, const char* font_name,
|
|||||||
terminal->term_height - 1,
|
terminal->term_height - 1,
|
||||||
terminal->term_width - 1);
|
terminal->term_width - 1);
|
||||||
|
|
||||||
|
/* Acquire exclusive access to terminal */
|
||||||
|
guac_terminal_lock(terminal);
|
||||||
|
|
||||||
|
/* Update stored copy of font name, if changed */
|
||||||
|
if (font_name != NULL)
|
||||||
|
terminal->font_name = strdup(font_name);
|
||||||
|
|
||||||
|
/* Update stored copy of font size, if changed */
|
||||||
|
if (font_size != -1)
|
||||||
|
terminal->font_size = font_size;
|
||||||
|
|
||||||
|
/* Release terminal */
|
||||||
|
guac_terminal_unlock(terminal);
|
||||||
|
|
||||||
guac_terminal_notify(terminal);
|
guac_terminal_notify(terminal);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -506,6 +506,25 @@ struct guac_terminal {
|
|||||||
*/
|
*/
|
||||||
guac_common_clipboard* clipboard;
|
guac_common_clipboard* clipboard;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The name of the font to use when rendering glyphs, as requested at
|
||||||
|
* creation time or via guac_terminal_apply_font().
|
||||||
|
*/
|
||||||
|
const char* font_name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The size of each glyph, in points, as requested at creation time or via
|
||||||
|
* guac_terminal_apply_font().
|
||||||
|
*/
|
||||||
|
int font_size;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The name of the color scheme to use, as requested at creation time or
|
||||||
|
* via guac_terminal_apply_color_scheme(). This string must be in the
|
||||||
|
* format accepted by guac_terminal_parse_color_scheme().
|
||||||
|
*/
|
||||||
|
const char* color_scheme;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ASCII character to send when backspace is pressed.
|
* ASCII character to send when backspace is pressed.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user