EXP-1275 FIX A UI element or Keyboard shortcut to clear the viewport

Ctrl+Shift+U now toggles UI and hides floaters
refactored main_view.xml
made all members of llviewerwindow private
master
Richard Linden 2011-10-11 22:49:00 -07:00
parent fd1a688f46
commit d0cda13235
15 changed files with 161 additions and 169 deletions

View File

@ -1731,7 +1731,7 @@ void LLMenuGL::setCanTearOff(BOOL tear_off)
{
LLMenuItemTearOffGL::Params p;
mTearOffItem = LLUICtrlFactory::create<LLMenuItemTearOffGL>(p);
addChildInBack(mTearOffItem);
addChild(mTearOffItem);
}
else if (!tear_off && mTearOffItem != NULL)
{

View File

@ -1217,7 +1217,7 @@ bool LLAppViewer::mainLoop()
if (gViewerWindow)
{
LLFastTimer t2(FTM_MESSAGES);
gViewerWindow->mWindow->processMiscNativeEvents();
gViewerWindow->getWindow()->processMiscNativeEvents();
}
pingMainloopTimeout("Main:GatherInput");
@ -1230,7 +1230,7 @@ bool LLAppViewer::mainLoop()
llwarns << " Someone took over my signal/exception handler (post messagehandling)!" << llendl;
}
gViewerWindow->mWindow->gatherInput();
gViewerWindow->getWindow()->gatherInput();
}
#if 1 && !LL_RELEASE_FOR_DOWNLOAD
@ -1259,9 +1259,9 @@ bool LLAppViewer::mainLoop()
// Scan keyboard for movement keys. Command keys and typing
// are handled by windows callbacks. Don't do this until we're
// done initializing. JC
if ((gHeadlessClient || gViewerWindow->mWindow->getVisible())
if ((gHeadlessClient || gViewerWindow->getWindow()->getVisible())
&& gViewerWindow->getActive()
&& !gViewerWindow->mWindow->getMinimized()
&& !gViewerWindow->getWindow()->getMinimized()
&& LLStartUp::getStartupState() == STATE_STARTED
&& (gHeadlessClient || !gViewerWindow->getShowProgress())
&& !gFocusMgr.focusLocked())
@ -1340,7 +1340,7 @@ bool LLAppViewer::mainLoop()
}
// yield cooperatively when not running as foreground window
if ( (gViewerWindow && !gViewerWindow->mWindow->getVisible())
if ( (gViewerWindow && !gViewerWindow->getWindow()->getVisible())
|| !gFocusMgr.getAppHasFocus())
{
// Sleep if we're not rendering, or the window is minimized.
@ -2920,7 +2920,7 @@ bool LLAppViewer::initWindow()
if (gSavedSettings.getBOOL("WindowMaximized"))
{
gViewerWindow->mWindow->maximize();
gViewerWindow->getWindow()->maximize();
}
//
@ -2963,7 +2963,7 @@ bool LLAppViewer::initWindow()
if (gSavedSettings.getBOOL("WindowMaximized"))
{
gViewerWindow->mWindow->maximize();
gViewerWindow->getWindow()->maximize();
}
LLUI::sWindow = gViewerWindow->getWindow();
@ -2975,7 +2975,7 @@ bool LLAppViewer::initWindow()
gViewerWindow->initBase();
// show viewer window
//gViewerWindow->mWindow->show();
//gViewerWindow->getWindow()->show();
LL_INFOS("AppInit") << "Window initialization done." << LL_ENDL;
return true;
@ -3009,12 +3009,12 @@ void LLAppViewer::cleanupSavedSettings()
// as we don't track it in callbacks
if(NULL != gViewerWindow)
{
BOOL maximized = gViewerWindow->mWindow->getMaximized();
BOOL maximized = gViewerWindow->getWindow()->getMaximized();
if (!maximized)
{
LLCoordScreen window_pos;
if (gViewerWindow->mWindow->getPosition(&window_pos))
if (gViewerWindow->getWindow()->getPosition(&window_pos))
{
gSavedSettings.setS32("WindowX", window_pos.mX);
gSavedSettings.setS32("WindowY", window_pos.mY);

View File

@ -217,12 +217,12 @@ OSStatus LLDirPicker::doNavChooseDialog()
error = NavCreateChooseFolderDialog(&mNavOptions, &doNavCallbackEvent, NULL, NULL, &navRef);
gViewerWindow->mWindow->beforeDialog();
gViewerWindow->getWindow()->beforeDialog();
if (error == noErr)
error = NavDialogRun(navRef);
gViewerWindow->mWindow->afterDialog();
gViewerWindow->getWindow()->afterDialog();
if (error == noErr)
error = NavDialogGetReply(navRef, &navReply);

View File

@ -653,12 +653,12 @@ OSStatus LLFilePicker::doNavChooseDialog(ELoadFilter filter)
// (It is destroyed by NavDialogDispose() below.)
error = NavCreateChooseFileDialog(&mNavOptions, NULL, NULL, NULL, navOpenFilterProc, (void*)(&filter), &navRef);
gViewerWindow->mWindow->beforeDialog();
gViewerWindow->getWindow()->beforeDialog();
if (error == noErr)
error = NavDialogRun(navRef);
gViewerWindow->mWindow->afterDialog();
gViewerWindow->getWindow()->afterDialog();
if (error == noErr)
error = NavDialogGetReply(navRef, &navReply);
@ -808,13 +808,13 @@ OSStatus LLFilePicker::doNavSaveDialog(ESaveFilter filter, const std::string& fi
}
}
gViewerWindow->mWindow->beforeDialog();
gViewerWindow->getWindow()->beforeDialog();
// Run the dialog
if (error == noErr)
error = NavDialogRun(navRef);
gViewerWindow->mWindow->afterDialog();
gViewerWindow->getWindow()->afterDialog();
if (error == noErr)
error = NavDialogGetReply(navRef, &navReply);
@ -1204,7 +1204,7 @@ BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename
return FALSE;
}
gViewerWindow->mWindow->beforeDialog();
gViewerWindow->getWindow()->beforeDialog();
reset();
@ -1284,7 +1284,7 @@ BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename
rtn = (getFileCount() == 1);
}
gViewerWindow->mWindow->afterDialog();
gViewerWindow->getWindow()->afterDialog();
return rtn;
}
@ -1299,7 +1299,7 @@ BOOL LLFilePicker::getOpenFile( ELoadFilter filter, bool blocking )
return FALSE;
}
gViewerWindow->mWindow->beforeDialog();
gViewerWindow->getWindow()->beforeDialog();
reset();
@ -1337,7 +1337,7 @@ BOOL LLFilePicker::getOpenFile( ELoadFilter filter, bool blocking )
rtn = (getFileCount() == 1);
}
gViewerWindow->mWindow->afterDialog();
gViewerWindow->getWindow()->afterDialog();
return rtn;
}
@ -1352,7 +1352,7 @@ BOOL LLFilePicker::getMultipleOpenFiles( ELoadFilter filter )
return FALSE;
}
gViewerWindow->mWindow->beforeDialog();
gViewerWindow->getWindow()->beforeDialog();
reset();
@ -1370,7 +1370,7 @@ BOOL LLFilePicker::getMultipleOpenFiles( ELoadFilter filter )
rtn = !mFiles.empty();
}
gViewerWindow->mWindow->afterDialog();
gViewerWindow->getWindow()->afterDialog();
return rtn;
}

