From: Martin Sevior (msevior@physics.unimelb.edu.au)
Date: Wed Nov 13 2002 - 01:55:36 EST
On Wed, 2002-11-13 at 04:41, Joaquin Cuenca Abela wrote:
> Sorry for non giving any live signal for a while, I
> was on a trip.
>
> I've just read the whole xft printing problems. I've
> not dig into the problem, but printing with the xft
> build was working when I left it, but that was before
> the unification of units by thomas, so maybe that
> stopped working there.
>
> I don't know where come the problems with embedding
> fonts. Embedding fonts (TT & PS) was also working
> when I last touched it.
>
> The problem about the status bar not working with
> double buffering is there because xft calls (as any
> non gdk primitives) don't get diverted to the double
> buffer, so all the things that we draw in a double
> buffered GdkWindow using non gdk calls are covered by
> the double buffer when gdk copies it on the GdkWindow
> at the end of the expose event (you can see it that's
> the problem with the status bar if it flicker a very
> little bit before it disappears).
>
This makes sense and is what Havoc said was happening too.
> We should instead draw the text to the GdkDrawable
> that's being used by gdk to do the double buffer (you
> can get the real GdkDrawable using
> gdk_window_get_internal_paint_info(...) )
>
Hi Joaquin,
I tried this but it didn't work. I have this cod ein
gr_UnixGraphics.cpp
#ifdef USE_XFT
//
// Martin's attempt to make double buffering work.with xft
//
#if 1
gint xoff,yoff;
GdkDrawable * realDraw;
gdk_window_get_internal_paint_info (m_pWin, &realDraw,&xoff,&yoff);
m_pGC = gdk_gc_new(realDraw);
m_pXORGC = gdk_gc_new(realDraw);
m_pVisual = GDK_VISUAL_XVISUAL( gdk_drawable_get_visual(realDraw));
m_Drawable = gdk_x11_drawable_get_xid(realDraw);
#else
m_pVisual = GDK_VISUAL_XVISUAL(gdk_window_get_visual(win));
m_Drawable = GDK_WINDOW_XWINDOW(m_pWin);
m_pGC = gdk_gc_new(m_pWin);
m_pXORGC = gdk_gc_new(m_pWin);
#endif
m_pXftFont = NULL;
m_Colormap = GDK_COLORMAP_XCOLORMAP(m_pColormap);
m_pXftDraw = XftDrawCreate(GDK_DISPLAY(), m_Drawable, m_pVisual,
m_Colormap);
#else
m_pGC = gdk_gc_new(m_pWin);
m_pXORGC = gdk_gc_new(m_pWin);
#endif
What is wrong here?
If you download the current source, comment out the
gtk_enable_double_buffering(widget, FALSE)
code in
xap_UnixDialogHelper.cpp
xap_UnixFrame.cpp
ap_UnixStatusBar.cpp
Also do you know what to look at to stop abiword loading all the fonts
at startup?
Cheers
Martin
This archive was generated by hypermail 2.1.4 : Wed Nov 13 2002 - 02:09:45 EST