mirror of
https://review.haiku-os.org/haiku
synced 2025-02-22 21:48:35 +01:00
* Moved "Auto-hide" menu item into Settings window, as a check box along the
"show tabs if single page only" option. * Fixed problems with showing tabs when opening new tabs while the interface was hidden. Introduced a new flag which tracks the hidden state to make this easier. git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@486 94f232f2-1747-11df-bad5-a5bfde151594
This commit is contained in:
parent
c2227feb1e
commit
ea40bbf2d1
@ -197,6 +197,7 @@ BrowserWindow::BrowserWindow(BRect frame, SettingsMessage* appSettings,
|
||||
B_DOCUMENT_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL,
|
||||
B_AUTO_UPDATE_SIZE_LIMITS | B_ASYNCHRONOUS_CONTROLS),
|
||||
fIsFullscreen(false),
|
||||
fInterfaceVisible(false),
|
||||
fPulseRunner(NULL),
|
||||
fVisibleInterfaceElements(interfaceElements),
|
||||
fAppSettings(appSettings),
|
||||
@ -290,11 +291,6 @@ BrowserWindow::BrowserWindow(BRect frame, SettingsMessage* appSettings,
|
||||
fFullscreenItem = new BMenuItem("Fullscreen",
|
||||
new BMessage(TOGGLE_FULLSCREEN), B_RETURN);
|
||||
menu->AddItem(fFullscreenItem);
|
||||
fAutoHideInterfaceInFullscreenItem = new BMenuItem("Auto hide interface "
|
||||
"in fullscreen mode",
|
||||
new BMessage(TOGGLE_AUTO_HIDE_INTERFACE_IN_FULLSCREEN));
|
||||
menu->AddItem(fAutoHideInterfaceInFullscreenItem);
|
||||
|
||||
mainMenu->AddItem(menu);
|
||||
|
||||
fHistoryMenu = new BMenu("History");
|
||||
@ -433,7 +429,7 @@ BrowserWindow::BrowserWindow(BRect frame, SettingsMessage* appSettings,
|
||||
CreateNewTab(url, true, webView);
|
||||
_ShowInterface(true);
|
||||
_SetAutoHideInterfaceInFullscreen(fAppSettings->GetValue(
|
||||
kAutoHideInterfaceInFullscreenMode,
|
||||
kSettingsKeyAutoHideInterfaceInFullscreenMode,
|
||||
fAutoHideInterfaceInFullscreenMode));
|
||||
|
||||
AddShortcut('F', B_COMMAND_KEY | B_SHIFT_KEY, new BMessage(EDIT_HIDE_FIND_GROUP));
|
||||
@ -786,7 +782,7 @@ BrowserWindow::MessageReceived(BMessage* message)
|
||||
} else if (name == kSettingsKeyNewTabPolicy
|
||||
&& message->FindUInt32("value", &value) == B_OK) {
|
||||
fNewTabPolicy = value;
|
||||
} else if (name == kAutoHideInterfaceInFullscreenMode
|
||||
} else if (name == kSettingsKeyAutoHideInterfaceInFullscreenMode
|
||||
&& message->FindBool("value", &flag) == B_OK) {
|
||||
_SetAutoHideInterfaceInFullscreen(flag);
|
||||
}
|
||||
@ -956,6 +952,7 @@ BrowserWindow::CreateNewTab(const BString& _url, bool select, BWebView* webView)
|
||||
fURLInputGroup->MakeFocus(true);
|
||||
}
|
||||
|
||||
_ShowInterface(true);
|
||||
_UpdateTabGroupVisibility();
|
||||
}
|
||||
|
||||
@ -1302,8 +1299,10 @@ void
|
||||
BrowserWindow::_UpdateTabGroupVisibility()
|
||||
{
|
||||
if (Lock()) {
|
||||
fTabGroup->SetVisible(fShowTabsIfSinglePageOpen
|
||||
|| fTabManager->CountTabs() > 1);
|
||||
if (fInterfaceVisible) {
|
||||
fTabGroup->SetVisible(fShowTabsIfSinglePageOpen
|
||||
|| fTabManager->CountTabs() > 1);
|
||||
}
|
||||
fTabManager->SetCloseButtonsAvailable(fTabManager->CountTabs() > 1);
|
||||
Unlock();
|
||||
}
|
||||
@ -1813,10 +1812,10 @@ BrowserWindow::_SetAutoHideInterfaceInFullscreen(bool doIt)
|
||||
return;
|
||||
|
||||
fAutoHideInterfaceInFullscreenMode = doIt;
|
||||
fAutoHideInterfaceInFullscreenItem->SetMarked(doIt);
|
||||
if (fAppSettings->GetValue(kAutoHideInterfaceInFullscreenMode, doIt)
|
||||
!= doIt) {
|
||||
fAppSettings->SetValue(kAutoHideInterfaceInFullscreenMode, doIt);
|
||||
if (fAppSettings->GetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
|
||||
doIt) != doIt) {
|
||||
fAppSettings->SetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
|
||||
doIt);
|
||||
}
|
||||
|
||||
if (fAutoHideInterfaceInFullscreenMode) {
|
||||
@ -1858,13 +1857,19 @@ BrowserWindow::_CheckAutoHideInterface()
|
||||
void
|
||||
BrowserWindow::_ShowInterface(bool show)
|
||||
{
|
||||
if (fInterfaceVisible == show)
|
||||
return;
|
||||
|
||||
fInterfaceVisible = show;
|
||||
|
||||
if (show) {
|
||||
#if !INTEGRATE_MENU_INTO_TAB_BAR
|
||||
fMenuGroup->SetVisible(
|
||||
(fVisibleInterfaceElements & INTERFACE_ELEMENT_MENU) != 0);
|
||||
#endif
|
||||
fTabGroup->SetVisible(
|
||||
(fVisibleInterfaceElements & INTERFACE_ELEMENT_TABS) != 0);
|
||||
fTabGroup->SetVisible((fShowTabsIfSinglePageOpen
|
||||
|| fTabManager->CountTabs() > 1)
|
||||
&& (fVisibleInterfaceElements & INTERFACE_ELEMENT_TABS) != 0);
|
||||
fNavigationGroup->SetVisible(
|
||||
(fVisibleInterfaceElements & INTERFACE_ELEMENT_NAVIGATION) != 0);
|
||||
fStatusGroup->SetVisible(
|
||||
|
@ -193,7 +193,6 @@ private:
|
||||
BMenuItem* fFindNextMenuItem;
|
||||
BMenuItem* fZoomTextOnlyMenuItem;
|
||||
BMenuItem* fFullscreenItem;
|
||||
BMenuItem* fAutoHideInterfaceInFullscreenItem;
|
||||
BMenuItem* fBackMenuItem;
|
||||
BMenuItem* fForwardMenuItem;
|
||||
|
||||
@ -216,6 +215,7 @@ private:
|
||||
TabManager* fTabManager;
|
||||
|
||||
bool fIsFullscreen;
|
||||
bool fInterfaceVisible;
|
||||
BRect fNonFullscreenWindowFrame;
|
||||
BMessageRunner* fPulseRunner;
|
||||
uint32 fVisibleInterfaceElements;
|
||||
|
@ -30,6 +30,8 @@
|
||||
const char* kSettingsKeyDownloadPath = "download path";
|
||||
const char* kSettingsKeyShowTabsIfSinglePageOpen
|
||||
= "show tabs if single page open";
|
||||
const char* kSettingsKeyAutoHideInterfaceInFullscreenMode
|
||||
= "auto hide interface in full screen mode";
|
||||
|
||||
const char* kSettingsKeyNewWindowPolicy = "new window policy";
|
||||
const char* kSettingsKeyNewTabPolicy = "new tab policy";
|
||||
@ -45,6 +47,3 @@ const char* kDefaultSearchPageURL = "http://www.google.com";
|
||||
const char* kSettingsKeyUseProxy = "use http proxy";
|
||||
const char* kSettingsKeyProxyAddress = "http proxy address";
|
||||
const char* kSettingsKeyProxyPort = "http proxy port";
|
||||
|
||||
const char* kAutoHideInterfaceInFullscreenMode
|
||||
= "auto hide interface in full screen mode";
|
||||
|
@ -32,6 +32,7 @@
|
||||
|
||||
extern const char* kSettingsKeyDownloadPath;
|
||||
extern const char* kSettingsKeyShowTabsIfSinglePageOpen;
|
||||
extern const char* kSettingsKeyAutoHideInterfaceInFullscreenMode;
|
||||
|
||||
extern const char* kSettingsKeyNewWindowPolicy;
|
||||
extern const char* kSettingsKeyNewTabPolicy;
|
||||
@ -46,6 +47,4 @@ extern const char* kSettingsKeyUseProxy;
|
||||
extern const char* kSettingsKeyProxyAddress;
|
||||
extern const char* kSettingsKeyProxyPort;
|
||||
|
||||
extern const char* kAutoHideInterfaceInFullscreenMode;
|
||||
|
||||
#endif // SETTINGS_KEYS_H
|
||||
|
@ -70,6 +70,7 @@ enum {
|
||||
MSG_NEW_TABS_BEHAVIOR_CHANGED = 'ntbc',
|
||||
MSG_HISTORY_MENU_DAYS_CHANGED = 'digm',
|
||||
MSG_TAB_DISPLAY_BEHAVIOR_CHANGED = 'tdbc',
|
||||
MSG_AUTO_HIDE_BEHAVIOR_CHANGED = 'ahbc',
|
||||
|
||||
MSG_STANDARD_FONT_CHANGED = 'stfc',
|
||||
MSG_SERIF_FONT_CHANGED = 'sefc',
|
||||
@ -195,6 +196,7 @@ SettingsWindow::MessageReceived(BMessage* message)
|
||||
case MSG_NEW_TABS_BEHAVIOR_CHANGED:
|
||||
case MSG_HISTORY_MENU_DAYS_CHANGED:
|
||||
case MSG_TAB_DISPLAY_BEHAVIOR_CHANGED:
|
||||
case MSG_AUTO_HIDE_BEHAVIOR_CHANGED:
|
||||
case MSG_STANDARD_FONT_CHANGED:
|
||||
case MSG_SERIF_FONT_CHANGED:
|
||||
case MSG_SANS_SERIF_FONT_CHANGED:
|
||||
@ -311,6 +313,11 @@ SettingsWindow::_CreateGeneralPage(float spacing)
|
||||
new BMessage(MSG_TAB_DISPLAY_BEHAVIOR_CHANGED));
|
||||
fShowTabsIfOnlyOnePage->SetValue(B_CONTROL_ON);
|
||||
|
||||
fAutoHideInterfaceInFullscreenMode = new BCheckBox("auto-hide interface",
|
||||
TR("Auto-hide interface in fullscreen mode."),
|
||||
new BMessage(MSG_AUTO_HIDE_BEHAVIOR_CHANGED));
|
||||
fAutoHideInterfaceInFullscreenMode->SetValue(B_CONTROL_OFF);
|
||||
|
||||
BView* view = BGroupLayoutBuilder(B_VERTICAL, spacing / 2)
|
||||
.Add(BGridLayoutBuilder(spacing / 2, spacing / 2)
|
||||
.Add(fStartPageControl->CreateLabelLayoutItem(), 0, 0)
|
||||
@ -332,6 +339,7 @@ SettingsWindow::_CreateGeneralPage(float spacing)
|
||||
.Add(new BSeparatorView(B_HORIZONTAL, B_PLAIN_BORDER))
|
||||
.Add(BSpaceLayoutItem::CreateHorizontalStrut(spacing))
|
||||
.Add(fShowTabsIfOnlyOnePage)
|
||||
.Add(fAutoHideInterfaceInFullscreenMode)
|
||||
.Add(fDaysInHistoryMenuControl)
|
||||
.Add(BSpaceLayoutItem::CreateHorizontalStrut(spacing))
|
||||
|
||||
@ -499,6 +507,11 @@ SettingsWindow::_CanApplySettings() const
|
||||
canApply = canApply || ((fShowTabsIfOnlyOnePage->Value() == B_CONTROL_ON)
|
||||
!= fSettings->GetValue(kSettingsKeyShowTabsIfSinglePageOpen, true));
|
||||
|
||||
canApply = canApply || (
|
||||
(fAutoHideInterfaceInFullscreenMode->Value() == B_CONTROL_ON)
|
||||
!= fSettings->GetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
|
||||
false));
|
||||
|
||||
canApply = canApply || (_MaxHistoryAge()
|
||||
!= BrowsingHistory::DefaultInstance()->MaxHistoryItemAge());
|
||||
|
||||
@ -560,6 +573,8 @@ SettingsWindow::_ApplySettings()
|
||||
fSettings->SetValue(kSettingsKeyDownloadPath, fDownloadFolderControl->Text());
|
||||
fSettings->SetValue(kSettingsKeyShowTabsIfSinglePageOpen,
|
||||
fShowTabsIfOnlyOnePage->Value() == B_CONTROL_ON);
|
||||
fSettings->SetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
|
||||
fAutoHideInterfaceInFullscreenMode->Value() == B_CONTROL_ON);
|
||||
|
||||
// New page policies
|
||||
fSettings->SetValue(kSettingsKeyNewWindowPolicy, _NewWindowPolicy());
|
||||
@ -622,6 +637,9 @@ SettingsWindow::_RevertSettings()
|
||||
fSettings->GetValue(kSettingsKeyDownloadPath, kDefaultDownloadPath));
|
||||
fShowTabsIfOnlyOnePage->SetValue(
|
||||
fSettings->GetValue(kSettingsKeyShowTabsIfSinglePageOpen, true));
|
||||
fAutoHideInterfaceInFullscreenMode->SetValue(
|
||||
fSettings->GetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
|
||||
false));
|
||||
|
||||
BString text;
|
||||
text << BrowsingHistory::DefaultInstance()->MaxHistoryItemAge();
|
||||
|
@ -96,6 +96,7 @@ private:
|
||||
|
||||
BTextControl* fDaysInHistoryMenuControl;
|
||||
BCheckBox* fShowTabsIfOnlyOnePage;
|
||||
BCheckBox* fAutoHideInterfaceInFullscreenMode;
|
||||
|
||||
FontSelectionView* fStandardFontView;
|
||||
FontSelectionView* fSerifFontView;
|
||||
|
Loading…
x
Reference in New Issue
Block a user