summaryrefslogtreecommitdiff
path: root/plugins/unityshell
diff options
authorAndrea Azzarone <azzaronea@gmail.com>2014-03-18 23:53:31 +0000
committerCI bot <ps-jenkins@lists.canonical.com>2014-03-18 23:53:31 +0000
commitffd538bcf9bfc1f823f97cd746a96adc9ec54eb9 (patch)
tree99734369fe8fc879ccc197284b7de0052fbb5ce0 /plugins/unityshell
parentc18ebffdbfebce42481587fa99e8a36f508efd00 (diff)
parent9e9565ecd92ce3255a0ce9d2e5183f45c3e7e4ec (diff)
Whitelist "onboard" for rendering during lockscreen. Fixes: 1291402, 1291685
(bzr r3729)
Diffstat (limited to 'plugins/unityshell')
-rw-r--r--plugins/unityshell/src/unityshell.cpp32
-rw-r--r--plugins/unityshell/src/unityshell.h2
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);