[haiku-webkit-commits] r486 - webkit/trunk/WebKit/haiku/WebPositive

  • From: webkit@xxxxxxxxxxxxxxx
  • To: haiku-webkit-commits@xxxxxxxxxxxxx
  • Date: Tue, 04 May 2010 22:36:04 +0000

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;

Other related posts:

  • » [haiku-webkit-commits] r486 - webkit/trunk/WebKit/haiku/WebPositive - webkit