Changes between Initial Version and Version 1 of Ticket #5468, comment 7


Ignore:
Timestamp:
Mar 25, 2020, 6:15:40 PM (5 years ago)
Author:
jscipione

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #5468, comment 7

    initial v1  
    1 I'm afraid that this bug cannot be fixed without changing how messages work unfortunately. There's no way for us to guarantee that a Draw() call will happen after a FrameResized() call without implementing a transaction. Most of the time it works but without a guarantee that messages will arrive in a certain order there are race conditions that pop-up now and then. This is a design flaw and was as much a problem on BeOS as it is on Haiku fundamentally. I've also observed that sliders sometimes don't send the message (or the receiver never get it.) For example in Deskbar preferences when you click to change the slider value, occasionally the icons don't resize and we end up in an invalid state. This is not a fault of the Deskbar code but is a bug somewhere deeper in the messaging system. I'm not sure if this bug is related to this one or not.
     1I'm afraid that this bug cannot be fixed without changing how messages work unfortunately. There's no way for us to guarantee that a Draw() call will happen after a FrameResized() call without implementing a transaction. Most of the time it works but without a guarantee that messages will arrive in a certain order there are race conditions that pop-up now and then. This is a design flaw and was as much a problem on BeOS as it is on Haiku fundamentally. I've also observed that sliders sometimes don't send the message (or the receiver never get it.) For example in Deskbar preferences when you click to change the slider value, occasionally the icons don't resize and we end up in an invalid state. This is not a fault of the Deskbar code but is a bug somewhere deeper in the messaging system. I'm not sure if that bug is related to this one or not.