Index: chrome/browser/chrome_browser_main_extra_parts_x11.cc |
diff --git a/chrome/browser/chrome_browser_main_extra_parts_x11.cc b/chrome/browser/chrome_browser_main_extra_parts_x11.cc |
index 76e8fb9fc4900d814705b855885ce873a6a9d2c8..4a7101c0ac81c7611a0c54b2c385b97ea2c92d21 100644 |
--- a/chrome/browser/chrome_browser_main_extra_parts_x11.cc |
+++ b/chrome/browser/chrome_browser_main_extra_parts_x11.cc |
@@ -12,12 +12,14 @@ |
#include "base/strings/string_number_conversions.h" |
#include "base/threading/sequenced_task_runner_handle.h" |
#include "chrome/browser/lifetime/application_lifetime.h" |
+#include "chrome/browser/ui/browser_list.h" |
#include "chrome/common/chrome_result_codes.h" |
#include "chrome/common/chrome_switches.h" |
#include "content/public/browser/browser_thread.h" |
#include "ui/base/x/x11_util.h" |
#include "ui/base/x/x11_util_internal.h" |
#include "ui/events/platform/x11/x11_event_source.h" |
+#include "ui/views/widget/desktop_aura/x11_desktop_handler.h" |
using content::BrowserThread; |
@@ -111,6 +113,10 @@ void ChromeBrowserMainExtraPartsX11::PostMainMessageLoopStart() { |
base::Uint64ToString( |
ui::X11EventSource::GetInstance()->UpdateLastSeenServerTime())); |
} |
+ |
+ display::Desktop* desktop = views::X11DesktopHandler::get(); |
+ display::Desktop::SetDesktopInstance(desktop); |
+ desktop->AddObserver(this); |
#endif |
} |
@@ -120,3 +126,8 @@ void ChromeBrowserMainExtraPartsX11::PostMainMessageLoopRun() { |
// process of terminating, this can cause errors. |
ui::SetX11ErrorHandlers(X11EmptyErrorHandler, X11EmptyIOErrorHandler); |
} |
+ |
+void ChromeBrowserMainExtraPartsX11::OnWorkspaceChanged( |
+ const std::string& new_workspace) { |
+ BrowserList::ReorderAfterWorkspaceChange(new_workspace); |
+} |