| Index: chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
|
| diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
|
| index 835567791cb28791ad33add8594b8ee9c8c70f0b..ecd4f8ec28eb28432c063a77c90d2f507a44f21a 100644
|
| --- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
|
| +++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
|
| @@ -10,6 +10,7 @@
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/themes/theme_service.h"
|
| #include "chrome/browser/themes/theme_service_factory.h"
|
| +#include "chrome/browser/ui/browser_list.h"
|
| #include "chrome/browser/ui/libgtk2ui/gtk2_ui.h"
|
| #include "chrome/browser/ui/simple_message_box.h"
|
| #include "chrome/browser/ui/views/frame/browser_view.h"
|
| @@ -18,6 +19,7 @@
|
| #include "chrome/grit/chromium_strings.h"
|
| #include "chrome/grit/generated_resources.h"
|
| #include "components/prefs/pref_service.h"
|
| +#include "ui/aura/env.h"
|
| #include "ui/aura/window.h"
|
| #include "ui/base/ime/input_method_initializer.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| @@ -28,6 +30,7 @@
|
| #include "ui/native_theme/native_theme_dark_aura.h"
|
| #include "ui/views/linux_ui/linux_ui.h"
|
| #include "ui/views/widget/desktop_aura/desktop_screen.h"
|
| +#include "ui/views/widget/desktop_aura/x11_desktop_handler.h"
|
| #include "ui/views/widget/native_widget_aura.h"
|
|
|
| namespace {
|
| @@ -68,7 +71,11 @@ ChromeBrowserMainExtraPartsViewsLinux::ChromeBrowserMainExtraPartsViewsLinux() {
|
| }
|
|
|
| ChromeBrowserMainExtraPartsViewsLinux::
|
| - ~ChromeBrowserMainExtraPartsViewsLinux() {}
|
| + ~ChromeBrowserMainExtraPartsViewsLinux() {
|
| + // X11DesktopHandler is destructed at this point, so we don't need to remove
|
| + // ourselves as an X11DesktopHandlerObserver
|
| + DCHECK(!aura::Env::GetInstanceDontCreate());
|
| +}
|
|
|
| void ChromeBrowserMainExtraPartsViewsLinux::PreEarlyInitialization() {
|
| // TODO(erg): Refactor this into a dlopen call when we add a GTK3 port.
|
| @@ -89,6 +96,8 @@ void ChromeBrowserMainExtraPartsViewsLinux::PreCreateThreads() {
|
| views::LinuxUI::instance()->MaterialDesignControllerReady();
|
| views::LinuxUI::instance()->UpdateDeviceScaleFactor(
|
| display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor());
|
| +
|
| + views::X11DesktopHandler::get()->AddObserver(this);
|
| }
|
|
|
| void ChromeBrowserMainExtraPartsViewsLinux::PreProfileInit() {
|
| @@ -117,3 +126,8 @@ void ChromeBrowserMainExtraPartsViewsLinux::PreProfileInit() {
|
|
|
| exit(EXIT_FAILURE);
|
| }
|
| +
|
| +void ChromeBrowserMainExtraPartsViewsLinux::OnWorkspaceChanged(
|
| + const std::string& new_workspace) {
|
| + BrowserList::MoveBrowsersInWorkspaceToFront(new_workspace);
|
| +}
|
|
|