View File

@ -1185,7 +1185,7 @@ void LLItemBridge::performAction(LLInventoryModel* model, std::string action)
std::string buffer;
asset_id.toString(buffer);
gViewerWindow->mWindow->copyTextToClipboard(utf8str_to_wstring(buffer));
gViewerWindow->getWindow()->copyTextToClipboard(utf8str_to_wstring(buffer));
return;
}
else if ("copy" == action)

View File

@ -413,7 +413,7 @@ void LLLandmarkActions::copySLURLtoClipboard(const LLUUID& landmarkInventoryItem
void copy_slurl_to_clipboard_callback(const std::string& slurl)
{
gViewerWindow->mWindow->copyTextToClipboard(utf8str_to_wstring(slurl));
gViewerWindow->getWindow()->copyTextToClipboard(utf8str_to_wstring(slurl));
LLSD args;
args["SLURL"] = slurl;
LLNotificationsUtil::add("CopySLURL", args);

View File

@ -456,3 +456,10 @@ void LLToolBarView::onEndDrag()
}
stopDragTool();
}
void LLToolBarView::setToolBarsVisible(bool visible)
{
mToolbarBottom->getParent()->setVisible(visible);
mToolbarLeft->getParent()->setVisible(visible);
mToolbarRight->getParent()->setVisible(visible);
}

