- shared_ptr<views::ViewBase> view;
- bool title_set = false;
-
- view = get_active_view();
-
- for (shared_ptr<Session> session : sessions_) {
- if (!session->has_view(view))
- continue;
-
- setWindowTitle(session->name() + " - " + WindowTitle);
- title_set = true;
+ static shared_ptr<Session> prev_session;
+
+ shared_ptr<views::ViewBase> view = get_active_view();
+
+ if (view) {
+ for (shared_ptr<Session> session : sessions_) {
+ if (session->has_view(view)) {
+ if (session != prev_session) {
+ // Activate correct tab if necessary
+ shared_ptr<Session> tab_session = get_tab_session(
+ session_selector_.currentIndex());
+ if (tab_session != session)
+ session_selector_.setCurrentWidget(
+ session_windows_.at(session));
+
+ on_focused_session_changed(session);
+ }
+
+ prev_session = session;
+ break;
+ }
+ }