Hi

I really appreciate the latex feature. Math characters are impossible to obtain
on a keyboard. However, it isn't theme aware, that is the background will always
be white even if you set another color in your theme. Same for the text.
I have managed to improve this and wrote a small patch. It is attached to this
email. May someone have a look to it? If it is correct, it may be interesting to
push it. It is built against the current mercurial repo.

Regards
Jonathan
diff -r 278bcb0fc71b src/common/latex.py
--- a/src/common/latex.py	Wed Sep 16 16:14:03 2009 +0200
+++ b/src/common/latex.py	Thu Sep 17 12:06:05 2009 +0200
@@ -28,6 +28,7 @@
 ##
 
 import os
+import gtk
 import random
 from tempfile import gettempdir
 from subprocess import Popen, PIPE
@@ -109,11 +110,29 @@
 			'command': " ".join(argv),
 			'error': helpers.decode_string(str(e))}
 
+def gdkcolor_to_rgb (gdkcolor):
+	return [c / 65535. for c in (gdkcolor.red, gdkcolor.green, gdkcolor.blue)]
+
+def format_rgb (r, g, b):
+	colorstr = "rgb"
+	for color in (r, g, b):
+		colorstr += " " + str (color)
+	return colorstr
+
+def format_gdkcolor (gdkcolor):
+	return format_rgb (*gdkcolor_to_rgb (gdkcolor))
 
 def latex_to_image(str_):
 	result = None
 	exitcode = 0
 
+	# 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])
+
 	# filter latex code with bad commands
 	if check_blacklist(str_):
 		# we triggered the blacklist, immediately return None
@@ -131,7 +150,7 @@
 	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'])
 
_______________________________________________
Gajim-devel mailing list
Gajim-devel@gajim.org
http://lists.gajim.org/cgi-bin/listinfo/gajim-devel

Reply via email to