diff --git a/src/common/latex.py b/src/common/latex.py index 2d783726d7efcafbc16f72161687e52be5e1c328..777577d1cf2fde6e68c3794c114b2a16b6ec1a1c 100644 --- a/src/common/latex.py +++ b/src/common/latex.py @@ -114,6 +114,12 @@ def latex_to_image(str_): result = None exitcode = 0 + try: + bg_str, fg_str = gajim.interface.get_bg_fg_colors() + except: + # interface may not be available when we test latext at startup + bg_str, fg_str = 'rgb 1.0 1.0 1.0', 'rgb 0.0 0.0 0.0' + # filter latex code with bad commands if check_blacklist(str_): # we triggered the blacklist, immediately return None @@ -131,7 +137,7 @@ def latex_to_image(str_): if exitcode == 0: # convert dvi to png latex_png_dpi = gajim.config.get('latex_png_dpi') - exitcode = try_run(['dvipng', '-bg', 'rgb 1.0 1.0 1.0', '-T', + exitcode = try_run(['dvipng', '-bg', bg_str, '-fg', fg_str, '-T', 'tight', '-D', latex_png_dpi, tmpfile + '.dvi', '-o', tmpfile + '.png']) diff --git a/src/gajim.py b/src/gajim.py index b8512ac43d89bde620ea0198c053fa35471fc392..46357eb4b94595707171fab245647f39169da9a8 100644 --- a/src/gajim.py +++ b/src/gajim.py @@ -3036,6 +3036,25 @@ class Interface: pep.user_send_tune(acct, artist, title, source) gajim.connections[acct].music_track_info = music_track_info + def get_bg_fg_colors(self): + def gdkcolor_to_rgb (gdkcolor): + return [c / 65535. for c in (gdkcolor.red, gdkcolor.green, + gdkcolor.blue)] + + def format_rgb (r, g, b): + return ' '.join([str(c) for c in ('rgb', r, g, b)]) + + def format_gdkcolor (gdkcolor): + return format_rgb (*gdkcolor_to_rgb (gdkcolor)) + + # get style colors and create string for dvipng + dummy = gtk.Invisible() + dummy.ensure_style() + style = dummy.get_style() + bg_str = format_gdkcolor(style.base[gtk.STATE_NORMAL]) + fg_str = format_gdkcolor(style.text[gtk.STATE_NORMAL]) + return (bg_str, fg_str) + def read_sleepy(self): '''Check idle status and change that status if needed''' if not self.sleeper.poll():