Opened 4 years ago

Closed 4 years ago

#11514 closed defect (fixed)

wxToolBar theme issue

Reported by: Harukalover Owned by:
Priority: normal Milestone: 2.9.1
Component: wxMSW Version: stable-latest
Keywords: wxToolBar regression Cc:
Blocked By: Blocking:
Patch: no

Description

wxToolBar in trunk seems to partially use the classic Windows theme even with the resource file properly included and a manifest being created. I say partially since the dropdown control in the sample displays part of the Vista theme.

The pictures attached to this ticket are from the toolbar sample. One is from the 2.9.0 branch which displays correctly, while the other is from trunk where it is broken.

Attachments (2)

toolbar_2.9.0.png download (18.1 KB) - added by Harukalover 4 years ago.
2.9.0 Branch
toolbar_trunk.png download (18.6 KB) - added by Harukalover 4 years ago.
Trunk (r62777)

Download all attachments as: .zip

Change History (6)

Changed 4 years ago by Harukalover

2.9.0 Branch

Changed 4 years ago by Harukalover

Trunk (r62777)

comment:1 Changed 4 years ago by vadz

  • Keywords regression added
  • Milestone set to 2.9.1
  • Status changed from new to confirmed

I can see this too (under Windows 7).

No relevant changes seem to have been done in src/msw/toolbar.cpp itself since 2.9.0 so it was probably broken by either r61859 or r61885.

Could you please test if you can find which change broke it exactly? If it's neither of the above, it would be necessary to bisect the history to find it (the last common revision for 2.9.0 and trunk is r60038 so it could be used as the known good point).

TIA!

comment:2 Changed 4 years ago by Harukalover

Did some checking and found it's r61086 that caused the regression.

comment:3 Changed 4 years ago by MoonKid

*watch*

comment:4 Changed 4 years ago by VZ

  • Resolution set to fixed
  • Status changed from confirmed to closed

(In [62805]) Generate erase background events for native controls too under MSW.

Remove the test which prevented the generation of erase background events from
wxMSW::wxWindow::HandleEraseBkgnd(). Although it is true that native controls
mostly erase background on their own, there are exceptions: we must erase the
background of wxToolBar ourselves, for example. More importantly, there is no
reason to prevent the user code from defining wxEVT_ERASE_BACKGROUND handlers
for the native controls as this works just fine under MSW (although it doesn't
under GTK nor probably other ports...). So also add a test erase background
handler to the toolbar sample to verify that this does work.

Closes #11514.

Note: See TracTickets for help on using tickets.