Chromium Code Reviews| Index: ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc |
| diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc |
| index effa86484cfe77eed5aa00794ace06f8a866a8a6..75c0a2cd608cdd814122abdcd3c9239316cbd9a6 100644 |
| --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc |
| +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc |
| @@ -14,6 +14,7 @@ |
| #include "base/command_line.h" |
| #include "base/memory/ptr_util.h" |
| +#include "base/strings/string_number_conversions.h" |
| #include "base/strings/stringprintf.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/trace_event/trace_event.h" |
| @@ -564,6 +565,13 @@ gfx::Rect DesktopWindowTreeHostX11::GetRestoredBounds() const { |
| return GetWindowBoundsInScreen(); |
| } |
| +std::string DesktopWindowTreeHostX11::GetWorkspace() const { |
| + int workspace_id; |
| + if (ui::GetIntProperty(xwindow_, "_NET_WM_DESKTOP", &workspace_id)) |
| + return base::IntToString(workspace_id); |
| + return ""; |
|
sky
2016/05/03 17:40:53
std::string()
Tom (Use chromium acct)
2016/05/03 19:38:39
Done.
|
| +} |
| + |
| gfx::Rect DesktopWindowTreeHostX11::GetWorkAreaBoundsInScreen() const { |
| return ToDIPRect(GetWorkAreaBoundsInPixels()); |
| } |
| @@ -1226,6 +1234,10 @@ void DesktopWindowTreeHostX11::InitX11Window( |
| if (params.visible_on_all_workspaces) { |
| state_atom_list.push_back(atom_cache_.GetAtom("_NET_WM_STATE_STICKY")); |
| ui::SetIntProperty(xwindow_, "_NET_WM_DESKTOP", "CARDINAL", kAllDesktops); |
| + } else if (params.workspace.size()) { |
|
sky
2016/05/03 17:40:53
!params.workspace.empty()
Tom (Use chromium acct)
2016/05/03 19:38:39
Done.
|
| + int workspace; |
| + if (base::StringToInt(params.workspace, &workspace)) |
| + ui::SetIntProperty(xwindow_, "_NET_WM_DESKTOP", "CARDINAL", workspace); |
| } |
| // Setting _NET_WM_STATE by sending a message to the root_window (with |
| @@ -1990,10 +2002,13 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent( |
| } |
| case PropertyNotify: { |
| ::Atom changed_atom = xev->xproperty.atom; |
| - if (changed_atom == atom_cache_.GetAtom("_NET_WM_STATE")) |
| + if (changed_atom == atom_cache_.GetAtom("_NET_WM_STATE")) { |
|
sky
2016/05/03 17:40:53
nit: no {} here as all branches are a single line.
Tom (Use chromium acct)
2016/05/03 19:38:39
Done.
|
| OnWMStateUpdated(); |
| - else if (changed_atom == atom_cache_.GetAtom("_NET_FRAME_EXTENTS")) |
| + } else if (changed_atom == atom_cache_.GetAtom("_NET_FRAME_EXTENTS")) { |
| OnFrameExtentsUpdated(); |
| + } else if (changed_atom == atom_cache_.GetAtom("_NET_WM_DESKTOP")) { |
| + OnHostWorkspaceChanged(); |
| + } |
| break; |
| } |
| case SelectionNotify: { |