Skip to content

Commit affd625

Browse files
authored
fix menubar on windows (scp-fs2open#7351)
1 parent 43a475a commit affd625

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

qtfred/src/ui/FredView.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -803,6 +803,14 @@ bool FredView::event(QEvent* event) {
803803
return QMainWindow::event(event);
804804
}
805805
}
806+
void FredView::changeEvent(QEvent* event) {
807+
QMainWindow::changeEvent(event);
808+
// Force menubar repaint when reenabled after a modal dialog closes.
809+
// Without this, menu items stay grey until the user mouses over them.
810+
if (event->type() == QEvent::EnabledChange && isEnabled()) {
811+
menuBar()->update();
812+
}
813+
}
806814
void FredView::closeEvent(QCloseEvent* event) {
807815
if (!maybePromptToSaveMissionChanges(tr("closing QtFRED"))) {
808816
event->ignore();
@@ -817,6 +825,7 @@ void FredView::windowActivated() {
817825
// Track the last active viewport
818826
fred->setActiveViewport(_viewport);
819827

828+
menuBar()->update();
820829
viewWindowActivated();
821830
}
822831
void FredView::windowDeactivated() {

qtfred/src/ui/FredView.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ class FredView: public QMainWindow, public IDialogProvider {
170170
void viewWindowActivated();
171171
protected:
172172
bool event(QEvent* event) override;
173+
void changeEvent(QEvent* event) override;
173174
void closeEvent(QCloseEvent* event) override;
174175

175176
void keyPressEvent(QKeyEvent* event) override;

0 commit comments

Comments
 (0)