From 4b2fbbb2f69f8bd4598395b8b5ff33839e79483d Mon Sep 17 00:00:00 2001
From: rhp <rhp>
Date: Sun, 24 Jun 2001 16:37:18 +0000
Subject: [PATCH] ...

---
 src/window.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/window.c b/src/window.c
index e84e9e119..336e9f3c5 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1338,11 +1338,16 @@ meta_window_focus (MetaWindow  *window,
   meta_verbose ("Setting input focus to window %s, input: %d take_focus: %d\n",
                 window->desc, window->input, window->take_focus);
 
-  if (window->shaded && window->frame)
+  /* For output-only or shaded windows, focus the frame.
+   * This seems to result in the client window getting key events
+   * though, so I don't know if it's icccm-compliant.
+   *
+   * Still, we have to do this or keynav breaks for these windows.
+   */
+  if (window->frame &&
+      (window->shaded ||
+       !(window->input || window->take_focus)))
     {
-      /* This is so we can still use keyboard shortcuts
-       * and still draw the window as focused.
-       */
       if (window->frame)
         {
           meta_verbose ("Focusing frame of %s\n", window->desc);