Lines 39-44
Link Here
|
39 |
#include "unixsocket.h" |
39 |
#include "unixsocket.h" |
40 |
|
40 |
|
41 |
/* Linux color for palette. */ |
41 |
/* Linux color for palette. */ |
|
|
42 |
#if VTE_CHECK_VERSION (0, 38, 0) |
43 |
static const GdkRGBA linux_color[16] = |
44 |
{ |
45 |
{ 0, 0, 0, 1 }, |
46 |
{ 0.67, 0, 0, 1 }, |
47 |
{ 0, 0.67, 0, 1 }, |
48 |
{ 0.67, 0.33, 0, 1 }, |
49 |
{ 0, 0, 0.67, 1 }, |
50 |
{ 0.67, 0, 0.67, 1 }, |
51 |
{ 0, 0.67, 0.67, 1 }, |
52 |
{ 0.67, 0.67, 0.67, 1 }, |
53 |
{ 0.33, 0.33, 0.33, 1 }, |
54 |
{ 1, 0.33, 0.33, 1 }, |
55 |
{ 0.33, 1, 0.33, 1 }, |
56 |
{ 1, 1, 0.33, 1 }, |
57 |
{ 0.33, 0.33, 1, 1 }, |
58 |
{ 1, 0.33, 1, 1 }, |
59 |
{ 0.33, 1, 1, 1 }, |
60 |
{ 1, 1, 1, 1 } |
61 |
}; |
62 |
#else |
42 |
static const GdkColor linux_color[16] = |
63 |
static const GdkColor linux_color[16] = |
43 |
{ |
64 |
{ |
44 |
{ 0, 0x0000, 0x0000, 0x0000 }, |
65 |
{ 0, 0x0000, 0x0000, 0x0000 }, |
Lines 58-63
static const GdkColor linux_color[16] =
Link Here
|
58 |
{ 0, 0x5555, 0xffff, 0xffff }, |
79 |
{ 0, 0x5555, 0xffff, 0xffff }, |
59 |
{ 0, 0xffff, 0xffff, 0xffff } |
80 |
{ 0, 0xffff, 0xffff, 0xffff } |
60 |
}; |
81 |
}; |
|
|
82 |
#endif |
61 |
|
83 |
|
62 |
/* X accessor. */ |
84 |
/* X accessor. */ |
63 |
static void gdk_window_get_geometry_hints(GdkWindow * window, GdkGeometry * geometry, GdkWindowHints * geometry_mask); |
85 |
static void gdk_window_get_geometry_hints(GdkWindow * window, GdkGeometry * geometry, GdkWindowHints * geometry_mask); |
Lines 239-245
static void gdk_window_get_geometry_hints(GdkWindow * window, GdkGeometry * geom
Link Here
|
239 |
/* Accessor for border values from VteTerminal. */ |
261 |
/* Accessor for border values from VteTerminal. */ |
240 |
static GtkBorder * terminal_get_border(Term * term) |
262 |
static GtkBorder * terminal_get_border(Term * term) |
241 |
{ |
263 |
{ |
242 |
#if VTE_CHECK_VERSION(0, 24, 0) |
264 |
#if VTE_CHECK_VERSION (0, 38, 0) |
|
|
265 |
GtkBorder padding; |
266 |
gtk_style_context_get_padding(gtk_widget_get_style_context(term->vte), |
267 |
gtk_widget_get_state_flags(term->vte), |
268 |
&padding); |
269 |
GtkBorder * border = gtk_border_new(); |
270 |
border->left = padding.left; |
271 |
border->right = padding.right; |
272 |
border->top = padding.top; |
273 |
border->bottom = padding.bottom; |
274 |
return border; |
275 |
#elif VTE_CHECK_VERSION(0, 24, 0) |
243 |
/* Style property, new in 0.24.0, replaces the function below. */ |
276 |
/* Style property, new in 0.24.0, replaces the function below. */ |
244 |
GtkBorder * border; |
277 |
GtkBorder * border; |
245 |
gtk_widget_style_get(term->vte, "inner-border", &border, NULL); |
278 |
gtk_widget_style_get(term->vte, "inner-border", &border, NULL); |
Lines 1016-1025
static void terminal_vte_commit(VteTerminal * vte, gchar * text, guint size, Ter
Link Here
|
1016 |
static void terminal_settings_apply_to_term(LXTerminal * terminal, Term * term) |
1049 |
static void terminal_settings_apply_to_term(LXTerminal * terminal, Term * term) |
1017 |
{ |
1050 |
{ |
1018 |
Setting * setting = get_setting(); |
1051 |
Setting * setting = get_setting(); |
|
|
1052 |
#if VTE_CHECK_VERSION (0, 38, 0) |
1053 |
PangoFontDescription * font_desc; |
1054 |
#endif |
1019 |
|
1055 |
|
1020 |
/* Terminal properties. */ |
1056 |
/* Terminal properties. */ |
|
|
1057 |
#if VTE_CHECK_VERSION (0, 38, 0) |
1058 |
font_desc = pango_font_description_from_string(setting->font_name); |
1059 |
vte_terminal_set_font(VTE_TERMINAL(term->vte), font_desc); |
1060 |
pango_font_description_free(font_desc); |
1061 |
#else |
1021 |
vte_terminal_set_font_from_string(VTE_TERMINAL(term->vte), setting->font_name); |
1062 |
vte_terminal_set_font_from_string(VTE_TERMINAL(term->vte), setting->font_name); |
1022 |
vte_terminal_set_word_chars(VTE_TERMINAL(term->vte), setting->word_selection_characters); |
1063 |
vte_terminal_set_word_chars(VTE_TERMINAL(term->vte), setting->word_selection_characters); |
|
|
1064 |
#endif |
1023 |
vte_terminal_set_scrollback_lines(VTE_TERMINAL(term->vte), setting->scrollback); |
1065 |
vte_terminal_set_scrollback_lines(VTE_TERMINAL(term->vte), setting->scrollback); |
1024 |
vte_terminal_set_allow_bold(VTE_TERMINAL(term->vte), ! setting->disallow_bold); |
1066 |
vte_terminal_set_allow_bold(VTE_TERMINAL(term->vte), ! setting->disallow_bold); |
1025 |
vte_terminal_set_cursor_blink_mode(VTE_TERMINAL(term->vte), ((setting->cursor_blink) ? VTE_CURSOR_BLINK_ON : VTE_CURSOR_BLINK_OFF)); |
1067 |
vte_terminal_set_cursor_blink_mode(VTE_TERMINAL(term->vte), ((setting->cursor_blink) ? VTE_CURSOR_BLINK_ON : VTE_CURSOR_BLINK_OFF)); |
Lines 1028-1033
static void terminal_settings_apply_to_term(LXTerminal * terminal, Term * term)
Link Here
|
1028 |
vte_terminal_set_mouse_autohide(VTE_TERMINAL(term->vte), setting->hide_pointer); |
1070 |
vte_terminal_set_mouse_autohide(VTE_TERMINAL(term->vte), setting->hide_pointer); |
1029 |
|
1071 |
|
1030 |
/* Background and foreground colors. */ |
1072 |
/* Background and foreground colors. */ |
|
|
1073 |
#if !VTE_CHECK_VERSION (0, 38, 0) |
1031 |
if (terminal->rgba) |
1074 |
if (terminal->rgba) |
1032 |
{ |
1075 |
{ |
1033 |
/* vte_terminal_queue_background_update doesn't run without changing background. */ |
1076 |
/* vte_terminal_queue_background_update doesn't run without changing background. */ |
Lines 1040-1045
static void terminal_settings_apply_to_term(LXTerminal * terminal, Term * term)
Link Here
|
1040 |
vte_terminal_set_background_transparent(VTE_TERMINAL(term->vte), setting->background_alpha == 65535 ? FALSE : TRUE); |
1083 |
vte_terminal_set_background_transparent(VTE_TERMINAL(term->vte), setting->background_alpha == 65535 ? FALSE : TRUE); |
1041 |
vte_terminal_set_background_saturation(VTE_TERMINAL(term->vte), 1 - ((double) setting->background_alpha / 65535)); |
1084 |
vte_terminal_set_background_saturation(VTE_TERMINAL(term->vte), 1 - ((double) setting->background_alpha / 65535)); |
1042 |
} |
1085 |
} |
|
|
1086 |
#endif |
1043 |
vte_terminal_set_colors(VTE_TERMINAL(term->vte), &setting->foreground_color, &setting->background_color, &linux_color[0], 16); |
1087 |
vte_terminal_set_colors(VTE_TERMINAL(term->vte), &setting->foreground_color, &setting->background_color, &linux_color[0], 16); |
1044 |
|
1088 |
|
1045 |
/* Hide or show scrollbar. */ |
1089 |
/* Hide or show scrollbar. */ |
Lines 1086-1093
static Term * terminal_new(LXTerminal * terminal, const gchar * label, const gch
Link Here
|
1086 |
|
1130 |
|
1087 |
/* Set up the VTE. */ |
1131 |
/* Set up the VTE. */ |
1088 |
setlocale(LC_ALL, ""); |
1132 |
setlocale(LC_ALL, ""); |
|
|
1133 |
#if VTE_CHECK_VERSION (0, 38, 0) |
1134 |
vte_terminal_set_encoding(VTE_TERMINAL(term->vte), nl_langinfo(CODESET), NULL); |
1135 |
#else |
1089 |
vte_terminal_set_emulation(VTE_TERMINAL(term->vte), "xterm"); |
1136 |
vte_terminal_set_emulation(VTE_TERMINAL(term->vte), "xterm"); |
1090 |
vte_terminal_set_encoding(VTE_TERMINAL(term->vte), nl_langinfo(CODESET)); |
1137 |
vte_terminal_set_encoding(VTE_TERMINAL(term->vte), nl_langinfo(CODESET)); |
|
|
1138 |
#endif |
1091 |
vte_terminal_set_backspace_binding(VTE_TERMINAL(term->vte), VTE_ERASE_ASCII_DELETE); |
1139 |
vte_terminal_set_backspace_binding(VTE_TERMINAL(term->vte), VTE_ERASE_ASCII_DELETE); |
1092 |
vte_terminal_set_delete_binding(VTE_TERMINAL(term->vte), VTE_ERASE_DELETE_SEQUENCE); |
1140 |
vte_terminal_set_delete_binding(VTE_TERMINAL(term->vte), VTE_ERASE_DELETE_SEQUENCE); |
1093 |
|
1141 |
|
Lines 1133-1139
static Term * terminal_new(LXTerminal * terminal, const gchar * label, const gch
Link Here
|
1133 |
gtk_widget_show_all(term->tab); |
1181 |
gtk_widget_show_all(term->tab); |
1134 |
|
1182 |
|
1135 |
/* Set up scrollbar. */ |
1183 |
/* Set up scrollbar. */ |
|
|
1184 |
#if VTE_CHECK_VERSION (0, 38, 0) |
1185 |
gtk_range_set_adjustment(GTK_RANGE(term->scrollbar), gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(term->vte))); |
1186 |
#else |
1136 |
gtk_range_set_adjustment(GTK_RANGE(term->scrollbar), vte_terminal_get_adjustment(VTE_TERMINAL(term->vte))); |
1187 |
gtk_range_set_adjustment(GTK_RANGE(term->scrollbar), vte_terminal_get_adjustment(VTE_TERMINAL(term->vte))); |
|
|
1188 |
#endif |
1137 |
|
1189 |
|
1138 |
/* Fork the process that will have the VTE as its controlling terminal. */ |
1190 |
/* Fork the process that will have the VTE as its controlling terminal. */ |
1139 |
if (exec == NULL) |
1191 |
if (exec == NULL) |
Lines 1144-1149
static Term * terminal_new(LXTerminal * terminal, const gchar * label, const gch
Link Here
|
1144 |
gchar ** command; |
1196 |
gchar ** command; |
1145 |
g_shell_parse_argv(exec, NULL, &command, NULL); |
1197 |
g_shell_parse_argv(exec, NULL, &command, NULL); |
1146 |
|
1198 |
|
|
|
1199 |
#if VTE_CHECK_VERSION (0, 38, 0) |
1200 |
vte_terminal_spawn_sync( |
1201 |
VTE_TERMINAL(term->vte), |
1202 |
VTE_PTY_NO_LASTLOG | VTE_PTY_NO_UTMP | VTE_PTY_NO_WTMP, |
1203 |
pwd, |
1204 |
command, |
1205 |
env, |
1206 |
G_SPAWN_SEARCH_PATH, |
1207 |
NULL, |
1208 |
NULL, |
1209 |
&term->pid, |
1210 |
NULL, |
1211 |
NULL); |
1212 |
#else |
1147 |
vte_terminal_fork_command_full( |
1213 |
vte_terminal_fork_command_full( |
1148 |
VTE_TERMINAL(term->vte), |
1214 |
VTE_TERMINAL(term->vte), |
1149 |
VTE_PTY_NO_LASTLOG | VTE_PTY_NO_UTMP | VTE_PTY_NO_WTMP, |
1215 |
VTE_PTY_NO_LASTLOG | VTE_PTY_NO_UTMP | VTE_PTY_NO_WTMP, |
Lines 1155-1160
static Term * terminal_new(LXTerminal * terminal, const gchar * label, const gch
Link Here
|
1155 |
NULL, |
1221 |
NULL, |
1156 |
&term->pid, |
1222 |
&term->pid, |
1157 |
NULL); |
1223 |
NULL); |
|
|
1224 |
#endif |
1158 |
g_strfreev(command); |
1225 |
g_strfreev(command); |
1159 |
|
1226 |
|
1160 |
/* Connect signals. */ |
1227 |
/* Connect signals. */ |