commit 64a1e5a95b0f091e1cafb4db812221585386fc4a
Author: dsorber <david.sorber@gmail.com>
Date:   Sun Aug 20 21:33:15 2017 -0400

    Modified search so that the (first) matching term scrolls into view.

diff --git a/software/pwmgr/pwmgr.py b/software/pwmgr/pwmgr.py
index c56783f..0b552c7 100755
--- a/software/pwmgr/pwmgr.py
+++ b/software/pwmgr/pwmgr.py
@@ -15,7 +15,7 @@ ENC_FILE_PATH = '/home/dsorber/Documents/chicken_soup.enc'
 SCRATCH_FILE_PATH = '/mnt/pw_ramdisk/chicken_soup.txt'
 ENC_TMP_FILE_PATH = '/home/dsorber/Documents/chicken_soup.enc.tmp'
 
-VERSION = '0.0.1'
+VERSION = '0.0.2'
 
 class SearchDialog(Gtk.Dialog):
 
@@ -35,6 +35,19 @@ class SearchDialog(Gtk.Dialog):
 
         self.show_all()
         
+        
+class WarningDialog(Gtk.Dialog):
+    
+    def __init__(self, parent, title, message):
+        Gtk.MessageDialog.__init__(self, parent,
+                                   Gtk.DialogFlags.MODAL, 
+                                   Gtk.MessageType.WARNING,
+                                   Gtk.ButtonsType.OK_CANCEL,
+                                   message)
+
+        self.set_title(title)
+        self.show_all()
+        
 def get_user_pw(parent, message, title=''):
     """
     Returns user input as a string or None
@@ -43,11 +56,11 @@ def get_user_pw(parent, message, title=''):
     https://stackoverflow.com/questions/13970445/python-gtk3-how-to-add-a-gtk-entry-to-a-gtk-messagedialog
     """
     dialog = Gtk.MessageDialog(parent,
-                                     Gtk.DialogFlags.MODAL | 
-                                     Gtk.DialogFlags.DESTROY_WITH_PARENT,
-                                     Gtk.MessageType.QUESTION,
-                                     Gtk.ButtonsType.OK_CANCEL,
-                                     message)
+                               Gtk.DialogFlags.MODAL | 
+                               Gtk.DialogFlags.DESTROY_WITH_PARENT,
+                               Gtk.MessageType.QUESTION,
+                               Gtk.ButtonsType.OK_CANCEL,
+                               message)
 
     dialog.set_title(title)
 
@@ -140,7 +153,8 @@ class TextViewWindow(Gtk.Window):
         self.tag_underline = self.textbuffer.create_tag("underline",
             underline=Pango.Underline.SINGLE)
         self.tag_found = self.textbuffer.create_tag('found', 
-                                                    background='orange')
+                                                    background='orange',
+                                                    weight=Pango.Weight.BOLD)
 
     def create_bottom(self):
         
@@ -209,6 +223,10 @@ class TextViewWindow(Gtk.Window):
         """
         Close handler
         """
+        
+        #~ dialog = WarningDialog(self, 'Close?', 'Have you saved?')
+        #~ response = dialog.run()
+        #~ dialog.destroy()
 
         rand_write_cmd = 'dd if=/dev/urandom of={:s} bs=16M count=1 status=none'
         rand_write_cmd = rand_write_cmd.format(os.path.join(MOUNT_PATH, 'data'))
@@ -264,9 +282,12 @@ class TextViewWindow(Gtk.Window):
         match = start.forward_search(text, 0, end)
 
         if match != None:
-            match_start, match_end = match
+            match_start, match_end = match            
             self.textbuffer.apply_tag(self.tag_found, match_start, match_end)
-            self.search_and_mark(text, match_end)
+            
+            # Scroll so the match appears in the middle of the screen
+            self.textview.scroll_to_iter(match_start, 0.1, True, 0.0, 0.5)
+            #~ self.search_and_mark(text, match_end)
 
 def main():
     """
