* 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:
committed by
Alexandre Deckner
parent
c2227feb1e
commit
ea40bbf2d1
@@ -197,6 +197,7 @@ BrowserWindow::BrowserWindow(BRect frame, SettingsMessage* appSettings,
|
|||||||
B_DOCUMENT_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL,
|
B_DOCUMENT_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL,
|
||||||
B_AUTO_UPDATE_SIZE_LIMITS | B_ASYNCHRONOUS_CONTROLS),
|
B_AUTO_UPDATE_SIZE_LIMITS | B_ASYNCHRONOUS_CONTROLS),
|
||||||
fIsFullscreen(false),
|
fIsFullscreen(false),
|
||||||
|
fInterfaceVisible(false),
|
||||||
fPulseRunner(NULL),
|
fPulseRunner(NULL),
|
||||||
fVisibleInterfaceElements(interfaceElements),
|
fVisibleInterfaceElements(interfaceElements),
|
||||||
fAppSettings(appSettings),
|
fAppSettings(appSettings),
|
||||||
@@ -290,11 +291,6 @@ BrowserWindow::BrowserWindow(BRect frame, SettingsMessage* appSettings,
|
|||||||
fFullscreenItem = new BMenuItem("Fullscreen",
|
fFullscreenItem = new BMenuItem("Fullscreen",
|
||||||
new BMessage(TOGGLE_FULLSCREEN), B_RETURN);
|
new BMessage(TOGGLE_FULLSCREEN), B_RETURN);
|
||||||
menu->AddItem(fFullscreenItem);
|
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);
|
mainMenu->AddItem(menu);
|
||||||
|
|
||||||
fHistoryMenu = new BMenu("History");
|
fHistoryMenu = new BMenu("History");
|
||||||
@@ -433,7 +429,7 @@ BrowserWindow::BrowserWindow(BRect frame, SettingsMessage* appSettings,
|
|||||||
CreateNewTab(url, true, webView);
|
CreateNewTab(url, true, webView);
|
||||||
_ShowInterface(true);
|
_ShowInterface(true);
|
||||||
_SetAutoHideInterfaceInFullscreen(fAppSettings->GetValue(
|
_SetAutoHideInterfaceInFullscreen(fAppSettings->GetValue(
|
||||||
kAutoHideInterfaceInFullscreenMode,
|
kSettingsKeyAutoHideInterfaceInFullscreenMode,
|
||||||
fAutoHideInterfaceInFullscreenMode));
|
fAutoHideInterfaceInFullscreenMode));
|
||||||
|
|
||||||
AddShortcut('F', B_COMMAND_KEY | B_SHIFT_KEY, new BMessage(EDIT_HIDE_FIND_GROUP));
|
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
|
} else if (name == kSettingsKeyNewTabPolicy
|
||||||
&& message->FindUInt32("value", &value) == B_OK) {
|
&& message->FindUInt32("value", &value) == B_OK) {
|
||||||
fNewTabPolicy = value;
|
fNewTabPolicy = value;
|
||||||
} else if (name == kAutoHideInterfaceInFullscreenMode
|
} else if (name == kSettingsKeyAutoHideInterfaceInFullscreenMode
|
||||||
&& message->FindBool("value", &flag) == B_OK) {
|
&& message->FindBool("value", &flag) == B_OK) {
|
||||||
_SetAutoHideInterfaceInFullscreen(flag);
|
_SetAutoHideInterfaceInFullscreen(flag);
|
||||||
}
|
}
|
||||||
@@ -956,6 +952,7 @@ BrowserWindow::CreateNewTab(const BString& _url, bool select, BWebView* webView)
|
|||||||
fURLInputGroup->MakeFocus(true);
|
fURLInputGroup->MakeFocus(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_ShowInterface(true);
|
||||||
_UpdateTabGroupVisibility();
|
_UpdateTabGroupVisibility();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1302,8 +1299,10 @@ void
|
|||||||
BrowserWindow::_UpdateTabGroupVisibility()
|
BrowserWindow::_UpdateTabGroupVisibility()
|
||||||
{
|
{
|
||||||
if (Lock()) {
|
if (Lock()) {
|
||||||
fTabGroup->SetVisible(fShowTabsIfSinglePageOpen
|
if (fInterfaceVisible) {
|
||||||
|| fTabManager->CountTabs() > 1);
|
fTabGroup->SetVisible(fShowTabsIfSinglePageOpen
|
||||||
|
|| fTabManager->CountTabs() > 1);
|
||||||
|
}
|
||||||
fTabManager->SetCloseButtonsAvailable(fTabManager->CountTabs() > 1);
|
fTabManager->SetCloseButtonsAvailable(fTabManager->CountTabs() > 1);
|
||||||
Unlock();
|
Unlock();
|
||||||
}
|
}
|
||||||
@@ -1813,10 +1812,10 @@ BrowserWindow::_SetAutoHideInterfaceInFullscreen(bool doIt)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
fAutoHideInterfaceInFullscreenMode = doIt;
|
fAutoHideInterfaceInFullscreenMode = doIt;
|
||||||
fAutoHideInterfaceInFullscreenItem->SetMarked(doIt);
|
if (fAppSettings->GetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
|
||||||
if (fAppSettings->GetValue(kAutoHideInterfaceInFullscreenMode, doIt)
|
doIt) != doIt) {
|
||||||
!= doIt) {
|
fAppSettings->SetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
|
||||||
fAppSettings->SetValue(kAutoHideInterfaceInFullscreenMode, doIt);
|
doIt);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fAutoHideInterfaceInFullscreenMode) {
|
if (fAutoHideInterfaceInFullscreenMode) {
|
||||||
@@ -1858,13 +1857,19 @@ BrowserWindow::_CheckAutoHideInterface()
|
|||||||
void
|
void
|
||||||
BrowserWindow::_ShowInterface(bool show)
|
BrowserWindow::_ShowInterface(bool show)
|
||||||
{
|
{
|
||||||
|
if (fInterfaceVisible == show)
|
||||||
|
return;
|
||||||
|
|
||||||
|
fInterfaceVisible = show;
|
||||||
|
|
||||||
if (show) {
|
if (show) {
|
||||||
#if !INTEGRATE_MENU_INTO_TAB_BAR
|
#if !INTEGRATE_MENU_INTO_TAB_BAR
|
||||||
fMenuGroup->SetVisible(
|
fMenuGroup->SetVisible(
|
||||||
(fVisibleInterfaceElements & INTERFACE_ELEMENT_MENU) != 0);
|
(fVisibleInterfaceElements & INTERFACE_ELEMENT_MENU) != 0);
|
||||||
#endif
|
#endif
|
||||||
fTabGroup->SetVisible(
|
fTabGroup->SetVisible((fShowTabsIfSinglePageOpen
|
||||||
(fVisibleInterfaceElements & INTERFACE_ELEMENT_TABS) != 0);
|
|| fTabManager->CountTabs() > 1)
|
||||||
|
&& (fVisibleInterfaceElements & INTERFACE_ELEMENT_TABS) != 0);
|
||||||
fNavigationGroup->SetVisible(
|
fNavigationGroup->SetVisible(
|
||||||
(fVisibleInterfaceElements & INTERFACE_ELEMENT_NAVIGATION) != 0);
|
(fVisibleInterfaceElements & INTERFACE_ELEMENT_NAVIGATION) != 0);
|
||||||
fStatusGroup->SetVisible(
|
fStatusGroup->SetVisible(
|
||||||
|
|||||||
@@ -193,7 +193,6 @@ private:
|
|||||||
BMenuItem* fFindNextMenuItem;
|
BMenuItem* fFindNextMenuItem;
|
||||||
BMenuItem* fZoomTextOnlyMenuItem;
|
BMenuItem* fZoomTextOnlyMenuItem;
|
||||||
BMenuItem* fFullscreenItem;
|
BMenuItem* fFullscreenItem;
|
||||||
BMenuItem* fAutoHideInterfaceInFullscreenItem;
|
|
||||||
BMenuItem* fBackMenuItem;
|
BMenuItem* fBackMenuItem;
|
||||||
BMenuItem* fForwardMenuItem;
|
BMenuItem* fForwardMenuItem;
|
||||||
|
|
||||||
@@ -216,6 +215,7 @@ private:
|
|||||||
TabManager* fTabManager;
|
TabManager* fTabManager;
|
||||||
|
|
||||||
bool fIsFullscreen;
|
bool fIsFullscreen;
|
||||||
|
bool fInterfaceVisible;
|
||||||
BRect fNonFullscreenWindowFrame;
|
BRect fNonFullscreenWindowFrame;
|
||||||
BMessageRunner* fPulseRunner;
|
BMessageRunner* fPulseRunner;
|
||||||
uint32 fVisibleInterfaceElements;
|
uint32 fVisibleInterfaceElements;
|
||||||
|
|||||||
@@ -30,6 +30,8 @@
|
|||||||
const char* kSettingsKeyDownloadPath = "download path";
|
const char* kSettingsKeyDownloadPath = "download path";
|
||||||
const char* kSettingsKeyShowTabsIfSinglePageOpen
|
const char* kSettingsKeyShowTabsIfSinglePageOpen
|
||||||
= "show tabs if single page open";
|
= "show tabs if single page open";
|
||||||
|
const char* kSettingsKeyAutoHideInterfaceInFullscreenMode
|
||||||
|
= "auto hide interface in full screen mode";
|
||||||
|
|
||||||
const char* kSettingsKeyNewWindowPolicy = "new window policy";
|
const char* kSettingsKeyNewWindowPolicy = "new window policy";
|
||||||
const char* kSettingsKeyNewTabPolicy = "new tab 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* kSettingsKeyUseProxy = "use http proxy";
|
||||||
const char* kSettingsKeyProxyAddress = "http proxy address";
|
const char* kSettingsKeyProxyAddress = "http proxy address";
|
||||||
const char* kSettingsKeyProxyPort = "http proxy port";
|
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* kSettingsKeyDownloadPath;
|
||||||
extern const char* kSettingsKeyShowTabsIfSinglePageOpen;
|
extern const char* kSettingsKeyShowTabsIfSinglePageOpen;
|
||||||
|
extern const char* kSettingsKeyAutoHideInterfaceInFullscreenMode;
|
||||||
|
|
||||||
extern const char* kSettingsKeyNewWindowPolicy;
|
extern const char* kSettingsKeyNewWindowPolicy;
|
||||||
extern const char* kSettingsKeyNewTabPolicy;
|
extern const char* kSettingsKeyNewTabPolicy;
|
||||||
@@ -46,6 +47,4 @@ extern const char* kSettingsKeyUseProxy;
|
|||||||
extern const char* kSettingsKeyProxyAddress;
|
extern const char* kSettingsKeyProxyAddress;
|
||||||
extern const char* kSettingsKeyProxyPort;
|
extern const char* kSettingsKeyProxyPort;
|
||||||
|
|
||||||
extern const char* kAutoHideInterfaceInFullscreenMode;
|
|
||||||
|
|
||||||
#endif // SETTINGS_KEYS_H
|
#endif // SETTINGS_KEYS_H
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ enum {
|
|||||||
MSG_NEW_TABS_BEHAVIOR_CHANGED = 'ntbc',
|
MSG_NEW_TABS_BEHAVIOR_CHANGED = 'ntbc',
|
||||||
MSG_HISTORY_MENU_DAYS_CHANGED = 'digm',
|
MSG_HISTORY_MENU_DAYS_CHANGED = 'digm',
|
||||||
MSG_TAB_DISPLAY_BEHAVIOR_CHANGED = 'tdbc',
|
MSG_TAB_DISPLAY_BEHAVIOR_CHANGED = 'tdbc',
|
||||||
|
MSG_AUTO_HIDE_BEHAVIOR_CHANGED = 'ahbc',
|
||||||
|
|
||||||
MSG_STANDARD_FONT_CHANGED = 'stfc',
|
MSG_STANDARD_FONT_CHANGED = 'stfc',
|
||||||
MSG_SERIF_FONT_CHANGED = 'sefc',
|
MSG_SERIF_FONT_CHANGED = 'sefc',
|
||||||
@@ -195,6 +196,7 @@ SettingsWindow::MessageReceived(BMessage* message)
|
|||||||
case MSG_NEW_TABS_BEHAVIOR_CHANGED:
|
case MSG_NEW_TABS_BEHAVIOR_CHANGED:
|
||||||
case MSG_HISTORY_MENU_DAYS_CHANGED:
|
case MSG_HISTORY_MENU_DAYS_CHANGED:
|
||||||
case MSG_TAB_DISPLAY_BEHAVIOR_CHANGED:
|
case MSG_TAB_DISPLAY_BEHAVIOR_CHANGED:
|
||||||
|
case MSG_AUTO_HIDE_BEHAVIOR_CHANGED:
|
||||||
case MSG_STANDARD_FONT_CHANGED:
|
case MSG_STANDARD_FONT_CHANGED:
|
||||||
case MSG_SERIF_FONT_CHANGED:
|
case MSG_SERIF_FONT_CHANGED:
|
||||||
case MSG_SANS_SERIF_FONT_CHANGED:
|
case MSG_SANS_SERIF_FONT_CHANGED:
|
||||||
@@ -311,6 +313,11 @@ SettingsWindow::_CreateGeneralPage(float spacing)
|
|||||||
new BMessage(MSG_TAB_DISPLAY_BEHAVIOR_CHANGED));
|
new BMessage(MSG_TAB_DISPLAY_BEHAVIOR_CHANGED));
|
||||||
fShowTabsIfOnlyOnePage->SetValue(B_CONTROL_ON);
|
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)
|
BView* view = BGroupLayoutBuilder(B_VERTICAL, spacing / 2)
|
||||||
.Add(BGridLayoutBuilder(spacing / 2, spacing / 2)
|
.Add(BGridLayoutBuilder(spacing / 2, spacing / 2)
|
||||||
.Add(fStartPageControl->CreateLabelLayoutItem(), 0, 0)
|
.Add(fStartPageControl->CreateLabelLayoutItem(), 0, 0)
|
||||||
@@ -332,6 +339,7 @@ SettingsWindow::_CreateGeneralPage(float spacing)
|
|||||||
.Add(new BSeparatorView(B_HORIZONTAL, B_PLAIN_BORDER))
|
.Add(new BSeparatorView(B_HORIZONTAL, B_PLAIN_BORDER))
|
||||||
.Add(BSpaceLayoutItem::CreateHorizontalStrut(spacing))
|
.Add(BSpaceLayoutItem::CreateHorizontalStrut(spacing))
|
||||||
.Add(fShowTabsIfOnlyOnePage)
|
.Add(fShowTabsIfOnlyOnePage)
|
||||||
|
.Add(fAutoHideInterfaceInFullscreenMode)
|
||||||
.Add(fDaysInHistoryMenuControl)
|
.Add(fDaysInHistoryMenuControl)
|
||||||
.Add(BSpaceLayoutItem::CreateHorizontalStrut(spacing))
|
.Add(BSpaceLayoutItem::CreateHorizontalStrut(spacing))
|
||||||
|
|
||||||
@@ -499,6 +507,11 @@ SettingsWindow::_CanApplySettings() const
|
|||||||
canApply = canApply || ((fShowTabsIfOnlyOnePage->Value() == B_CONTROL_ON)
|
canApply = canApply || ((fShowTabsIfOnlyOnePage->Value() == B_CONTROL_ON)
|
||||||
!= fSettings->GetValue(kSettingsKeyShowTabsIfSinglePageOpen, true));
|
!= fSettings->GetValue(kSettingsKeyShowTabsIfSinglePageOpen, true));
|
||||||
|
|
||||||
|
canApply = canApply || (
|
||||||
|
(fAutoHideInterfaceInFullscreenMode->Value() == B_CONTROL_ON)
|
||||||
|
!= fSettings->GetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
|
||||||
|
false));
|
||||||
|
|
||||||
canApply = canApply || (_MaxHistoryAge()
|
canApply = canApply || (_MaxHistoryAge()
|
||||||
!= BrowsingHistory::DefaultInstance()->MaxHistoryItemAge());
|
!= BrowsingHistory::DefaultInstance()->MaxHistoryItemAge());
|
||||||
|
|
||||||
@@ -560,6 +573,8 @@ SettingsWindow::_ApplySettings()
|
|||||||
fSettings->SetValue(kSettingsKeyDownloadPath, fDownloadFolderControl->Text());
|
fSettings->SetValue(kSettingsKeyDownloadPath, fDownloadFolderControl->Text());
|
||||||
fSettings->SetValue(kSettingsKeyShowTabsIfSinglePageOpen,
|
fSettings->SetValue(kSettingsKeyShowTabsIfSinglePageOpen,
|
||||||
fShowTabsIfOnlyOnePage->Value() == B_CONTROL_ON);
|
fShowTabsIfOnlyOnePage->Value() == B_CONTROL_ON);
|
||||||
|
fSettings->SetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
|
||||||
|
fAutoHideInterfaceInFullscreenMode->Value() == B_CONTROL_ON);
|
||||||
|
|
||||||
// New page policies
|
// New page policies
|
||||||
fSettings->SetValue(kSettingsKeyNewWindowPolicy, _NewWindowPolicy());
|
fSettings->SetValue(kSettingsKeyNewWindowPolicy, _NewWindowPolicy());
|
||||||
@@ -622,6 +637,9 @@ SettingsWindow::_RevertSettings()
|
|||||||
fSettings->GetValue(kSettingsKeyDownloadPath, kDefaultDownloadPath));
|
fSettings->GetValue(kSettingsKeyDownloadPath, kDefaultDownloadPath));
|
||||||
fShowTabsIfOnlyOnePage->SetValue(
|
fShowTabsIfOnlyOnePage->SetValue(
|
||||||
fSettings->GetValue(kSettingsKeyShowTabsIfSinglePageOpen, true));
|
fSettings->GetValue(kSettingsKeyShowTabsIfSinglePageOpen, true));
|
||||||
|
fAutoHideInterfaceInFullscreenMode->SetValue(
|
||||||
|
fSettings->GetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode,
|
||||||
|
false));
|
||||||
|
|
||||||
BString text;
|
BString text;
|
||||||
text << BrowsingHistory::DefaultInstance()->MaxHistoryItemAge();
|
text << BrowsingHistory::DefaultInstance()->MaxHistoryItemAge();
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ private:
|
|||||||
|
|
||||||
BTextControl* fDaysInHistoryMenuControl;
|
BTextControl* fDaysInHistoryMenuControl;
|
||||||
BCheckBox* fShowTabsIfOnlyOnePage;
|
BCheckBox* fShowTabsIfOnlyOnePage;
|
||||||
|
BCheckBox* fAutoHideInterfaceInFullscreenMode;
|
||||||
|
|
||||||
FontSelectionView* fStandardFontView;
|
FontSelectionView* fStandardFontView;
|
||||||
FontSelectionView* fSerifFontView;
|
FontSelectionView* fSerifFontView;
|
||||||
|
|||||||
Reference in New Issue
Block a user