@@ -74,6 +74,13 @@ class MSS(MSSBase):
7474 # pylint: disable=R0902
7575
7676 display = None
77+ use_mss = False
78+ mss = None
79+ xlib = None
80+ xrandr = None
81+ display = None
82+ screen = None
83+ root = None
7784
7885 def __del__ (self ):
7986 ''' Disconnect from X server. '''
@@ -82,19 +89,18 @@ def __del__(self):
8289 self .xlib .XCloseDisplay (self .display )
8390 self .display = None
8491
85- def __init__ (self ):
92+ def __init__ (self , display = None ):
8693 ''' GNU/Linux initialisations. '''
8794
88- self .use_mss = False
89- disp = None
90- try :
91- if version > '3' :
92- disp = bytes (environ ['DISPLAY' ], 'utf-8' )
93- else :
94- disp = environ ['DISPLAY' ]
95- except KeyError :
96- err = '$DISPLAY not set. Stopping to prevent segfault.'
97- raise ScreenshotError (err )
95+ if not display :
96+ try :
97+ if version > '3' :
98+ display = bytes (environ ['DISPLAY' ], 'utf-8' )
99+ else :
100+ display = environ ['DISPLAY' ]
101+ except KeyError :
102+ err = '$DISPLAY not set. Stopping to prevent segfault.'
103+ raise ScreenshotError (err )
98104
99105 x11 = find_library ('X11' )
100106 if not x11 :
@@ -118,11 +124,11 @@ def __init__(self):
118124 self ._set_argtypes ()
119125 self ._set_restypes ()
120126
121- self .display = self .xlib .XOpenDisplay (disp )
127+ self .display = self .xlib .XOpenDisplay (display )
122128 try :
123129 assert self .display .contents
124130 except ValueError :
125- raise ScreenshotError ('Cannot open display "{0}".' .format (disp ))
131+ raise ScreenshotError ('Cannot open display "{0}".' .format (display ))
126132 self .screen = self .xlib .XDefaultScreen (self .display )
127133 self .root = self .xlib .XDefaultRootWindow (self .display , self .screen )
128134
0 commit comments