summaryrefslogtreecommitdiff
path: root/unity-shared
diff options
authorBrandon Schaefer <brandon.schaefer@canonical.com>2013-01-09 11:41:24 -0800
committerBrandon Schaefer <brandon.schaefer@canonical.com>2013-01-09 11:41:24 -0800
commit8ca6673b30012f18ef35ae71f5214d5dee9d3e85 (patch)
tree7918ffa0b9b89929815102eea1bf30bd64e2bbb0 /unity-shared
parent17df6c486669db119a192780aeba1a56f48ac8df (diff)
* Better way to do this...
(bzr r3024.1.6)
Diffstat (limited to 'unity-shared')
-rw-r--r--unity-shared/BamfApplicationManager.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/unity-shared/BamfApplicationManager.cpp b/unity-shared/BamfApplicationManager.cpp
index b210c2b3e..8192265a8 100644
--- a/unity-shared/BamfApplicationManager.cpp
+++ b/unity-shared/BamfApplicationManager.cpp
@@ -541,15 +541,15 @@ ApplicationWindowPtr Manager::GetActiveWindow()
if (!active_win)
return result;
- std::vector<Window> const& our_xids = nux::XInputWindow::NativeHandleList();
- Window xid = bamf_window_get_xid(active_win);
-
// If the active window is a dock type, then we want the first visible, non-dock type.
- if ((active_win && bamf_window_get_window_type(active_win) == BAMF_WINDOW_DOCK))
+ if (bamf_window_get_window_type(active_win) == BAMF_WINDOW_DOCK)
{
LOG_DEBUG(logger) << "Is a dock, looking at the window stack.";
+
std::shared_ptr<GList> windows(bamf_matcher_get_window_stack_for_monitor(matcher_, -1), g_list_free);
WindowManager& wm = WindowManager::Default();
+ active_win = nullptr;
+
for (GList *l = windows.get(); l; l = l->next)
{
if (!BAMF_IS_WINDOW(l->data))
@@ -560,20 +560,16 @@ ApplicationWindowPtr Manager::GetActiveWindow()
auto win = static_cast<BamfWindow*>(l->data);
auto view = static_cast<BamfView*>(l->data);
- xid = bamf_window_get_xid(win);
+ auto xid = bamf_window_get_xid(win);
if (bamf_view_is_user_visible(view) &&
bamf_window_get_window_type(win) != BAMF_WINDOW_DOCK &&
wm.IsWindowOnCurrentDesktop(xid) &&
- wm.IsWindowVisible(xid) &&
- std::find(our_xids.begin(), our_xids.end(), xid) == our_xids.end())
+ wm.IsWindowVisible(xid))
{
active_win = win;
}
}
-
- if (bamf_window_get_window_type(active_win) == BAMF_WINDOW_DOCK)
- active_win = nullptr;
}
auto view = reinterpret_cast<BamfView*>(active_win);