equal
deleted
inserted
replaced
1 /**************************************************************************** |
1 /**************************************************************************** |
2 ** |
2 ** |
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). |
3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). |
4 ** All rights reserved. |
4 ** All rights reserved. |
5 ** Contact: Nokia Corporation (qt-info@nokia.com) |
5 ** Contact: Nokia Corporation (qt-info@nokia.com) |
6 ** |
6 ** |
7 ** This file is part of the QtGui module of the Qt Toolkit. |
7 ** This file is part of the QtGui module of the Qt Toolkit. |
8 ** |
8 ** |
173 ret |= NSShiftKeyMask; |
173 ret |= NSShiftKeyMask; |
174 #endif |
174 #endif |
175 return ret; |
175 return ret; |
176 } |
176 } |
177 |
177 |
|
178 static void cancelAllMenuTracking() |
|
179 { |
|
180 #ifdef QT_MAC_USE_COCOA |
|
181 QMacCocoaAutoReleasePool pool; |
|
182 NSMenu *mainMenu = [NSApp mainMenu]; |
|
183 [mainMenu cancelTracking]; |
|
184 for (NSMenuItem *item in [mainMenu itemArray]) { |
|
185 if ([item submenu]) { |
|
186 [[item submenu] cancelTracking]; |
|
187 } |
|
188 } |
|
189 #else |
|
190 CancelMenuTracking(AcquireRootMenu(), true, 0); |
|
191 #endif |
|
192 } |
|
193 |
178 static bool actualMenuItemVisibility(const QMenuBarPrivate::QMacMenuBarPrivate *mbp, |
194 static bool actualMenuItemVisibility(const QMenuBarPrivate::QMacMenuBarPrivate *mbp, |
179 const QMacMenuAction *action) |
195 const QMacMenuAction *action) |
180 { |
196 { |
181 bool visible = action->action->isVisible(); |
197 bool visible = action->action->isVisible(); |
182 if (visible && action->action->text() == QString(QChar(0x14))) |
198 if (visible && action->action->text() == QString(QChar(0x14))) |
1828 QWidget *tlw = q->window(); |
1844 QWidget *tlw = q->window(); |
1829 menubars()->remove(tlw); |
1845 menubars()->remove(tlw); |
1830 mac_menubar = 0; |
1846 mac_menubar = 0; |
1831 |
1847 |
1832 if (qt_mac_current_menubar.qmenubar == q) { |
1848 if (qt_mac_current_menubar.qmenubar == q) { |
|
1849 #ifdef QT_MAC_USE_COCOA |
|
1850 QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *loader = getMenuLoader(); |
|
1851 [loader removeActionsFromAppMenu]; |
|
1852 #else |
|
1853 cancelAllMenuTracking(); |
|
1854 #endif |
1833 extern void qt_event_request_menubarupdate(); //qapplication_mac.cpp |
1855 extern void qt_event_request_menubarupdate(); //qapplication_mac.cpp |
1834 qt_event_request_menubarupdate(); |
1856 qt_event_request_menubarupdate(); |
1835 } |
1857 } |
1836 } |
1858 } |
1837 |
1859 |
1929 } |
1951 } |
1930 |
1952 |
1931 // INVARIANT: modalWidget is window modal. Disable menu entries |
1953 // INVARIANT: modalWidget is window modal. Disable menu entries |
1932 // if the menu bar belongs to an ancestor of modalWidget: |
1954 // if the menu bar belongs to an ancestor of modalWidget: |
1933 return qt_mac_is_ancestor(menuBar->parentWidget(), modalWidget); |
1955 return qt_mac_is_ancestor(menuBar->parentWidget(), modalWidget); |
1934 } |
|
1935 |
|
1936 static void cancelAllMenuTracking() |
|
1937 { |
|
1938 #ifdef QT_MAC_USE_COCOA |
|
1939 QMacCocoaAutoReleasePool pool; |
|
1940 NSMenu *mainMenu = [NSApp mainMenu]; |
|
1941 [mainMenu cancelTracking]; |
|
1942 for (NSMenuItem *item in [mainMenu itemArray]) { |
|
1943 if ([item submenu]) { |
|
1944 [[item submenu] cancelTracking]; |
|
1945 } |
|
1946 } |
|
1947 #endif |
|
1948 } |
1956 } |
1949 |
1957 |
1950 /*! |
1958 /*! |
1951 \internal |
1959 \internal |
1952 |
1960 |