Skip to content

Commit 286d5ed

Browse files
authored
Merge pull request #100 from lxde/fix/fix-background-echoes
2 parents 8e30edd + a7a7162 commit 286d5ed

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

src/lxterminal.c

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1782,21 +1782,44 @@ LXTerminal * lxterminal_initialize(LXTermWindow * lxtermwin, CommandArguments *
17821782
/* Apply new settings to a terminal. */
17831783
static void terminal_settings_apply(LXTerminal * terminal)
17841784
{
1785+
Setting * setting = get_setting();
1786+
17851787
/* Reinitialize "composited". */
17861788
terminal->rgba = gdk_screen_is_composited(gtk_widget_get_screen(terminal->window));
17871789

1790+
#if GTK_CHECK_VERSION (2, 90, 8)
1791+
/* Found in vteapp as a workaround. Related bug:
1792+
* https://bugzilla.gnome.org/show_bug.cgi?format=multiple&id=729884 */
1793+
gboolean has_transparency = setting->background_color.alpha < 1.0;
1794+
gtk_widget_set_app_paintable(
1795+
GTK_WIDGET(terminal->window), has_transparency);
1796+
1797+
/* De-transarent box */
1798+
GtkCssProvider* box_css_provider = gtk_css_provider_new();
1799+
gtk_css_provider_load_from_data(box_css_provider,
1800+
"box{background-color:@theme_bg_color;}",
1801+
-1, NULL
1802+
);
1803+
1804+
GtkStyleContext* box_style_ctx =
1805+
gtk_widget_get_style_context(GTK_WIDGET(terminal->box));
1806+
gtk_style_context_add_provider(
1807+
box_style_ctx, box_css_provider,
1808+
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
1809+
#endif
1810+
17881811
/* Update tab position. */
1789-
terminal->tab_position = terminal_tab_get_position_id(get_setting()->tab_position);
1812+
terminal->tab_position = terminal_tab_get_position_id(setting->tab_position);
17901813
terminal_tab_set_position(terminal->notebook, terminal->tab_position);
17911814

17921815
/* Update menu accelerators. */
17931816
terminal_menu_accelerator_update(terminal);
17941817

17951818
/* disable mnemonics if <ALT>n is diabled */
1796-
g_object_set(gtk_settings_get_default(), "gtk-enable-mnemonics", !get_setting()->disable_alt, NULL);
1819+
g_object_set(gtk_settings_get_default(), "gtk-enable-mnemonics", !setting->disable_alt, NULL);
17971820

17981821
/* Hide or show menubar. */
1799-
if (get_setting()->hide_menu_bar)
1822+
if (setting->hide_menu_bar)
18001823
{
18011824
gtk_widget_hide(terminal->menu);
18021825
}

0 commit comments

Comments
 (0)