| 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 a6f120943f57de515556c227b84f04f8f253b208..841466813dc742fac87054a2d69105181a5b410c 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
|
| @@ -121,6 +121,9 @@ const char* kAtomsToCache[] = {
|
| NULL
|
| };
|
|
|
| +const char kX11WindowRolePopup[] = "popup";
|
| +const char kX11WindowRoleBubble[] = "bubble";
|
| +
|
| } // namespace
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| @@ -1185,12 +1188,26 @@ void DesktopWindowTreeHostX11::InitX11Window(
|
| ui::SetWindowClassHint(
|
| xdisplay_, xwindow_, params.wm_class_name, params.wm_class_class);
|
| }
|
| - if (!params.wm_role_name.empty() ||
|
| - params.type == Widget::InitParams::TYPE_POPUP) {
|
| - const char kX11WindowRolePopup[] = "popup";
|
| - ui::SetWindowRole(xdisplay_, xwindow_, params.wm_role_name.empty() ?
|
| - std::string(kX11WindowRolePopup) : params.wm_role_name);
|
| +
|
| + const char* wm_role_name = NULL;
|
| + // If the widget isn't overriding the role, provide a default value for popup
|
| + // and bubble types.
|
| + if (!params.wm_role_name.empty()) {
|
| + wm_role_name = params.wm_role_name.c_str();
|
| + } else {
|
| + switch (params.type) {
|
| + case Widget::InitParams::TYPE_POPUP:
|
| + wm_role_name = kX11WindowRolePopup;
|
| + break;
|
| + case Widget::InitParams::TYPE_BUBBLE:
|
| + wm_role_name = kX11WindowRoleBubble;
|
| + break;
|
| + default:
|
| + break;
|
| + }
|
| }
|
| + if (wm_role_name)
|
| + ui::SetWindowRole(xdisplay_, xwindow_, std::string(wm_role_name));
|
|
|
| if (params.remove_standard_frame) {
|
| // Setting _GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED tells gnome-shell to not force
|
|
|