]> git.armaanb.net Git - lightcards.git/commitdiff
Reduce number of screen refreshes
authorArmaan Bhojwani <me@armaanb.net>
Fri, 12 Feb 2021 14:14:21 +0000 (09:14 -0500)
committerArmaan Bhojwani <me@armaanb.net>
Fri, 12 Feb 2021 14:14:21 +0000 (09:14 -0500)
lightcards/display.py

index 5dc354ed02cc46fea170ce846dbdde2f57568a22..6f572ad470ad2b90d8dd36b2b6084db749fd5b1a 100644 (file)
@@ -26,7 +26,6 @@ class Help:
         (self.win, self.panel) = panel_create(mlines, mcols)
         self.panel.top()
         self.panel.hide()
-        self.win.clear()
 
         text = [
             "Welcome to runner. Here are some keybindings",
@@ -204,7 +203,6 @@ class Display:
     def run(self, stdscr):
         """Set important options that require stdscr before starting"""
         self.win = stdscr
-        (mlines, mcols) = self.win.getmaxyx()
         curses.curs_set(0)  # Hide cursor
         curses.use_default_colors()  # Allow transparency
         curses.init_pair(1, curses.COLOR_CYAN, -1)
@@ -229,7 +227,6 @@ class Display:
                     "Terminal too small! Min size 60x24", width=mcols
                 ),
             )
-            self.win.redrawwin()
             self.win.refresh()
             (mlines, mcols) = self.win.getmaxyx()
             time.sleep(0.1)
@@ -239,7 +236,7 @@ class Display:
     def update_panels(self):
         """Update panel and window contents"""
         curses.panel.update_panels()
-        self.win.refresh()
+        curses.doupdate()
 
     def leave(self):
         """Pickle stack before quitting"""
@@ -311,9 +308,10 @@ class Display:
         Shows a header, a horizontal line, and the contents of the current
         side.
         """
-        (mlines, mcols) = self.win.getmaxyx()
+        (_, mcols) = self.win.getmaxyx()
         self.main_panel.bottom()
         self.win.clear()
+
         # If on the back of the card, show the content of the front side in
         # the header
         num_done = str(self.obj.index + 1).zfill(len(str(len(self.stack))))
@@ -328,6 +326,7 @@ class Display:
                 + str(self.current_card().front)
                 + '"'
             )
+
         header_width = mcols
         if mcols > 80:
             header_width = 80
@@ -407,9 +406,6 @@ class Display:
         (mlines, mcols) = self.win.getmaxyx()
         left = mcols - 19
 
-        for i in range(20):
-            self.win.addch(0, mcols - 20 + i, " ")
-
         self.win.addstr(
             0,
             mcols - 16,