View File

@ -72,6 +72,8 @@ public:
// Loads the toolbars from the existing user or default settings
bool loadToolbars(bool force_default = false); // return false if load fails
void setToolBarsVisible(bool visible);
static bool loadDefaultToolbars();
static void startDragTool( S32 x, S32 y, const LLUUID& uuid);

View File

@ -56,7 +56,7 @@ void LLToolGun::handleSelect()
{
gViewerWindow->hideCursor();
gViewerWindow->moveCursorToCenter();
gViewerWindow->mWindow->setMouseClipping(TRUE);
gViewerWindow->getWindow()->setMouseClipping(TRUE);
mIsSelected = TRUE;
}
@ -64,7 +64,7 @@ void LLToolGun::handleDeselect()
{
gViewerWindow->moveCursorToCenter();
gViewerWindow->showCursor();
gViewerWindow->mWindow->setMouseClipping(FALSE);
gViewerWindow->getWindow()->setMouseClipping(FALSE);
mIsSelected = FALSE;
}

View File

@ -114,8 +114,8 @@ void render_disconnected_background();
void display_startup()
{
if ( !gViewerWindow->getActive()
|| !gViewerWindow->mWindow->getVisible()
|| gViewerWindow->mWindow->getMinimized() )
|| !gViewerWindow->getWindow()->getVisible()
|| gViewerWindow->getWindow()->getMinimized() )
{
return;
}
@ -157,7 +157,7 @@ void display_startup()
LLGLState::checkStates();
LLGLState::checkTextureChannels();
gViewerWindow->mWindow->swapBuffers();
gViewerWindow->getWindow()->swapBuffers();
glClear(GL_DEPTH_BUFFER_BIT);
}
@ -223,7 +223,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
{ //skip render on frames where window has been resized
gGL.flush();
glClear(GL_COLOR_BUFFER_BIT);
gViewerWindow->mWindow->swapBuffers();
gViewerWindow->getWindow()->swapBuffers();
gPipeline.resizeScreenTexture();
gResizeScreenTexture = FALSE;
gWindowResized = FALSE;
@ -260,8 +260,8 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
// In fact, must explicitly check the minimized state before drawing.
// Attempting to draw into a minimized window causes a GL error. JC
if ( !gViewerWindow->getActive()
|| !gViewerWindow->mWindow->getVisible()
|| gViewerWindow->mWindow->getMinimized() )
|| !gViewerWindow->getWindow()->getVisible()
|| gViewerWindow->getWindow()->getMinimized() )
{
// Clean up memory the pools may have allocated
if (rebuild)
@ -1237,7 +1237,7 @@ void render_ui(F32 zoom_factor, int subfield)
if (gDisplaySwapBuffers)
{
LLFastTimer t(FTM_SWAP);
gViewerWindow->mWindow->swapBuffers();
gViewerWindow->getWindow()->swapBuffers();
}
gDisplaySwapBuffers = TRUE;
}

View File

