Opened 12 years ago
Closed 12 years ago
#8700 closed bug (fixed)
SoundPlay missing buttons
Reported by: | Disreali | Owned by: | jscipione |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | Kits/Interface Kit | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Attachments (1)
Change History (14)
by , 12 years ago
Attachment: | hrev44270_Soundplay_has_no_buttons.png added |
---|
comment:1 by , 12 years ago
comment:2 by , 12 years ago
Component: | - General → Kits/Interface Kit |
---|---|
Owner: | changed from | to
comment:3 by , 12 years ago
Can you try installing an older liblayout and see if they come back? http://www.haiku-files.org/files/optional-packages/liblayout-1.4.0-gcc2-2009-03-08.zip Let us know if this fixes it.
comment:7 by , 12 years ago
comment:11 by , 12 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
So it seems something in hrev44039 broke this, perhaps it can be fixed soon?
comment:12 by , 12 years ago
Soundplay expects the clipping constraints of the view to be ignored when drawing it's buttons. hrev44039 takes the view's clipping constraints into account in the following code:
// get the clipping constraints for the view BRegion clipping; view->GetClippingRegion(&clipping); // intersect constraints with updateRect BRegion updateClipping(updateRect); clipping.IntersectWith(&updateClipping); // clip to the intersection view->ConstrainClippingRegion(&clipping);
Ignoring the clipping constraints of the view like in the following code fixes this bug but also breaks new code that assumes the the clipping constraints of the view will be honored.
// clip to updateRect view->ConstrainClippingRegion(&updateRect);
Respecting the clipping constraints of the view seems like the more correct thing to do, but, since SoundPlay depends on the clipping constraints of the view being ignored when drawing it's buttons we need to also ignore them and then fix the code that depends on the clipping constrains of the view being set, most notably the code that draws the Return key in Keymap Preferences.
It is also a good idea to preserve the existing clipping constrains of the view by surrounding the button drawing code with PushState() and PopState() calls like this:
view->PushState() ... view->PopState()
If nobody wants to tackle this I'll work on a fix shortly.
comment:13 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
I updated the button drawing code to preserve but not use the parent view's clipping constraints which fixes this bug but breaks the drawing of the return key in Keymap and then re-wrote the drawing code of the return key to work again in hrev44708.
This is still an issue with the most recent builds of Haiku (hrevr1alpha4-44577)!