Revision: 5690 http://geany.svn.sourceforge.net/geany/?rev=5690&view=rev Author: colombanw Date: 2011-04-04 17:58:07 +0000 (Mon, 04 Apr 2011)
Log Message: ----------- Fix font rendering in the Scintilla when using Cairo
Always get the Pango context through GTK+ API rather than creating it from a Cairo context to always get a context set up for the screen.
This fixes font size issues when using Cairo rendering.
Patch imported from upstream Mercurial (3596/070c7eb483bf).
Modified Paths: -------------- trunk/scintilla/gtk/PlatGTK.cxx
Modified: trunk/scintilla/gtk/PlatGTK.cxx =================================================================== --- trunk/scintilla/gtk/PlatGTK.cxx 2011-04-04 17:05:44 UTC (rev 5689) +++ trunk/scintilla/gtk/PlatGTK.cxx 2011-04-04 17:58:07 UTC (rev 5690) @@ -894,16 +894,11 @@ context = cairo_create(psurf); } createdGC = true; - pcontext = pango_cairo_create_context(context); - PLATFORM_ASSERT(pcontext); - layout = pango_cairo_create_layout(context); - PLATFORM_ASSERT(layout); -#else +#endif pcontext = gtk_widget_create_pango_context(PWidget(wid)); PLATFORM_ASSERT(pcontext); layout = pango_layout_new(pcontext); PLATFORM_ASSERT(layout); -#endif inited = true; }
@@ -916,17 +911,10 @@ context = gdk_cairo_create(drawable_); #else gc = gdk_gc_new(drawable_); + drawable = drawable_; #endif -#ifdef USE_CAIRO - pcontext = pango_cairo_create_context(context); - PLATFORM_ASSERT(pcontext); - layout = pango_cairo_create_layout(context); - PLATFORM_ASSERT(layout); -#else pcontext = gtk_widget_create_pango_context(PWidget(wid)); layout = pango_layout_new(pcontext); - drawable = drawable_; -#endif #ifdef USE_CAIRO cairo_set_line_width(context, 1); #else @@ -948,20 +936,16 @@ PLATFORM_ASSERT(surfImpl->drawable); gc = gdk_gc_new(surfImpl->drawable); #endif -#ifdef USE_CAIRO - pcontext = pango_cairo_create_context(context); + pcontext = gtk_widget_create_pango_context(PWidget(wid)); PLATFORM_ASSERT(pcontext); - layout = pango_cairo_create_layout(context); + layout = pango_layout_new(pcontext); PLATFORM_ASSERT(layout); +#ifdef USE_CAIRO if (height > 0 && width > 0) psurf = gdk_window_create_similar_surface( gtk_widget_get_window(PWidget(wid)), CAIRO_CONTENT_COLOR_ALPHA, width, height); #else - pcontext = gtk_widget_create_pango_context(PWidget(wid)); - PLATFORM_ASSERT(pcontext); - layout = pango_layout_new(pcontext); - PLATFORM_ASSERT(layout); if (height > 0 && width > 0) ppixmap = gdk_pixmap_new(surfImpl->drawable, width, height, -1); drawable = ppixmap;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.