bpo-34120: fix text viewer to call grab_release() only when needed (GH-8616)

diff --git a/Lib/idlelib/textview.py b/Lib/idlelib/textview.py
index e78e297..75b2470 100644
--- a/Lib/idlelib/textview.py
+++ b/Lib/idlelib/textview.py
@@ -83,7 +83,8 @@
                                             command=self.ok, takefocus=False)
         self.viewframe.pack(side='top', expand=True, fill='both')
 
-        if modal:
+        self.is_modal = modal
+        if self.is_modal:
             self.transient(parent)
             self.grab_set()
             if not _utest:
@@ -91,7 +92,8 @@
 
     def ok(self, event=None):
         """Dismiss text viewer dialog."""
-        self.grab_release()
+        if self.is_modal:
+            self.grab_release()
         self.destroy()