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