View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000964LazarusWidgetsetpublic2005-06-16 14:242014-01-14 15:12
ReporterTony Maro 
Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
StatusacknowledgedResolutionreopened 
Platformi386OSLinuxOS VersionDebian
Product Version0.9.7 (CVS)Product Build 
Target Version1.4Fixed in Version 
Summary0000964: GTK2 seems to paint in reverse order...?
DescriptionTesting TruckBites built for GTK2, I find that the TTilePanel component will redraw itself ontop of a TButton. The TTilePanel is a TPanel with a custom paint job to display a bitmap on it's background. While resizing the window, the panel will be grey and the buttons draw, however as soon as done, the TPanel appears to get the last paint message, rather than the components sitting on top of it.
Steps To ReproduceThe same behavior appears to happen in the OI of Lazarus - the ".." icon and the dropdown when setting event handlers will flicker in and out - mostly out.
Tagsgtk2
Fixed in Revision
LazTarget1.4
WidgetsetGTK 2
Attached Files

- Relationships
related to 0019562acknowledged The scrollbar of visual component appears behind other component 
related to 0008346closedZeljan Rikalo TPageControl: Edit components are invisible - possible z-order problem 
child of 0008165closedMattias Gaertner GTK2 - suggested to be default 

-  Notes
(0009351)
AndrewH (developer)
2006-10-14 22:46

a patch has been submitted to fix this
(0009594)
AndrewH (developer)
2006-10-31 21:41

The patch I sent was applied and now things mostly work. I would rate this as 85% fixed.
(0011729)
Vincent Snijders (manager)
2007-03-05 10:14

What is the remaining 15%?

Andrew, do you think we can close this issue and open an new one for the (unknown) remaining 15%?
(0012498)
AndrewH (developer)
2007-05-05 04:50

Okay, the problem is that TButtons on gtk2 do not have their own window. "Windows" provide cropping.

We connect to the gtk1/2 'expose-event' signal _after_ the widgetset has painted so when we paint, we are painting over the button.

It is easy to connect to the event _before_ instead but I'm not sure what effect that would have on everything else.

FYI gtk1 TButtons have their own window so that is why there is no problem with gtk1.

Gtk2 Widgets that are affected by this "bug":
http://www.gtk.org/tutorial/x483.html [^]
(0017681)
Felipe Monteiro de Carvalho (developer)
2008-02-09 23:42

That link is old. Here is the new one:

http://library.gnome.org/devel/gtk-tutorial/stable/x483.html [^]

Maybe we should just put something with a window under the button?
(0017682)
Felipe Monteiro de Carvalho (developer)
2008-02-09 23:43

This widget seams to be perfekt for the task:

http://library.gnome.org/devel/gtk-tutorial/stable/c1228.html#SEC-EVENTBOX [^]
(0017705)
Felipe Monteiro de Carvalho (developer)
2008-02-10 15:53

It should now be fixed for TButton.
(0017926)
Felipe Monteiro de Carvalho (developer)
2008-02-22 17:29

I need a list of which Lazarus controls are affected by the bug.
(0018521)
Vincent Snijders (manager)
2008-04-01 11:47

No further feedback.
(0026369)
Zeljan Rikalo (developer)
2009-03-25 08:12

Is this fixed ? Any ?
(0026371)
Vincent Snijders (manager)
2009-03-25 08:15

I don't know, I just don't think Tony is going to re-test it.

