Skip to content

Commit

Permalink
framework/browser: Check return value of Gdk.Screen().get_default()
Browse files Browse the repository at this point in the history
Gdk.Screen().get_default() can return None. Exit in case this happens and print
a more descriptive error message.

Fixes:
 Traceback (most recent call last):
  File "/usr/bin/sealert", line 659, in <module>
    run_as_dbus_service(username)
  File "/usr/bin/sealert", line 118, in run_as_dbus_service
    app = SEAlert(user, dbus_service.presentation_manager, watch_setroubleshootd=True)
  File "/usr/bin/sealert", line 351, in __init__
    self.browser = BrowserApplet(self.username, self.alert_client, domain=domain)
  File "/usr/lib/python3.6/site-packages/setroubleshoot/browser.py", line 182, in __init__
    size = Gdk.Screen().get_default().get_monitor_geometry(0)
  AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry'
  • Loading branch information
vmojzis committed Apr 16, 2020
1 parent 8326990 commit 9a0693b
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions framework/src/setroubleshoot/browser.py
Original file line number Diff line number Diff line change
Expand Up @@ -186,10 +186,14 @@ def empty_load(self):

def __init__(self, username=None, server=None, list=False, domain=None):
self.RECT_SIZE = 20
size = Gdk.Screen().get_default().get_monitor_geometry(0)
self.width = min(1350, int(size.width * .90))
self.height = min(750, int(size.height * .90))

default_screen = Gdk.Screen().get_default()
if default_screen:
size = default_screen.get_monitor_geometry(0)
self.width = min(1350, int(size.width * .90))
self.height = min(750, int(size.height * .90))
else:
print("ERROR (Gdk): couldn't connect to display.", file=sys.stderr)
exit(1)
self.read_config()
builder = Gtk.Builder()
builder.set_translation_domain(domain)
Expand Down Expand Up @@ -464,7 +468,8 @@ def add_row(self, plugin, alert, args, highlight=False):
cssProvider.load_from_path('/usr/share/setroubleshoot/gui/style.css')
screen = Gdk.Screen.get_default()
styleContext = Gtk.StyleContext()
styleContext.add_provider_for_screen(screen, cssProvider, Gtk.STYLE_PROVIDER_PRIORITY_USER)
if screen:
styleContext.add_provider_for_screen(screen, cssProvider, Gtk.STYLE_PROVIDER_PRIORITY_USER)

self.toggles.append(sev_toggle)
sev_toggle.show()
Expand Down

0 comments on commit 9a0693b

Please sign in to comment.