@ -446,11 +446,13 @@ void init_menus()
{
color = LLUIColorTable::instance().getColor( "MenuNonProductionBgColor" );
}
gMenuBarView = LLUICtrlFactory::getInstance()->createFromFile<LLMenuBarGL>("menu_viewer.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
gMenuBarView->setRect(LLRect(0, top, 0, top - MENU_BAR_HEIGHT));
gMenuBarView->setBackgroundColor( color );
LLView* menu_bar_holder = gViewerWindow->getRootView()->getChildView("menu_bar_holder");
gMenuBarView = LLUICtrlFactory::getInstance()->createFromFile<LLMenuBarGL>("menu_viewer.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
gMenuBarView->setRect(LLRect(0, menu_bar_holder->getRect().mTop, 0, menu_bar_holder->getRect().mTop - MENU_BAR_HEIGHT));
gMenuBarView->setBackgroundColor( color );
menu_bar_holder->addChild(gMenuBarView);
gViewerWindow->setMenuBackgroundColor(false,
@ -3762,6 +3764,15 @@ class LLViewDefaultUISize : public view_listener_t
}
};
class LLViewToggleUI : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
gViewerWindow->setUIVisibility(!gViewerWindow->getUIVisibility());
return true;
}
};
class LLEditDuplicate : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
@ -7926,6 +7937,7 @@ void initialize_menus()
view_listener_t::addMenu(new LLZoomer(1/1.2f), "View.ZoomIn");
view_listener_t::addMenu(new LLZoomer(DEFAULT_FIELD_OF_VIEW, false), "View.ZoomDefault");
view_listener_t::addMenu(new LLViewDefaultUISize(), "View.DefaultUISize");
view_listener_t::addMenu(new LLViewToggleUI(), "View.ToggleUI");
view_listener_t::addMenu(new LLViewEnableMouselook(), "View.EnableMouselook");
view_listener_t::addMenu(new LLViewEnableJoystickFlycam(), "View.EnableJoystickFlycam");

View File

@ -76,7 +76,6 @@
#include "lltimer.h"
#include "timing.h"
#include "llviewermenu.h"
#include "lltoolbarview.h"
#include "lltooltip.h"
#include "llmediaentry.h"
#include "llurldispatcher.h"
@ -147,6 +146,7 @@
#include "lltexturefetch.h"
#include "lltextureview.h"
#include "lltool.h"
#include "lltoolbarview.h"
#include "lltoolcomp.h"
#include "lltooldraganddrop.h"
#include "lltoolface.h"
@ -1339,7 +1339,7 @@ BOOL LLViewerWindow::handleActivate(LLWindow *window, BOOL activated)
{
if (activated)
{
mActive = TRUE;
mActive = true;
send_agent_resume();
gAgent.clearAFK();
@ -1348,7 +1348,7 @@ BOOL LLViewerWindow::handleActivate(LLWindow *window, BOOL activated)
}
else
{
mActive = FALSE;
mActive = false;
// if the user has chosen to go Away automatically after some time, then go Away when minimizing
if (gSavedSettings.getS32("AFKTimeout"))
@ -1531,7 +1531,8 @@ LLViewerWindow::LLViewerWindow(
BOOL fullscreen, BOOL ignore_pixel_depth) // fullscreen is no longer used
:
mWindow(NULL),
mActive(TRUE),
mActive(true),
mUIVisible(true),
mWindowRectRaw(0, height, width, 0),
mWindowRectScaled(0, height, width, 0),
mWorldViewRectRaw(0, height, width, 0),
@ -1771,7 +1772,6 @@ void LLViewerWindow::initBase()
// placeholder widget that controls where "world" is rendered
mWorldViewPlaceholder = main_view->getChildView("world_view_rect")->getHandle();
mFloaterViewHolder = main_view->getChildView("floater_view_holder")->getHandle();
mPopupView = main_view->getChild<LLPopupView>("popup_holder");
mHintHolder = main_view->getChild<LLView>("hint_holder")->getHandle();
mLoginPanelHolder = main_view->getChild<LLView>("login_panel_holder")->getHandle();
@ -1882,7 +1882,7 @@ void LLViewerWindow::initWorldUI()
gStatusBar->setShape(status_bar_container->getLocalRect());
// sync bg color with menu bar
gStatusBar->setBackgroundColor( gMenuBarView->getBackgroundColor().get() );
status_bar_container->addChild(gStatusBar);
status_bar_container->addChildInBack(gStatusBar);
status_bar_container->setVisible(TRUE);
// Navigation bar
@ -1922,8 +1922,7 @@ void LLViewerWindow::initWorldUI()
hud_rect.mTop -= gMenuBarView->getRect().getHeight();
}
gHUDView = new LLHUDView(hud_rect);
// put behind everything else in the UI
getRootView()->addChildInBack(gHUDView);
getRootView()->addChild(gHUDView);
}
LLPanel* panel_ssf_container = getRootView()->getChild<LLPanel>("stand_stop_flying_container");
@ -4084,7 +4083,7 @@ static S32 BORDERWIDTH = 0;
void LLViewerWindow::movieSize(S32 new_width, S32 new_height)
{
LLCoordScreen size;
gViewerWindow->mWindow->getSize(&size);
gViewerWindow->getWindow()->getSize(&size);
if ( (size.mX != new_width + BORDERWIDTH)
||(size.mY != new_height + BORDERHEIGHT))
{
@ -4095,7 +4094,7 @@ void LLViewerWindow::movieSize(S32 new_width, S32 new_height)
BORDERHEIGHT = size.mY- y;
LLCoordScreen new_size(new_width + BORDERWIDTH,
new_height + BORDERHEIGHT);
gViewerWindow->mWindow->setSize(new_size);
gViewerWindow->getWindow()->setSize(new_size);
}
}
@ -4979,6 +4978,29 @@ bool LLViewerWindow::onAlert(const LLSD& notify)
return false;
}
void LLViewerWindow::setUIVisibility(bool visible)
{
mUIVisible = visible;
if (gToolBarView)
{
gToolBarView->setToolBarsVisible(visible);
}
mRootView->getChildView("nav_bar_container")->setVisible(visible);
mRootView->getChildView("status_bar_container")->setVisible(visible);
if (!visible)
{
gFloaterView->closeAllChildren(false);
}
}
bool LLViewerWindow::getUIVisibility()
{
return mUIVisible;
}
////////////////////////////////////////////////////////////////////////////
//
// LLPickInfo

