http://bugs.winehq.org/show_bug.cgi?id=12553
--- Comment #19 from Igor Tarasov tarasov.igor@gmail.com 2009-02-26 11:45:46 --- Created an attachment (id=19674) --> (http://bugs.winehq.org/attachment.cgi?id=19674) Fix REBAR_StyleChanged
So, MSDN states that WM_STYLECHANGED needs 2 params: wParam, which specifies whether the window's styles or extended window styles have changed, and lParam, holding styles. But REBAR_StyleChanged operates only with lParam. http://msdn.microsoft.com/en-us/library/ms632648(VS.85).aspx
So, I've added wParam check (see attached file) and now everything works. But there are 2 problems:
1. There are no dwExStyle property in REBAR_INFO structure. Also, I can't find any usage of these styles in rebar.c. Is that okay? I've just put a FIXME for case when EXSTYLE is updated (BTW, toolbar control also does not update exstyles on WM_STYLECHANGED).
2. While Rebars now are at their places, child toolbars are not there exactly:
2.1. Firstly, top toolbar is of wrong height. Client height of top rebar is 28 px. But toolbar is only 26 px high. Native comctl32.dll makes 27px high toolbar. Side-by-side comparison (combined image - all buttons hovered): http://www.polosatus.ru/wine/toptoolbar.sidebyside.png On this image you can clearly see that builtin comctl buttons are narrower than native and there is some glitch with bottom line - dark rebar frame is only 29 px high somehow.
2.2. Left toolbar is a bit broken: there is a text input that displays page/chapter number and there are also up/down buttons. Image (combined, all buttons hovered): http://www.polosatus.ru/wine/lefttoolbar.sidebyside.png The problems are: 2.2.1. Up button is placed behind the text input. It is still clicable and still works, but it is clearly misplaced. 2.2.2. All buttons on that panel are not square. Their height is bigger than width. 2.2.3. Bitmaps on these buttons are misplaced. All of them are not centered, but moved a bit to right.
At the moment I do not create new bug, since I think that these problems are related.