diff --git a/pw_console/py/pw_console/log_view.py b/pw_console/py/pw_console/log_view.py
index 468b463..0388697 100644
--- a/pw_console/py/pw_console/log_view.py
+++ b/pw_console/py/pw_console/log_view.py
@@ -534,8 +534,9 @@
             # Set the follow event flag for the next render_content call.
             self.follow_event = FollowEvent.STICKY_FOLLOW
 
-        # Trigger a UI update
-        self.log_pane.application.logs_redraw()
+        # Trigger a UI update if the log window is visible.
+        if self.log_pane.show_pane:
+            self.log_pane.application.logs_redraw()
 
     def get_cursor_position(self) -> Point:
         """Return the position of the cursor."""
diff --git a/pw_console/py/pw_console/window_list.py b/pw_console/py/pw_console/window_list.py
index ec21b58..5d81526 100644
--- a/pw_console/py/pw_console/window_list.py
+++ b/pw_console/py/pw_console/window_list.py
@@ -252,6 +252,12 @@
     def switch_to_tab(self, index: int):
         self.focused_pane_index = index
 
+        # Make the selected tab visible and hide the rest.
+        for i, pane in enumerate(self.active_panes):
+            pane.show_pane = False
+            if i == index:
+                pane.show_pane = True
+
         # refresh_ui() will focus on the new tab container.
         self.refresh_ui()
 
@@ -259,8 +265,15 @@
         self.display_mode = mode
 
         if self.display_mode == DisplayMode.TABBED:
+            # Default to focusing on the first window / tab.
             self.focused_pane_index = 0
-            # Un-hide all panes, they must be visible to switch between tabs.
+            # Hide all other panes so log redraw events are not triggered.
+            for pane in self.active_panes:
+                pane.show_pane = False
+            # Keep the selected tab visible
+            self.active_panes[self.focused_pane_index].show_pane = True
+        else:
+            # Un-hide all panes if switching from tabbed back to stacked.
             for pane in self.active_panes:
                 pane.show_pane = True
 
@@ -584,11 +597,3 @@
             if next_pane.show_pane:
                 return next_pane
         return None
-
-    def focus_next_visible_pane(self, pane):
-        """Focus on the next visible window pane if possible."""
-        next_visible_pane = self._get_next_visible_pane_after(pane)
-        if next_visible_pane:
-            self.application.layout.focus(next_visible_pane)
-            return
-        self.application.focus_main_menu()
diff --git a/pw_console/py/window_manager_test.py b/pw_console/py/window_manager_test.py
index f9e7095..9b6444e 100644
--- a/pw_console/py/window_manager_test.py
+++ b/pw_console/py/window_manager_test.py
@@ -109,6 +109,9 @@
 def target_list_and_pane(window_manager, list_index, pane_index):
     # pylint: disable=protected-access
     # Bypass prompt_toolkit has_focus()
+    pane = window_manager.window_lists[list_index].active_panes[pane_index]
+    # If the pane is in focus it will be visible.
+    pane.show_pane = True
     window_manager._get_active_window_list_and_pane = (
         MagicMock(  # type: ignore
             return_value=(
@@ -465,6 +468,7 @@
             console_app = _create_console_app(logger_count=4)
 
             window_manager = console_app.window_manager
+            window_manager.window_lists[0].set_display_mode(DisplayMode.STACK)
             self.assertEqual(
                 window_pane_titles(window_manager),
                 [
