[Libreoffice] Questions about gtk3 port

Lucas Baudin xapantu at gmail.com
Mon Sep 12 12:18:35 PDT 2011


Hi,

Today, I tried to work on the gtk3 port, for the widget rendering. But I 
have some problems...

Let's take the button example.

An easy way to draw a gtk3 button is to call gtk_render_frame (or 
background), with a cairo context. So, we can create the context using 
gdk_cairo_create. That's what is currently done in 
GtkSalGraphics::drawNativeControl.
The problem is that we also have to support the normal headless mode. 
Currently, there is a bitmap array, where the native LibreOffice widgets 
can be drawn, and then, it is translated to cairo, in 
GtkFrame::renderArea. The problem is that this pixel array is only rgb, 
and, obviously, the widgets drawn by gtk functions (in 
drawNativeControl) are hidden by these pixels.


So, I would need some help to figure that out. How can we manage to 
paint this pixel buffer and the cairo surface correctly? e.g. for a 
button, the text of it will be drawn by the "headless mode", but the 
button itself by gtk, and the background of the window by the "headless 
mode" too... I took a look at the gtk2 code, but it seems it uses some X 
functions, and if I recall correctly, Michael wanted to remove all of 
them, so...

If anyone had some time to look at that, it would be cool, I don't see 
how this could be done...

Lucas



More information about the LibreOffice mailing list