@@ -139,6 +139,38 @@ class XRRCrtcInfo(ctypes.Structure):
139139 ]
140140
141141
142+ @ctypes .CFUNCTYPE (ctypes .c_int , ctypes .POINTER (Display ), ctypes .POINTER (Event ))
143+ def error_handler (_ , event ):
144+ # type: (ctypes.POINTER(Display), ctypes.POINTER(Event)) -> int
145+ """ Specifies the program's supplied error handler. """
146+
147+ global LAST_ERROR
148+
149+ evt = event .contents
150+ LAST_ERROR = {
151+ "type" : evt .type ,
152+ "serial" : evt .serial ,
153+ "error_code" : evt .error_code ,
154+ "request_code" : evt .request_code ,
155+ "minor_code" : evt .minor_code ,
156+ }
157+ return 0
158+
159+
160+ def validate (retval , func , args ):
161+ # type: (int, Any, Tuple[Any, Any]) -> Any
162+ """ Validate the returned value of a Xlib or XRANDR function. """
163+
164+ global LAST_ERROR
165+
166+ if retval != 0 and not LAST_ERROR :
167+ return args
168+
169+ err = "{}() failed" .format (func .__name__ )
170+ details = {"retval" : retval , "args" : args }
171+ raise ScreenShotError (err , details = details )
172+
173+
142174class MSS (MSSMixin ):
143175 """
144176 Multiple ScreenShots implementation for GNU/Linux.
@@ -419,35 +451,3 @@ def grab(self, monitor):
419451 self .xlib .XDestroyImage (ximage )
420452
421453 return self .cls_image (data , monitor )
422-
423-
424- @ctypes .CFUNCTYPE (ctypes .c_int , ctypes .POINTER (Display ), ctypes .POINTER (Event ))
425- def error_handler (_ , event ):
426- # type: (ctypes.POINTER(Display), ctypes.POINTER(Event)) -> int
427- """ Specifies the program's supplied error handler. """
428-
429- global LAST_ERROR
430-
431- evt = event .contents
432- LAST_ERROR = {
433- "type" : evt .type ,
434- "serial" : evt .serial ,
435- "error_code" : evt .error_code ,
436- "request_code" : evt .request_code ,
437- "minor_code" : evt .minor_code ,
438- }
439- return 0
440-
441-
442- def validate (retval , func , args ):
443- # type: (int, Any, Tuple[Any, Any]) -> Any
444- """ Validate the returned value of a Xlib or XRANDR function. """
445-
446- global LAST_ERROR
447-
448- if retval != 0 and not LAST_ERROR :
449- return args
450-
451- err = "{}() failed" .format (func .__name__ )
452- details = {"retval" : retval , "args" : args }
453- raise ScreenShotError (err , details = details )
0 commit comments