[lazarus] New IDE bugs ?

Mattias Gaertner nc-gaertnma at netcologne.de
Sun Nov 23 07:33:05 EST 2003


On Sun, 23 Nov 2003 13:26:46 +0100  Vincent Snijders <vslist at zonnet.nl>
wrote:

> On Sun, 23 Nov 2003 11:43:01 +0100
> Mattias Gaertner <nc-gaertnma at netcologne.de> wrote:
> 
> > On Sun, 23 Nov 2003 12:16:54 +0100 (CET)  Michael.VanCanneyt at wisa.be
> > wrote:
> > 
> > > Hi,
> > > 
> > > There are (at least) 2 bugs which have crept in lately. They seem
> > > related, because the symptoms are the same.
> > > 
> > > - Configure 'Build lazarus' dialog: The grid with descriptions 
> > >   (or whatever component it is) is completely black (but
> > >   build/skip/install icons are shown) and only the  current
> > >   selection is shown in white  letters.
> > > 
> > > - 'Find in files' search result: everything is black in the
> > > memo/whatever,
> > > 
> > >   only the current selection is printed in white letters. 
> > > 
> > > This is from todays CVS update, compiled with a 1.0.10 version of
> > > FPC.
> > 
> > Both are TListBox and both are drawing the background with clWindow.
> > Let's see ..
> > 
> > 
> > Mattias
> 
> FYI, this is the same as bug 153. Please also take a look at what Tony
> and Andrew were discussing in the "Black clBtnFace fix? was Patch for
> searchresults dialog" thread.
> 
> I wanted to try Andrew's suggestion, but couldn't find the exact
> place to put the code.

Each system color is a special case. clBtnFace needs a different trick than
clWindow.

In this case the problem is the following:

TListBox.OnDrawItem paints with clWindow to paint in the background color of
the inner area. A TListBox is in the gtk a gtk_list with a list of
gtk_list_item. The paint DC is that of the item, while the background is
hardcoded in the gtk as the base[Normal_State] of the gtk_list.

This technique is common in the gtk. The best solution would be to retrieve
the current background of the gdkwindow of the gtk_list_item, so we don't
have to bother about the specific widget class. But I'm still searching for
such function.

If I don't find it, I will add a gtk_list_item specific solution.


Mattias






More information about the Lazarus mailing list