WebPositive: let escape close the menu.

* Intercept the escape key to mean "stop loading" only when menus are
closed.
This commit is contained in:
Adrien Destugues
2014-04-15 09:17:56 +02:00
parent 8df3fb7035
commit 3eff063958
2 changed files with 12 additions and 1 deletions
+10 -1
View File
@@ -334,6 +334,7 @@ BrowserWindow::BrowserWindow(BRect frame, SettingsMessage* appSettings,
B_AUTO_UPDATE_SIZE_LIMITS | B_ASYNCHRONOUS_CONTROLS),
fIsFullscreen(false),
fInterfaceVisible(false),
fMenusRunning(false),
fPulseRunner(NULL),
fVisibleInterfaceElements(interfaceElements),
fContext(context),
@@ -707,7 +708,7 @@ BrowserWindow::DispatchMessage(BMessage* message, BHandler* target)
_InvokeButtonVisibly(fFindCloseButton);
return;
}
} else if (bytes[0] == B_ESCAPE) {
} else if (bytes[0] == B_ESCAPE && !fMenusRunning) {
if (modifierKeys == B_COMMAND_KEY)
_ShowInterface(true);
else {
@@ -1125,6 +1126,14 @@ BrowserWindow::MenusBeginning()
{
_UpdateHistoryMenu();
_UpdateClipboardItems();
fMenusRunning = true;
}
void
BrowserWindow::MenusEnded()
{
fMenusRunning = false;
}
+2
View File
@@ -103,6 +103,7 @@ public:
virtual void MessageReceived(BMessage* message);
virtual bool QuitRequested();
virtual void MenusBeginning();
virtual void MenusEnded();
virtual void ScreenChanged(BRect screenSize,
color_space format);
@@ -246,6 +247,7 @@ private:
bool fIsFullscreen;
bool fInterfaceVisible;
bool fMenusRunning;
BRect fNonFullscreenWindowFrame;
BMessageRunner* fPulseRunner;
uint32 fVisibleInterfaceElements;