Feel free to do a quick test yourself (if you didn't do it already) and resolve the issue.
(0026378)
Felipe Monteiro de Carvalho (developer)
2009-03-25 15:56

It's not fixed and I think that almost all controls with a handle are affected.
(0030008)
Mattias Gaertner (manager)
2009-08-20 00:40

The bug seems to be about the paint event order.
Can you provide a test example?

I don't understand the notes. And I don't see why do you think that adding a xwindow for every widget is the only solution. One of the advantages of gtk2 over gtk1 is the reduced number of xwindows.
(0030011)
Mattias Gaertner (manager)
2009-08-20 09:13

Generally speaking:
For some tasks you need to paint before the widgetset (drawing background), for some tasks you need to paint after the widgetset (drawing markers) and for some tasks you need to draw after the widgetset, but before any child is painted.
So no single paint event fits for all cases. And not all widgets support all three events.
Because paint events are expensive, especially if they are not used, we need a mechanism to enable the needed paint events. Some kind of capability for the three cases and some kind of set to enable them.
(0030037)
Felipe Monteiro de Carvalho (developer)
2009-08-20 19:57

I dont know if it is the only solution, it was the only solution I could come up with. If they have a window then they are painted in the right order.
(0056358)
Zeljan Rikalo (developer)
2012-02-04 12:34

Not fixable in 1.0 time window, postponed.

- Issue History
Date Modified Username Field Change
2005-06-16 14:24 Tony Maro New Issue
2005-06-16 14:24 Tony Maro Widgetset => GTK 2
2005-08-02 10:12 Vincent Snijders Target => post 1.0
2006-10-11 04:39 Felipe Monteiro de Carvalho Status new => acknowledged
2006-10-14 22:46 AndrewH Note Added: 0009351
2006-10-31 21:41 AndrewH Note Added: 0009594
2007-03-05 10:01 Vincent Snijders LazTarget post 1.0 => 1.2
2007-03-05 10:14 Vincent Snijders Note Added: 0011729
2007-03-05 10:14 Vincent Snijders Status acknowledged => feedback
2007-05-05 04:50 AndrewH Note Added: 0012498
2008-02-09 23:42 Felipe Monteiro de Carvalho Note Added: 0017681
2008-02-09 23:43 Felipe Monteiro de Carvalho Note Added: 0017682
2008-02-09 23:44 Felipe Monteiro de Carvalho Status feedback => assigned
2008-02-09 23:44 Felipe Monteiro de Carvalho Assigned To => Felipe Monteiro de Carvalho
2008-02-09 23:50 Felipe Monteiro de Carvalho Relationship added related to 0008346
2008-02-10 15:53 Felipe Monteiro de Carvalho Note Added: 0017705
2008-02-22 17:29 Felipe Monteiro de Carvalho Note Added: 0017926
2008-02-22 17:29 Felipe Monteiro de Carvalho Status assigned => feedback
2008-04-01 11:47 Vincent Snijders Status feedback => resolved
2008-04-01 11:47 Vincent Snijders Resolution open => fixed
2008-04-01 11:47 Vincent Snijders Note Added: 0018521
2008-04-17 19:16 Felipe Monteiro de Carvalho Status resolved => feedback
2008-04-17 19:16 Felipe Monteiro de Carvalho Resolution fixed => reopened
2008-04-17 19:17 Felipe Monteiro de Carvalho Status feedback => confirmed
2008-04-17 19:21 Felipe Monteiro de Carvalho Tag Attached: gtk2
2008-07-16 20:35 Vincent Snijders Relationship added child of 0008165
2009-02-04 21:53 Felipe Monteiro de Carvalho Assigned To Felipe Monteiro de Carvalho =>
2009-03-25 08:12 Zeljan Rikalo Note Added: 0026369
2009-03-25 08:12 Zeljan Rikalo Status confirmed => feedback
2009-03-25 08:15 Vincent Snijders Note Added: 0026371
2009-03-25 15:56 Felipe Monteiro de Carvalho Note Added: 0026378
2009-06-08 22:29 Vincent Snijders Status feedback => acknowledged
2009-08-20 00:40 Mattias Gaertner Note Added: 0030008
2009-08-20 09:13 Mattias Gaertner Note Added: 0030011
2009-08-20 19:57 Felipe Monteiro de Carvalho Note Added: 0030037
2009-09-27 11:19 Vincent Snijders LazTarget 1.2 => 1.0
2009-09-27 11:19 Vincent Snijders Target Version => 1.0.0
2011-10-06 10:47 Vincent Snijders Relationship added related to 0019562
2012-02-04 12:34 Zeljan Rikalo LazTarget 1.0 => 1.2
2012-02-04 12:34 Zeljan Rikalo Note Added: 0056358
2012-03-13 07:50 Vincent Snijders Target Version 1.0.0 => 1.2.0
2014-01-14 15:10 Martin Friebe LazTarget 1.2 => 1.4
2014-01-14 15:12 Martin Friebe Target Version 1.2.0 => 1.4



MantisBT 1.2.12[^]
Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker