Author: stippi Date: Tue May 4 22:36:04 2010 New Revision: 486 URL: http://mmlr.dyndns.org/changeset/486 Log: * 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. Modified: webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.cpp webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.h webkit/trunk/WebKit/haiku/WebPositive/SettingsKeys.cpp webkit/trunk/WebKit/haiku/WebPositive/SettingsKeys.h webkit/trunk/WebKit/haiku/WebPositive/SettingsWindow.cpp webkit/trunk/WebKit/haiku/WebPositive/SettingsWindow.h Modified: webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.cpp ============================================================================== --- webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.cpp Tue May 4 21:54:10 2010 (r485) +++ webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.cpp Tue May 4 22:36:04 2010 (r486) @@ -197,6 +197,7 @@ 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 @@ 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 @@ 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 @@ } 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 @@ fURLInputGroup->MakeFocus(true); } + _ShowInterface(true); _UpdateTabGroupVisibility(); } @@ -1302,8 +1299,10 @@ 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 @@ 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 @@ 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( Modified: webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.h ============================================================================== --- webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.h Tue May 4 21:54:10 2010 (r485) +++ webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.h Tue May 4 22:36:04 2010 (r486) @@ -193,7 +193,6 @@ BMenuItem* fFindNextMenuItem; BMenuItem* fZoomTextOnlyMenuItem; BMenuItem* fFullscreenItem; - BMenuItem* fAutoHideInterfaceInFullscreenItem; BMenuItem* fBackMenuItem; BMenuItem* fForwardMenuItem; @@ -216,6 +215,7 @@ TabManager* fTabManager; bool fIsFullscreen; + bool fInterfaceVisible; BRect fNonFullscreenWindowFrame; BMessageRunner* fPulseRunner; uint32 fVisibleInterfaceElements; Modified: webkit/trunk/WebKit/haiku/WebPositive/SettingsKeys.cpp ============================================================================== --- webkit/trunk/WebKit/haiku/WebPositive/SettingsKeys.cpp Tue May 4 21:54:10 2010 (r485) +++ webkit/trunk/WebKit/haiku/WebPositive/SettingsKeys.cpp Tue May 4 22:36:04 2010 (r486) @@ -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* 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"; Modified: webkit/trunk/WebKit/haiku/WebPositive/SettingsKeys.h ============================================================================== --- webkit/trunk/WebKit/haiku/WebPositive/SettingsKeys.h Tue May 4 21:54:10 2010 (r485) +++ webkit/trunk/WebKit/haiku/WebPositive/SettingsKeys.h Tue May 4 22:36:04 2010 (r486) @@ -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* kSettingsKeyProxyAddress; extern const char* kSettingsKeyProxyPort; -extern const char* kAutoHideInterfaceInFullscreenMode; - #endif // SETTINGS_KEYS_H Modified: webkit/trunk/WebKit/haiku/WebPositive/SettingsWindow.cpp ============================================================================== --- webkit/trunk/WebKit/haiku/WebPositive/SettingsWindow.cpp Tue May 4 21:54:10 2010 (r485) +++ webkit/trunk/WebKit/haiku/WebPositive/SettingsWindow.cpp Tue May 4 22:36:04 2010 (r486) @@ -70,6 +70,7 @@ 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 @@ 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 @@ 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 @@ .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 @@ 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 @@ 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 @@ fSettings->GetValue(kSettingsKeyDownloadPath, kDefaultDownloadPath)); fShowTabsIfOnlyOnePage->SetValue( fSettings->GetValue(kSettingsKeyShowTabsIfSinglePageOpen, true)); + fAutoHideInterfaceInFullscreenMode->SetValue( + fSettings->GetValue(kSettingsKeyAutoHideInterfaceInFullscreenMode, + false)); BString text; text << BrowsingHistory::DefaultInstance()->MaxHistoryItemAge(); Modified: webkit/trunk/WebKit/haiku/WebPositive/SettingsWindow.h ============================================================================== --- webkit/trunk/WebKit/haiku/WebPositive/SettingsWindow.h Tue May 4 21:54:10 2010 (r485) +++ webkit/trunk/WebKit/haiku/WebPositive/SettingsWindow.h Tue May 4 22:36:04 2010 (r486) @@ -96,6 +96,7 @@ BTextControl* fDaysInHistoryMenuControl; BCheckBox* fShowTabsIfOnlyOnePage; + BCheckBox* fAutoHideInterfaceInFullscreenMode; FontSelectionView* fStandardFontView; FontSelectionView* fSerifFontView;