diff --git a/pysollib/util.py b/pysollib/util.py index 94d38aab..49b83761 100644 --- a/pysollib/util.py +++ b/pysollib/util.py @@ -168,9 +168,20 @@ class DataLoader: return self.findFile(filename, subdirs) def findAllIconSizes(self, filename='pysol.png'): - icondir = self.findDir(os.path.join('images', 'icons')) - icons = [os.path.join(icondir, subdir, filename) for subdir in - os.listdir(icondir)] + try: + icondir = self.findDir(os.path.join('images', 'icons')) + icons = [os.path.join(icondir, subdir, filename) for subdir in + os.listdir(icondir)] + except OSError: + try: + # pysol06.png is known to have transparent borders around it + # which is unsuitable for a window icon + icon_blacklist = ('pysol06.png',) + miscdir = self.findDir(os.path.join('images', 'misc')) + icons = [os.path.join(miscdir, f) for f in os.listdir(miscdir) + if f not in icon_blacklist] + except OSError: + icons = [] return filter(os.path.isfile, icons) def findDir(self, filename, subdirs=None): diff --git a/pysollib/winsystems/common.py b/pysollib/winsystems/common.py index 3a65bbea..09cdf8c9 100644 --- a/pysollib/winsystems/common.py +++ b/pysollib/winsystems/common.py @@ -93,7 +93,8 @@ def base_init_root_window(root, app): if TOOLKIT == 'tk': icons = [loadImage(img) for img in app.dataloader.findAllIconSizes()] - root.wm_iconphoto(True, *icons) + if icons: + root.wm_iconphoto(True, *icons) # set minsize sw, sh = (root.winfo_screenwidth(), root.winfo_screenheight())