Hi, is there anything wrong with the patch? To explain it briefly in case it's not clear why it's needed:
1) UpdateLayeredWindow sets data->layered to TRUE.
2) Before the commit that regressed, set_window_pos was called after the driver's UpdateLayeredWindow.
3) So when set_window_pos called the driver's WindowPosChanged, it saw data->layered == TRUE and mapped the window.
Now, since the regression commit, set_window_pos is called *before* the driver's UpdateLayeredWindow. This causes WindowPosChanged to be *possibly* called when data->layered == FALSE, even though it will be set to TRUE in UpdateLayeredWindow.
So we have to map it in UpdateLayeredWindow now, if it's still not mapped yet and the other conditions hold.