[Mono-bugs] [Bug 661943] New: Mac: TabControl paints invalidated Controls on the wrong TabPage

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Fri Dec 31 04:32:17 EST 2010



           Summary: Mac: TabControl paints invalidated Controls on the
                    wrong TabPage
    Classification: Mono
           Product: Mono: Class Libraries
           Version: 2.8.x
          Platform: Macintosh
        OS/Version: Mac OS X 10.5
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Windows.Forms
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: c8 at vokabeln.de
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---

Created an attachment (id=406655)
 --> (http://bugzilla.novell.com/attachment.cgi?id=406655)
screenshot of how the Controls suddenly appear on TabPage2

User-Agent:       Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64;
Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;
Media Center PC 6.0; MDDC; .NET4.0C)

I have a TabControl with TabPage1 and TabPage2: TabPage1 contains a number of
different Controls (Label, CheckBox, RadioButton, PictureBox, TextBox,
ComboBox, ListBox, HScrollBar), whereas TabPage2 is completely empty. 

Under the TabControl there is a Button by which the Controls on TabPage1 are
invalidated (by changing .Font, .Checked, .Text, .SelectedIndex, .Value or
simply by calling .Invalidate). 

Now I start the programme on Mac using Mono (see the attached screenshot): The
Controls are displayed on TabPage1. When I click on TabPage2, it is empty as it
should be. However, if now I click on the Button, then all the Controls from
TabPage1 are painted on TabPage2! (More precisely: anything that needs to be
*repainted* is now visible, e.g. the whole Label, CheckBox, RadioButton and
PictureBox, but only the client area of the TextBox, ComboBox and ListBox
without their borders). 

Apparently, on Mac, an invalidated Control is repainted regardless of whether
it is on the current TabPage or on a hidden TabPage. 

Reproducible: Always

Steps to Reproduce:
1. Start the attached project with Mono on Mac (see attachment in next post).
2. (Looking at TabPage1, click on the Button to see what it does.)
3. Click on TabPage2 to see it's empty.
4. Now click on the Button again. 

Actual Results:  
On Mac, the Controls from TabPage1 are painted on TabPage2.

Expected Results:  
TabPage2 should, of course, remain empty, because there are no controls on it. 

* This always happens on Mac, but does not happen on Windows (sorry, I could
not test it on Linux). 

* This bug probably is a more general case of what I reported earlier in Bug
661893 ("TabControl draws previously focused ComboBox on wrong TabPage"), where
probably the fact that ComboBox1 on TabPage1 loses its focus causes ComboBox1
to be repainted, even though meanwhile TabPage2 is shown. 

* This bug totally messes the user interface of my actual programme (in which I
need a lot of TabControls), so PLEASE fix it whoever can do this.

Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.

More information about the mono-bugs mailing list