summaryrefslogtreecommitdiff
path: root/src/terminal-profile.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/terminal-profile.c')
-rw-r--r--src/terminal-profile.c78
1 files changed, 46 insertions, 32 deletions
diff --git a/src/terminal-profile.c b/src/terminal-profile.c
index 4e91aef..f789f66 100644
--- a/src/terminal-profile.c
+++ b/src/terminal-profile.c
@@ -2,6 +2,7 @@
* Copyright © 2001 Havoc Pennington
* Copyright © 2002 Mathias Hasselmann
* Copyright © 2008 Christian Persch
+ * Copyright (C) 2012-2021 MATE Developers
*
* Mate-terminal is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -519,26 +520,38 @@ terminal_profile_reset_property_internal (TerminalProfile *profile,
/* A few properties don't have defaults via the param spec; set them explicitly */
switch (pspec->param_id)
{
- case PROP_FOREGROUND_COLOR:
- case PROP_BOLD_COLOR:
- g_value_set_boxed (value, &DEFAULT_FOREGROUND_COLOR);
- break;
+ case PROP_FOREGROUND_COLOR:
+ case PROP_BOLD_COLOR:
+ {
+ GdkRGBA color;
- case PROP_BACKGROUND_COLOR:
- g_value_set_boxed (value, &DEFAULT_BACKGROUND_COLOR);
- break;
+ if (!gdk_rgba_parse (&color, DEFAULT_FOREGROUND_COLOR))
+ return;
+ color.alpha = 1.0;
+ g_value_set_boxed (value, &color);
+ break;
+ }
+ case PROP_BACKGROUND_COLOR:
+ {
+ GdkRGBA color;
- case PROP_FONT:
- g_value_take_boxed (value, pango_font_description_from_string (DEFAULT_FONT));
- break;
+ if (!gdk_rgba_parse (&color, DEFAULT_BACKGROUND_COLOR))
+ return;
+ color.alpha = 1.0;
+ g_value_set_boxed (value, &color);
+ break;
+ }
+ case PROP_FONT:
+ g_value_take_boxed (value, pango_font_description_from_string (DEFAULT_FONT));
+ break;
- case PROP_PALETTE:
- set_value_from_palette (value, DEFAULT_PALETTE, TERMINAL_PALETTE_SIZE);
- break;
+ case PROP_PALETTE:
+ set_value_from_palette (value, DEFAULT_PALETTE, TERMINAL_PALETTE_SIZE);
+ break;
- default:
- g_param_value_set_default (pspec, value);
- break;
+ default:
+ g_param_value_set_default (pspec, value);
+ break;
}
if (notify)
@@ -1211,12 +1224,14 @@ terminal_profile_class_init (TerminalProfileClass *klass)
{\
GParamSpec *pspec = propSpec;\
g_object_class_install_property (object_class, propId, pspec);\
-\
- if (propGSettings)\
- {\
- g_param_spec_set_qdata (pspec, gsettings_key_quark, (gpointer) propGSettings);\
- g_hash_table_insert (klass->gsettings_keys, (gpointer) propGSettings, pspec);\
- }\
+ g_param_spec_set_qdata (pspec, gsettings_key_quark, (gpointer) propGSettings);\
+ g_hash_table_insert (klass->gsettings_keys, (gpointer) propGSettings, pspec);\
+}
+
+#define TERMINAL_PROFILE_PROPERTY_OUTER(propId, propSpec) \
+{\
+ GParamSpec *pspec = propSpec;\
+ g_object_class_install_property (object_class, propId, pspec);\
}
#define TERMINAL_PROFILE_PROPERTY_BOOLEAN(prop, propDefault, propGSettings) \
@@ -1255,12 +1270,11 @@ terminal_profile_class_init (TerminalProfileClass *klass)
propGSettings)
/* these are all read-only */
-#define TERMINAL_PROFILE_PROPERTY_OBJECT(prop, propType, propGSettings)\
- TERMINAL_PROFILE_PROPERTY (PROP_##prop,\
+#define TERMINAL_PROFILE_PROPERTY_OBJECT(prop, propType)\
+ TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\
g_param_spec_object (TERMINAL_PROFILE_##prop, NULL, NULL,\
propType,\
- G_PARAM_READABLE | TERMINAL_PROFILE_PSPEC_STATIC),\
- propGSettings)
+ G_PARAM_READABLE | TERMINAL_PROFILE_PSPEC_STATIC))
#define TERMINAL_PROFILE_PROPERTY_STRING(prop, propDefault, propGSettings)\
TERMINAL_PROFILE_PROPERTY (PROP_##prop,\
@@ -1269,12 +1283,11 @@ terminal_profile_class_init (TerminalProfileClass *klass)
G_PARAM_READWRITE | TERMINAL_PROFILE_PSPEC_STATIC),\
propGSettings)
-#define TERMINAL_PROFILE_PROPERTY_STRING_CO(prop, propDefault, propGSettings)\
- TERMINAL_PROFILE_PROPERTY (PROP_##prop,\
+#define TERMINAL_PROFILE_PROPERTY_STRING_CO(prop, propDefault)\
+ TERMINAL_PROFILE_PROPERTY_OUTER (PROP_##prop,\
g_param_spec_string (TERMINAL_PROFILE_##prop, NULL, NULL,\
propDefault,\
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | TERMINAL_PROFILE_PSPEC_STATIC),\
- propGSettings)
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | TERMINAL_PROFILE_PSPEC_STATIC))
#define TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED(prop, propElementName, propElementType, propGSettings)\
TERMINAL_PROFILE_PROPERTY (PROP_##prop,\
@@ -1323,9 +1336,10 @@ terminal_profile_class_init (TerminalProfileClass *klass)
TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_ROWS, 1, 1024, DEFAULT_DEFAULT_SIZE_ROWS, KEY_DEFAULT_SIZE_ROWS);
TERMINAL_PROFILE_PROPERTY_INT (SCROLLBACK_LINES, 1, G_MAXINT, DEFAULT_SCROLLBACK_LINES, KEY_SCROLLBACK_LINES);
- TERMINAL_PROFILE_PROPERTY_OBJECT (BACKGROUND_IMAGE, GDK_TYPE_PIXBUF, NULL);
+ TERMINAL_PROFILE_PROPERTY_OBJECT (BACKGROUND_IMAGE, GDK_TYPE_PIXBUF);
+
+ TERMINAL_PROFILE_PROPERTY_STRING_CO (NAME, DEFAULT_NAME);
- TERMINAL_PROFILE_PROPERTY_STRING_CO (NAME, DEFAULT_NAME, NULL);
TERMINAL_PROFILE_PROPERTY_STRING (BACKGROUND_IMAGE_FILE, DEFAULT_BACKGROUND_IMAGE_FILE, KEY_BACKGROUND_IMAGE_FILE);
TERMINAL_PROFILE_PROPERTY_STRING (CUSTOM_COMMAND, DEFAULT_CUSTOM_COMMAND, KEY_CUSTOM_COMMAND);
TERMINAL_PROFILE_PROPERTY_STRING (TITLE, _(DEFAULT_TITLE), KEY_TITLE);