View File

@ -143,6 +143,8 @@ public:
void adjustRectanglesForFirstUse(const LLRect& window);
void adjustControlRectanglesForFirstUse(const LLRect& window);
void initWorldUI();
void setUIVisibility(bool);
bool getUIVisibility();
BOOL handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK mask, LLMouseHandler::EClickType clicktype, BOOL down);
@ -282,7 +284,6 @@ public:
void updateKeyboardFocus();
void updateWorldViewRect(bool use_full_window=false);
LLView* getFloaterViewHolder() { return mFloaterViewHolder.get(); }
LLView* getToolBarHolder() { return mToolBarHolder.get(); }
LLView* getHintHolder() { return mHintHolder.get(); }
LLView* getLoginPanelHolder() { return mLoginPanelHolder.get(); }
@ -394,11 +395,10 @@ private:
S32 getChatConsoleBottomPad(); // Vertical padding for child console rect, varied by bottom clutter
LLRect getChatConsoleRect(); // Get optimal cosole rect.
public:
private:
LLWindow* mWindow; // graphical window object
protected:
BOOL mActive;
bool mActive;
bool mUIVisible;
LLRect mWindowRectRaw; // whole window, including UI
LLRect mWindowRectScaled; // whole window, scaled by UI size
@ -444,7 +444,6 @@ protected:
std::string mInitAlert; // Window / GL initialization requires an alert
LLHandle<LLView> mWorldViewPlaceholder; // widget that spans the portion of screen dedicated to rendering the 3d world
LLHandle<LLView> mFloaterViewHolder; // container for floater_view
LLHandle<LLView> mToolBarHolder; // container for toolbars
LLHandle<LLView> mHintHolder; // container for hints
LLHandle<LLView> mLoginPanelHolder; // container for login panel
@ -458,13 +457,11 @@ protected:
boost::scoped_ptr<LLViewerWindowListener> mViewerWindowListener;
protected:
static std::string sSnapshotBaseName;
static std::string sSnapshotDir;
static std::string sMovieBaseName;
private:
// Object temporarily hovered over while dragging
LLPointer<LLViewerObject> mDragHoveredObject;
};

View File

