menu Bar display bug under mac osx 10.10 Yosemite
-
I'm testing a preexisting shipping Qt application in Apple's new Yosemite osx 10.10 developer golden master release that is built using the Qt 4.6 framework.
There is a cosmetic bug associated with the main menu bar now when running this Qt based app on the Yosemite golden master release.
If you run a modal dialog, then after you finish with the modal dialog and close it, the main mac menu bar at the top of the screen stays hidden. The normal behavior is that it vanishes while the modal dialog is up, and then returns to view after the modal dialog is finished.So, i tried a simple fix, where i call
menuBar()->update();
after the modal dialog is finished.This fixes the cosmetic problem.
Until you run one of the standard file dialogs, like
QFileDialog::getOpenFileName()While the standard file dialogs are modal, they are different than a normal Qt modal dialog on the mac in that the menu bar stays visible at the top of the screen. And they basically just call the mac's own standard file dialogs as opposed to running some Qt modal dialog window.
After you run any of the standard file dialogs, then the simple fix i mentioned above no longer works.
The main menu bar items stay hidden after the modal dialog is finished. Even after using the simple fix, which does work until you run one of the standard file dialogs.Now if you click the mouse in the main menu bar, then the menus appear in view.
but obviously i need to figure out a way to fix this issue completely.Does anyone have any idea what is going on, and how to fix this bug?
I really need to stay with the older version of the Qt frameworks we are using for this existing application.
So i need to figure out a way to solve the problem.
Obviously running the standard file dialogs does something that permanently from that point on prevents the menuBar update call from working after they are run.It would seem like other existing Qt applications are going to run into this issue as well.
Any suggestions or help on fixing this issue would be greatly appreciated.
Both for me, and for other people running the 4.6 frameworks on their pre-existing Qt based applications on osx 10.10 Yosemite. -
Hi,
Just to be sure, are you really talking about 4.6 and not 4.8.6 ?
-
Yes, this existing Qt based application uses quicktime api calls that are carbon based and works very nicely with the older Qt 4.6.2 framework. We also have a perpetual commercial license for it. So if possible, we'd like to keep using this Qt version, which is older, but other wise works fine.
-
I understand the reasons, but still, Apple did some subtle changes with Mavericks that might break other things in such an old version. Also AFAIK, you can still build Qt 4.8.6 with Carbon.
Anyway, the best way to confirm that you have found a bug would be to provide a minimal compilable example so other people can try to reproduce it with the same code as you.