* 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:
stippi
2012-07-03 15:44:09 +02:00
committed by Alexandre Deckner
parent c2227feb1e
commit ea40bbf2d1
6 changed files with 43 additions and 21 deletions
+20 -15
View File
@@ -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(
+1 -1
View File
@@ -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;
+2 -3
View File
@@ -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";
+1 -2
View File
@@ -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
+18
View File
@@ -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();
+1
View File
@@ -96,6 +96,7 @@ private:
BTextControl* fDaysInHistoryMenuControl; BTextControl* fDaysInHistoryMenuControl;
BCheckBox* fShowTabsIfOnlyOnePage; BCheckBox* fShowTabsIfOnlyOnePage;
BCheckBox* fAutoHideInterfaceInFullscreenMode;
FontSelectionView* fStandardFontView; FontSelectionView* fStandardFontView;
FontSelectionView* fSerifFontView; FontSelectionView* fSerifFontView;