Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [gef-dev] FigureCanvas & Linux


Are you using a pre-release level of GEF?  The final release of GEF 2.1 does not have that problem (it has a different one instead :-)

We check for scrollbar.isVisible() before calling setVisible().  The problem is that scrollbar.isVisible() is not the inverse of setVisible(), so if the SWT Control is not visible, the scrollbar will say that it is not visible even when it is.  For 2.1.1, we will have changed the call to getVisible() instead of isVisible().




"Konstantin Zaporozhtsev" <Konstantin.Zaporozhtsev@xxxxxxxxxxx>
Sent by: gef-dev-admin@xxxxxxxxxxx

04/24/2003 04:26 AM
Please respond to gef-dev

       
        To:        <gef-dev@xxxxxxxxxxx>
        cc:        
        Subject:        [gef-dev] FigureCanvas & Linux



I have encountered a problem using FigureCanvas under Linux OS. It uses root figure which calls layoutViewport() on validation. In my case it results in infinite validating loop, because:

1. Method layoutViewport() calls scrollbar.setVisible() for both horizontal and vertical scrollbars.

2. Method setVisible() of scrollbar sends SWT.RESIZE event for its (scrollbar’s) parent, and it starts new validation cycle again.

 

The problem can be solved by not calling scrollbar.setVisibility() when its current visibility state is the same as new.

Of course, method layoutViewport() has private access, and my workaround was in copying the whole class FigureCanvas.

 

Is it a known issue or I do something wrong? Should I submit appropriate request in eclipse bug database?

 

Thank you,

Kostya.


Back to the top