From d5c52cb7f011781fcd799bb040896062797e9d1e Mon Sep 17 00:00:00 2001
From: Yuan Fu <casouri@gmail.com>
Date: Sun, 10 Feb 2019 13:02:56 -0500
Subject: [PATCH] Cleaner logic on getting frame and window

---
 eldoc-box.el | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/eldoc-box.el b/eldoc-box.el
index c6a7aad..7bdb659 100644
--- a/eldoc-box.el
+++ b/eldoc-box.el
@@ -247,13 +247,16 @@ Checkout `lsp-ui-doc--make-frame', `lsp-ui-doc--move-frame'."
                             `((default-minibuffer-frame . ,(selected-frame))
                               (minibuffer . ,(minibuffer-window))
                               (left-fringe . ,(frame-char-width)))))
-         (window (or (and eldoc-box--frame (frame-selected-window eldoc-box--frame))
-                     (display-buffer-in-child-frame
-                      buffer
-                      `((child-frame-parameters . ,parameter)))))
-         (frame (window-frame window))
+         window frame
          (main-frame (selected-frame)))
     (make-frame-visible frame)
+    (if eldoc-box--frame
+        (progn (setq frame eldoc-box--frame)
+               (setq window (frame-selected-window frame)))
+      (setq window (display-buffer-in-child-frame
+                    buffer
+                    `((child-frame-parameters . ,parameter))))
+      (setq frame (window-frame window)))
     (set-window-dedicated-p window t)
     (redirect-frame-focus frame (frame-parent frame))
     (set-face-attribute 'internal-border frame :inherit 'eldoc-box-border)