View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000964 | Lazarus | Widgetset | public | 2005-06-16 14:24 | 2015-03-14 12:48 |
Reporter | Tony Maro | Assigned To | |||
Priority | normal | Severity | major | Reproducibility | always |
Status | acknowledged | Resolution | reopened | ||
Platform | i386 | OS | Linux | ||
Product Version | 0.9.7 (CVS) | ||||
Summary | 0000964: GTK2 seems to paint in reverse order...? | ||||
Description | Testing 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 Reproduce | The 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. | ||||
Tags | gtk2 | ||||
Fixed in Revision | |||||
LazTarget | - | ||||
Widgetset | GTK 2 | ||||
Attached Files |
|
related to | 0019562 | acknowledged | The scrollbar of visual component appears behind other component | |
related to | 0008346 | closed | Zeljan Rikalo | TPageControl: Edit components are invisible - possible z-order problem |
related to | 0021966 | new | Build with GTK2 win32/win64, IDE Tool bar icons will lose!! | |
related to | 0023158 | confirmed | Zeljan Rikalo | drag-n-drop accross PageControl Tabs make TImages disappear |
child of | 0008165 | closed | Mattias Gaertner | GTK2 - suggested to be default |
|
a patch has been submitted to fix this |
|
The patch I sent was applied and now things mostly work. I would rate this as 85% fixed. |
|
What is the remaining 15%? Andrew, do you think we can close this issue and open an new one for the (unknown) remaining 15%? |
|
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 |
|
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? |
|
This widget seams to be perfekt for the task: http://library.gnome.org/devel/gtk-tutorial/stable/c1228.html#SEC-EVENTBOX |
|
It should now be fixed for TButton. |
|
I need a list of which Lazarus controls are affected by the bug. |
|
No further feedback. |
|
Is this fixed ? Any ? |
|
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. |
|
It's not fixed and I think that almost all controls with a handle are affected. |
|
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. |
|
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. |
|
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. |
|
Not fixable in 1.0 time window, postponed. |
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 |
2014-09-10 01:21 | Juha Manninen | LazTarget | 1.4 => - |
2014-09-10 01:21 | Juha Manninen | Target Version | 1.4 => |
2015-03-14 12:45 | Zeljan Rikalo | Relationship added | related to 0027419 |
2015-03-14 12:46 | Zeljan Rikalo | Relationship added | related to 0021966 |
2015-03-14 12:47 | Zeljan Rikalo | Relationship added | related to 0023158 |
2015-03-14 12:48 | Zeljan Rikalo | Relationship deleted | related to 0027419 |