Index: /framspy/gui/utils.py
===================================================================
--- /framspy/gui/utils.py	(revision 1201)
+++ /framspy/gui/utils.py	(revision 1202)
@@ -32,4 +32,5 @@
         self.two = self.init
 
+
 #source: https://gist.github.com/walkermatt/2871026
 def debounce(wait):
@@ -49,2 +50,17 @@
         return debounced
     return decorator
+
+
+# https://stackoverflow.com/questions/39058038/wm-attributes-and-zoomed-doesnt-work
+# https://stackoverflow.com/questions/18394597/is-there-a-way-to-create-transparent-windows-with-tkinter
+def windowHideAndMaximize(wnd): # to get the size of working area on screen (screen minus taskbars, toolbars etc.) - make invisible maximized window
+    wnd.attributes("-alpha", 0)
+    wnd.state('zoomed')
+    wnd.update()
+
+def windowShowAndSetGeometry(wnd, geometry):
+    wnd.state('normal')
+    wnd.update()
+    wnd.geometry(geometry)
+    wnd.attributes("-alpha", 1)
+    wnd.update()
Index: /framspy/gui/widgets/ConsoleWindow.py
===================================================================
--- /framspy/gui/widgets/ConsoleWindow.py	(revision 1201)
+++ /framspy/gui/widgets/ConsoleWindow.py	(revision 1202)
@@ -2,4 +2,5 @@
 from gui.widgets.ScrolledText import ScrolledText
 from gui.framsutils.FramsSocket import FramsSocket
+from gui.utils import windowHideAndMaximize, windowShowAndSetGeometry
 from typing import Tuple, Callable
 
@@ -45,24 +46,13 @@
             return maxwidth, maxheight, x, y
 
-        self.attributes("-alpha", 0)
         self.update_idletasks()
 
         width, height, x, y = parseGeometryString(self.winfo_geometry())
-
-        self.state('zoomed')
-        self.update()
+        windowHideAndMaximize(self)
         rootx = self.winfo_rootx()
-
         maxWidth, maxHeight, x, y = parseGeometryString(self.winfo_geometry())
-
-        self.state("normal")
-        self.update()
-
         x = (maxWidth - width) / 2
         y = (maxHeight - height) / 2
-
-        self.geometry("+%d+%d" % (int(rootx + x), int(y)))
-        self.attributes("-alpha", 1)
-        self.update()
+        windowShowAndSetGeometry(self, "+%d+%d" % (int(rootx + x), int(y)))
         self.maxsize(maxWidth, maxHeight)
 
Index: /framspy/gui/widgets/mainPage.py
===================================================================
--- /framspy/gui/widgets/mainPage.py	(revision 1201)
+++ /framspy/gui/widgets/mainPage.py	(revision 1202)
@@ -16,4 +16,5 @@
 from gui.socketInterface import SocketInterface
 from gui.utils import debounce
+from gui.utils import windowHideAndMaximize, windowShowAndSetGeometry
 from gui.widgets.ToolTip import CreateToolTip
 from time import perf_counter
@@ -171,15 +172,9 @@
         #ORGANIZE WINDOWS POSITIONS
         ## need to do some workaround to determine screen width and height
-        self.attributes("-alpha", 0)
-        self.state('zoomed')
-        self.update()
+        windowHideAndMaximize(self)
         maxHeight = self.winfo_rooty() + self.winfo_height()
         maxWidth = self.winfo_rootx() + self.winfo_width()
         self.rootx = self.winfo_rootx()
-        self.state("normal")
-        self.update()
-        self.geometry("%dx%d+%d+%d" % (self.OPENGL_WIDTH + self.SIDEBAR_WIDTH, self.OPENGL_HEIGHT, self.rootx, 0))
-        self.attributes("-alpha", 1)
-        self.update()
+        windowShowAndSetGeometry(self, "%dx%d+%d+%d" % (self.OPENGL_WIDTH + self.SIDEBAR_WIDTH, self.OPENGL_HEIGHT, self.rootx, 0))
         height = self.winfo_rooty() + self.winfo_height() - self.winfo_y()
 
Index: /framspy/gui/widgets/propertyWindow.py
===================================================================
--- /framspy/gui/widgets/propertyWindow.py	(revision 1201)
+++ /framspy/gui/widgets/propertyWindow.py	(revision 1202)
@@ -4,6 +4,7 @@
 from typing import Dict, List, Callable, Tuple
 from gui.framsutils.framsProperty import Property, PropertyCallback, propertyToTkinter
+from gui.framsutils.FramsInterface import FramsInterface, InterfaceType
 from gui.widgets.ToolTip import CreateToolTip
-from gui.framsutils.FramsInterface import FramsInterface, InterfaceType
+from gui.utils import windowHideAndMaximize, windowShowAndSetGeometry
 
 '''
@@ -105,24 +106,16 @@
             return maxwidth, maxheight, x, y
 
-        self.attributes("-alpha", 0)
         self.update_idletasks()
 
         width, height, x, y = parseGeometryString(self.winfo_geometry())
 
-        self.state('zoomed')
-        self.update()
+        windowHideAndMaximize(self)
         rootx = self.winfo_rootx()
 
         maxWidth, maxHeight, x, y = parseGeometryString(self.winfo_geometry())
-
-        self.state("normal")
-        self.update()
-
         x = (maxWidth - width) / 2
         y = (maxHeight - height) / 2
 
-        self.geometry("+%d+%d" % (int(rootx + x), int(y)))
-        self.attributes("-alpha", 1)
-        self.update()
+        windowShowAndSetGeometry(self, "+%d+%d" % (int(rootx + x), int(y)))
         self.maxsize(maxWidth, maxHeight)
 