@ -8,98 +8,71 @@
tab_stop="false"
name="main_view"
width="1024">
<view top="0"
follows="all"
height="768"
left="0"
mouse_opaque="false"
name="world_view_rect"
width="1024"/>
<layout_stack border_size="0"
follows="all"
mouse_opaque="false"
height="749"
height="768"
name="menu_stack"
orientation="vertical"
top="19">
top="0">
<layout_panel mouse_opaque="false"
follows="left|right|top"
name="status_bar_container"
tab_stop="false"
height="19"
left="0"
top="0"
width="1024"
user_resize="false"
auto_resize="false"
visible="true">
<view mouse_opaque="false"
follows="all"
name="menu_bar_holder"
left="0"
top="0"
width="1024"
height="19"/>
</layout_panel>
<layout_panel auto_resize="false"
height="34"
mouse_opaque="false"
name="nav_bar_container"
tab_stop="false"
width="1024"
user_resize="false"
visible="false">
</layout_panel>
<layout_panel auto_resize="true"
user_resize="false"
visible="false"/>
<layout_panel auto_resize="true"
follows="all"
height="500"
layout="topleft"
mouse_opaque="false"
tab_stop="false"
name="hud"
name="world_panel"
width="1024">
<layout_stack border_size="0"
follows="all"
height="500"
left="0"
mouse_opaque="false"
name="hud_stack"
orientation="horizontal"
top="0"
width="1024">
<layout_panel auto_resize="true"
follows="all"
height="500"
layout="topleft"
mouse_opaque="false"
tab_stop="false"
name="non_side_tray_view"
user_resize="false"
width="500">
<view bottom="500"
follows="all"
height="500"
left="0"
mouse_opaque="false"
name="world_view_rect"
width="500"/>
<layout_stack border_size="0"
bottom="500"
follows="all"
height="500"
left="0"
mouse_opaque="false"
name="world_stack"
orientation="vertical">
<layout_panel auto_resize="true"
follows="all"
height="500"
layout="topleft"
tab_stop="false"
mouse_opaque="false"
user_resize="false"
name="hud container"
width="500">
<panel follows="left|top"
height="19"
left="0"
mouse_opaque="false"
name="topinfo_bar_container"
tab_stop="false"
top="0"
visible="false"
width="1024"/>
</layout_panel>
<!--<layout_panel auto_resize="false"
min_height="33"
height="33"
mouse_opaque="false"
name="bottom_tray_container"
visible="false"/>-->
</layout_stack>
</layout_panel>
</layout_stack>
<panel follows="left|top|right"
height="19"
left="0"
mouse_opaque="false"
name="topinfo_bar_container"
tab_stop="false"
top="0"
visible="false"
width="1024"/>
<panel top="0"
follows="all"
height="500"
mouse_opaque="false"
name="login_panel_holder"
width="1024"/>
left="0"
follows="all"
height="500"
mouse_opaque="false"
name="login_panel_holder"
width="1024"/>
<debug_view follows="all"
left="0"
top="0"
@ -107,55 +80,27 @@
height="500"
name="DebugView"
width="1024"/>
<panel follows="all"
<floater_view follows="all"
height="500"
left="0"
mouse_opaque="false"
name="floater_view_holder"
name="Floater View"
tab_group="-1"
tab_stop="false"
top="0"
width="1024">
<floater_view follows="all"
height="500"
left="0"
mouse_opaque="false"
name="Floater View"
tab_group="-1"
tab_stop="false"
top="0"
width="1024"/>
</panel>
width="1024"/>
<panel name="toolbar_view_holder"
follows="all"
layout="topleft"
height="500"
width="1024"
top="0"
left="0"
mouse_opaque="false"
tab_stop="false">
</panel>
follows="all"
layout="topleft"
height="500"
width="1024"
top="0"
left="0"
mouse_opaque="false"
tab_stop="false"/>
</layout_panel>
</layout_stack>
<panel mouse_opaque="false"
follows="left|right|top"
name="status_bar_container"
tab_stop="false"
height="19"
left="0"
top="0"
width="1024"
visible="false"/>
<view mouse_opaque="false"
follows="all"
name="menu_bar_holder"
left="0"
top="0"
width="1024"
height="768"/>
<panel top="0"
follows="all"
mouse_opaque="false"

View File

@ -1719,6 +1719,13 @@
<menu_item_call.on_click
function="View.DefaultUISize" />
</menu_item_call>
<menu_item_call
label="Toggle UI"
name="Toggle UI"
shortcut="control|shift|U">
<menu_item_call.on_click
function="View.ToggleUI" />
</menu_item_call>
<!-- This second, alternative shortcut for Show Advanced Menu is for backward compatibility. The main shortcut has been changed so it's Linux-friendly, where the old shortcut is typically eaten by the window manager. -->
<menu_item_check
label="Show Advanced Menu - legacy shortcut"