diff options
| author | Andrea Azzarone <azzaronea@gmail.com> | 2014-03-18 23:53:31 +0000 |
|---|---|---|
| committer | CI bot <ps-jenkins@lists.canonical.com> | 2014-03-18 23:53:31 +0000 |
| commit | ffd538bcf9bfc1f823f97cd746a96adc9ec54eb9 (patch) | |
| tree | 99734369fe8fc879ccc197284b7de0052fbb5ce0 /plugins/unityshell | |
| parent | c18ebffdbfebce42481587fa99e8a36f508efd00 (diff) | |
| parent | 9e9565ecd92ce3255a0ce9d2e5183f45c3e7e4ec (diff) | |
Whitelist "onboard" for rendering during lockscreen. Fixes: 1291402, 1291685
(bzr r3729)
Diffstat (limited to 'plugins/unityshell')
| -rw-r--r-- | plugins/unityshell/src/unityshell.cpp | 32 | ||||
| -rw-r--r-- | plugins/unityshell/src/unityshell.h | 2 |
2 files changed, 22 insertions, 12 deletions
diff --git a/plugins/unityshell/src/unityshell.cpp b/plugins/unityshell/src/unityshell.cpp index b04caf9c7..62432be82 100644 --- a/plugins/unityshell/src/unityshell.cpp +++ b/plugins/unityshell/src/unityshell.cpp @@ -2853,8 +2853,9 @@ bool UnityWindow::glPaint(const GLWindowPaintAttrib& attrib, if (uScreen->lockscreen_controller_->IsLocked()) { - if (window->type() != CompWindowTypePopupMenuMask || - !uScreen->lockscreen_controller_->HasOpenMenu()) + if ((window->type() != CompWindowTypePopupMenuMask || + !uScreen->lockscreen_controller_->HasOpenMenu()) && + window->resName() != "onboard") { // For some reasons PAINT_WINDOW_NO_CORE_INSTANCE_MASK doesn't work here // (well, it works too much, as it applies to menus too), so we need @@ -3717,16 +3718,7 @@ bool UnityScreen::layoutSlotsAndAssignWindows() void UnityScreen::OnDashRealized() { - /* stack any windows named "onboard" above us */ - for (CompWindow *w : screen->windows ()) - { - if (w->resName() == "onboard") - { - Window xid = dash_controller_->window()->GetInputWindowId(); - XSetTransientForHint (screen->dpy(), w->id(), xid); - w->raise (); - } - } + RaiseOSK(); } void UnityScreen::LockscreenRequested() @@ -3742,6 +3734,22 @@ void UnityScreen::LockscreenRequested() } launcher_controller_->ClearTooltips(); + + RaiseOSK(); +} + +void UnityScreen::RaiseOSK() +{ + /* stack any windows named "onboard" above us */ + for (CompWindow *w : screen->windows ()) + { + if (w->resName() == "onboard") + { + Window xid = dash_controller_->window()->GetInputWindowId(); + XSetTransientForHint (screen->dpy(), w->id(), xid); + w->raise (); + } + } } /* Start up the launcher */ diff --git a/plugins/unityshell/src/unityshell.h b/plugins/unityshell/src/unityshell.h index 15833e687..4d1c48a7a 100644 --- a/plugins/unityshell/src/unityshell.h +++ b/plugins/unityshell/src/unityshell.h @@ -278,6 +278,8 @@ private: void OnDashRealized (); + void RaiseOSK(); + void OnLauncherStartKeyNav(GVariant* data); void OnLauncherEndKeyNav(GVariant* data); void OnSwitcherDetailChanged(bool detail); |
