OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/gtk/browser_window_gtk.h" | 5 #include "chrome/browser/gtk/browser_window_gtk.h" |
6 | 6 |
7 #include <gdk/gdkkeysyms.h> | 7 #include <gdk/gdkkeysyms.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 845 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
856 | 856 |
857 void BrowserWindowGtk::FocusChromeOSStatus() { | 857 void BrowserWindowGtk::FocusChromeOSStatus() { |
858 NOTIMPLEMENTED(); | 858 NOTIMPLEMENTED(); |
859 } | 859 } |
860 | 860 |
861 void BrowserWindowGtk::RotatePaneFocus(bool forwards) { | 861 void BrowserWindowGtk::RotatePaneFocus(bool forwards) { |
862 NOTIMPLEMENTED(); | 862 NOTIMPLEMENTED(); |
863 } | 863 } |
864 | 864 |
865 bool BrowserWindowGtk::IsBookmarkBarVisible() const { | 865 bool BrowserWindowGtk::IsBookmarkBarVisible() const { |
866 return IsBookmarkBarSupported() && bookmark_bar_.get() && | 866 return browser_->SupportsWindowFeature(Browser::FEATURE_BOOKMARKBAR) && |
| 867 bookmark_bar_.get() && |
867 browser_->profile()->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar); | 868 browser_->profile()->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar); |
868 } | 869 } |
869 | 870 |
870 bool BrowserWindowGtk::IsBookmarkBarAnimating() const { | 871 bool BrowserWindowGtk::IsBookmarkBarAnimating() const { |
871 if (IsBookmarkBarSupported() && bookmark_bar_->IsAnimating()) | 872 if (IsBookmarkBarSupported() && bookmark_bar_->IsAnimating()) |
872 return true; | 873 return true; |
873 return false; | 874 return false; |
874 } | 875 } |
875 | 876 |
876 bool BrowserWindowGtk::IsToolbarVisible() const { | 877 bool BrowserWindowGtk::IsToolbarVisible() const { |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1106 } | 1107 } |
1107 | 1108 |
1108 void BrowserWindowGtk::Copy() { | 1109 void BrowserWindowGtk::Copy() { |
1109 DoCutCopyPaste(this, &RenderViewHost::Copy, "copy-clipboard"); | 1110 DoCutCopyPaste(this, &RenderViewHost::Copy, "copy-clipboard"); |
1110 } | 1111 } |
1111 | 1112 |
1112 void BrowserWindowGtk::Paste() { | 1113 void BrowserWindowGtk::Paste() { |
1113 DoCutCopyPaste(this, &RenderViewHost::Paste, "paste-clipboard"); | 1114 DoCutCopyPaste(this, &RenderViewHost::Paste, "paste-clipboard"); |
1114 } | 1115 } |
1115 | 1116 |
1116 void BrowserWindowGtk::SetToolbarCollapsedMode(bool val) { | |
1117 toolbar_->set_collapsed(val); | |
1118 } | |
1119 | |
1120 void BrowserWindowGtk::ConfirmBrowserCloseWithPendingDownloads() { | 1117 void BrowserWindowGtk::ConfirmBrowserCloseWithPendingDownloads() { |
1121 new DownloadInProgressDialogGtk(browser()); | 1118 new DownloadInProgressDialogGtk(browser()); |
1122 } | 1119 } |
1123 | 1120 |
1124 void BrowserWindowGtk::Observe(NotificationType type, | 1121 void BrowserWindowGtk::Observe(NotificationType type, |
1125 const NotificationSource& source, | 1122 const NotificationSource& source, |
1126 const NotificationDetails& details) { | 1123 const NotificationDetails& details) { |
1127 switch (type.value) { | 1124 switch (type.value) { |
1128 case NotificationType::BOOKMARK_BAR_VISIBILITY_PREF_CHANGED: | 1125 case NotificationType::BOOKMARK_BAR_VISIBILITY_PREF_CHANGED: |
1129 MaybeShowBookmarkBar(browser_->GetSelectedTabContents(), true); | 1126 MaybeShowBookmarkBar(browser_->GetSelectedTabContents(), true); |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1211 gdk_window_invalidate_rect(GTK_WIDGET(window_)->window, | 1208 gdk_window_invalidate_rect(GTK_WIDGET(window_)->window, |
1212 >K_WIDGET(window_)->allocation, TRUE); | 1209 >K_WIDGET(window_)->allocation, TRUE); |
1213 // For some reason, the above two calls cause the window shape to be | 1210 // For some reason, the above two calls cause the window shape to be |
1214 // lost so reset it. | 1211 // lost so reset it. |
1215 UpdateWindowShape(bounds_.width(), bounds_.height()); | 1212 UpdateWindowShape(bounds_.width(), bounds_.height()); |
1216 } | 1213 } |
1217 } | 1214 } |
1218 | 1215 |
1219 void BrowserWindowGtk::MaybeShowBookmarkBar(TabContents* contents, | 1216 void BrowserWindowGtk::MaybeShowBookmarkBar(TabContents* contents, |
1220 bool animate) { | 1217 bool animate) { |
1221 if (!IsBookmarkBarSupported()) { | 1218 if (!IsBookmarkBarSupported()) |
1222 // Because the bookmark bar is never shown in app tab windows, we must | |
1223 // explicitly hide to handle the case of switching tabs. | |
1224 if (bookmark_bar_.get()) | |
1225 bookmark_bar_->Hide(false); // animate | |
1226 return; | 1219 return; |
1227 } | |
1228 | 1220 |
1229 bool show_bar = false; | 1221 bool show_bar = false; |
1230 | 1222 |
1231 if (contents) { | 1223 if (IsBookmarkBarSupported() && contents) { |
1232 bookmark_bar_->SetProfile(contents->profile()); | 1224 bookmark_bar_->SetProfile(contents->profile()); |
1233 bookmark_bar_->SetPageNavigator(contents); | 1225 bookmark_bar_->SetPageNavigator(contents); |
1234 show_bar = true; | 1226 show_bar = true; |
1235 } | 1227 } |
1236 | 1228 |
1237 if (show_bar && contents && !contents->ShouldShowBookmarkBar()) { | 1229 if (show_bar && contents && !contents->ShouldShowBookmarkBar()) { |
1238 PrefService* prefs = contents->profile()->GetPrefs(); | 1230 PrefService* prefs = contents->profile()->GetPrefs(); |
1239 show_bar = prefs->GetBoolean(prefs::kShowBookmarkBar) && !IsFullscreen(); | 1231 show_bar = prefs->GetBoolean(prefs::kShowBookmarkBar) && !IsFullscreen(); |
1240 } | 1232 } |
1241 | 1233 |
(...skipping 791 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2033 toolbar_->Hide(); | 2025 toolbar_->Hide(); |
2034 | 2026 |
2035 // If the bookmark bar shelf is unsupported, then we never create it. | 2027 // If the bookmark bar shelf is unsupported, then we never create it. |
2036 } | 2028 } |
2037 | 2029 |
2038 bool BrowserWindowGtk::IsTabStripSupported() const { | 2030 bool BrowserWindowGtk::IsTabStripSupported() const { |
2039 return browser_->SupportsWindowFeature(Browser::FEATURE_TABSTRIP); | 2031 return browser_->SupportsWindowFeature(Browser::FEATURE_TABSTRIP); |
2040 } | 2032 } |
2041 | 2033 |
2042 bool BrowserWindowGtk::IsToolbarSupported() const { | 2034 bool BrowserWindowGtk::IsToolbarSupported() const { |
2043 return !toolbar_->collapsed() && | 2035 return browser_->SupportsWindowFeature(Browser::FEATURE_TOOLBAR) || |
2044 (browser_->SupportsWindowFeature(Browser::FEATURE_TOOLBAR) || | 2036 browser_->SupportsWindowFeature(Browser::FEATURE_LOCATIONBAR); |
2045 browser_->SupportsWindowFeature(Browser::FEATURE_LOCATIONBAR)); | |
2046 } | 2037 } |
2047 | 2038 |
2048 bool BrowserWindowGtk::IsBookmarkBarSupported() const { | 2039 bool BrowserWindowGtk::IsBookmarkBarSupported() const { |
2049 // We never show the bookmark bar on app tab pages. | |
2050 if (bookmark_bar_.get() && bookmark_bar_->OnAppsPage()) | |
2051 return false; | |
2052 | |
2053 return browser_->SupportsWindowFeature(Browser::FEATURE_BOOKMARKBAR); | 2040 return browser_->SupportsWindowFeature(Browser::FEATURE_BOOKMARKBAR); |
2054 } | 2041 } |
2055 | 2042 |
2056 bool BrowserWindowGtk::UsingCustomPopupFrame() const { | 2043 bool BrowserWindowGtk::UsingCustomPopupFrame() const { |
2057 GtkThemeProvider* theme_provider = GtkThemeProvider::GetFrom( | 2044 GtkThemeProvider* theme_provider = GtkThemeProvider::GetFrom( |
2058 browser()->profile()); | 2045 browser()->profile()); |
2059 return !theme_provider->UseGtkTheme() && | 2046 return !theme_provider->UseGtkTheme() && |
2060 browser()->type() & Browser::TYPE_POPUP; | 2047 browser()->type() & Browser::TYPE_POPUP; |
2061 } | 2048 } |
2062 | 2049 |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2158 // special-case the ones where the custom frame should be used. These names | 2145 // special-case the ones where the custom frame should be used. These names |
2159 // are taken from the WMs' source code. | 2146 // are taken from the WMs' source code. |
2160 return (wm_name == "Blackbox" || | 2147 return (wm_name == "Blackbox" || |
2161 wm_name == "compiz" || | 2148 wm_name == "compiz" || |
2162 wm_name == "e16" || // Enlightenment DR16 | 2149 wm_name == "e16" || // Enlightenment DR16 |
2163 wm_name == "Metacity" || | 2150 wm_name == "Metacity" || |
2164 wm_name == "Mutter" || | 2151 wm_name == "Mutter" || |
2165 wm_name == "Openbox" || | 2152 wm_name == "Openbox" || |
2166 wm_name == "Xfwm4"); | 2153 wm_name == "Xfwm4"); |
2167 } | 2154 } |
OLD | NEW |