Mypaint version: 1.2.1+gitexport.bcf5a28d System information: Windows-10-10.0.18362-SP0 Using: Python 2.7.13, GTK 3.22.7, GdkPixbuf 2.36.4, Cairo 1.15.4, GLib 2.50.1 Traceback (most recent call last): File "C:/Program Files/mypaint-w64/mingw64/share/mypaint/gui/document.py", line 623, button_release_cb(self=<gui.document.Document object>, tdw=<tileddrawwidget.TiledDrawWidget object at 0x000...0d981320 (TiledDrawWidget at 0x000000000e445410)>, event=<Gdk.EventButton object at 0x0000000010d30fc8 (void at 0x0000000012da96e0)>) # Normal event dispatch return CanvasController.button_release_cb(self, tdw, event) variables: {'CanvasController.button_release_cb': ('global', <unbound method CanvasController.button_release_cb>), 'tdw': ('local', <tileddrawwidget.TiledDrawWidget object at 0x000000000d981320 (TiledDrawWidget at 0x000000000e445410)>), 'self': ('local', <gui.document.Document object at 0x000000000d99a8d0>), 'event': ('local', <Gdk.EventButton object at 0x0000000010d30fc8 (void at 0x0000000012da96e0)>)} File "C:/Program Files/mypaint-w64/mingw64/share/mypaint/gui/document.py", line 114, button_release_cb(self=<gui.document.Document object>, tdw=<tileddrawwidget.TiledDrawWidget object at 0x000...0d981320 (TiledDrawWidget at 0x000000000e445410)>, event=<Gdk.EventButton object at 0x0000000010d30fc8 (void at 0x0000000012da96e0)>) mode = self.modes.top result = mode.button_release_cb(tdw, event) self._update_last_event_info(tdw, event) variables: {'mode.button_release_cb': ('local', <bound method FreehandMode.button_release_cb of <gui.freehand.FreehandMode object at 0x000000000ecefc90>>), 'tdw': ('local', <tileddrawwidget.TiledDrawWidget object at 0x000000000d981320 (TiledDrawWidget at 0x000000000e445410)>), 'result': (None, []), 'event': ('local', <Gdk.EventButton object at 0x0000000010d30fc8 (void at 0x0000000012da96e0)>)} File "C:/Program Files/mypaint-w64/mingw64/share/mypaint/gui/freehand.py", line 410, button_release_cb(self=<gui.freehand.FreehandMode object>, tdw=<tileddrawwidget.TiledDrawWidget object at 0x000...0d981320 (TiledDrawWidget at 0x000000000e445410)>, event=<Gdk.EventButton object at 0x0000000010d30fc8 (void at 0x0000000012da96e0)>) # Notify observers after processing the event self.doc.input_stroke_ended(event) variables: {'self.doc.input_stroke_ended': ('local', <MethodWithObservers gui.document.Document.input_stroke_ended>), 'event': ('local', <Gdk.EventButton object at 0x0000000010d30fc8 (void at 0x0000000012da96e0)>)} File "C:/Program Files/mypaint-w64/mingw64/share/mypaint/lib/observable.py", line 284, __call__(self=<MethodWithObservers gui.document.Document.input_stroke_ended>, *args=(<Gdk.EventButton object at 0x0000000010d30fc8 (void at 0x0000000012da96e0)>,), **kwargs={}) try: observer(observed, *args, **kwargs) except BoundObserverMethod._ReferenceError: variables: {'observed': ('local', <gui.document.Document object at 0x000000000d99a8d0>), 'args': ('local', (<Gdk.EventButton object at 0x0000000010d30fc8 (void at 0x0000000012da96e0)>,)), 'observer': ('local', <BoundObserverMethod gui.brushmanager.BrushManager._input_stroke_ended_cb>), 'kwargs': ('local', {})} File "C:/Program Files/mypaint-w64/mingw64/share/mypaint/lib/observable.py", line 467, __call__(self=<BoundObserverMethod gui.brushmanager.BrushManager._input_stroke_ended_cb>, observed=<gui.document.Document object>, *args=(<Gdk.EventButton object at 0x0000000010d30fc8 (void at 0x0000000012da96e0)>,), **kwargs={}) raise self._ReferenceError self._observer_func(observer, observed, *args, **kwargs) del observer variables: {'observed': ('local', <gui.document.Document object at 0x000000000d99a8d0>), 'args': ('local', (<Gdk.EventButton object at 0x0000000010d30fc8 (void at 0x0000000012da96e0)>,)), 'self._observer_func': ('local', <function _input_stroke_ended_cb at 0x000000000d8dbc08>), 'observer': ('local', <gui.brushmanager.BrushManager object at 0x000000000daa5090>), 'kwargs': ('local', {})} File "C:/Program Files/mypaint-w64/mingw64/share/mypaint/gui/brushmanager.py", line 787, _input_stroke_ended_cb(self=<gui.brushmanager.BrushManager object>, doc=<gui.document.Document object>, event=<Gdk.EventButton object at 0x0000000010d30fc8 (void at 0x0000000012da96e0)>) for i, hb in enumerate(self.history): hb_info = hb.brushinfo hb_parent_name = hb_info.settings.get("parent_brush_name") variables: {'hb.brushinfo': ('local', <lib.brush.BrushInfo object at 0x000000000ea6bdd0>), 'hb_info': ('local', <lib.brush.BrushInfo object at 0x000000000ea6bf90>)} File "C:/Program Files/mypaint-w64/mingw64/share/mypaint/gui/brushmanager.py", line 969, get_brushinfo(self=<ManagedBrush u'history_1' p=deevad/2B_pencil>) def get_brushinfo(self): self._ensure_settings_loaded() return self._brushinfo variables: {'self._ensure_settings_loaded': ('local', <bound method ManagedBrush._ensure_settings_loaded of <ManagedBrush u'history_1' p=deevad/2B_pencil>>)} File "C:/Program Files/mypaint-w64/mingw64/share/mypaint/gui/brushmanager.py", line 1211, _ensure_settings_loaded(self=<ManagedBrush u'history_1' p=deevad/2B_pencil>) logger.debug("Loading %r...", self) self.load() assert self._settings_loaded variables: {'self.load': ('local', <bound method ManagedBrush.load of <ManagedBrush u'history_1' p=deevad/2B_pencil>>)} File "C:/Program Files/mypaint-w64/mingw64/share/mypaint/gui/brushmanager.py", line 1153, load(self=<ManagedBrush u'history_1' p=deevad/2B_pencil>) self._load_preview() self._load_settings() variables: {'self._load_settings': ('local', <bound method ManagedBrush._load_settings of <ManagedBrush u'history_1' p=deevad/2B_pencil>>)} File "C:/Program Files/mypaint-w64/mingw64/share/mypaint/gui/brushmanager.py", line 1175, _load_settings(self=<ManagedBrush u'history_1' p=deevad/2B_pencil>) try: self._brushinfo.load_from_string(brushinfo_str) except BrushInfo.ParseError, e: variables: {'self._brushinfo.load_from_string': ('local', <bound method BrushInfo.load_from_string of <lib.brush.BrushInfo object at 0x000000000ea6bdd0>>), 'brushinfo_str': ('local', '{\n "comment": "MyPaint brush file", \n "description": "A digital pencil soft 2B", \n "group": "", \n "notes": "A brush preset part of the Brushkit v0.6 \\n created in october 2012 by David Revoy ( aka Deevad ) \\n source: http://www.davidrevoy.com/article142/ressource-mypaint-brushes \\n license: CC-Zero/Public-Domain", \n "parent_brush_name": "deevad/2B_pencil", \n "settings": {\n "anti_aliasing": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "change_color_h": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "change_color_hsl_s": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "change_color_hsv_s": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "change_color_l": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "change_color_v": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "color_h": {\n "base_value": 0.02525252525252525, \n "inputs": {}\n }, \n "color_s": {\n "base_value": 1.0, \n "inputs": {}\n }, \n "color_v": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "colorize": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "custom_input": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "custom_input_slowness": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "dabs_per_actual_radius": {\n "base_value": 4.0, \n "inputs": {}\n }, \n "dabs_per_basic_radius": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "dabs_per_second": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "direction_filter": {\n "base_value": 2.0, \n "inputs": {}\n }, \n "elliptical_dab_angle": {\n "base_value": 90.0, \n "inputs": {}\n }, \n "elliptical_dab_ratio": {\n "base_value": 1.0, \n "inputs": {}\n }, \n "eraser": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "gridmap_scale": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "gridmap_scale_x": {\n "base_value": 1.0, \n "inputs": {}\n }, \n "gridmap_scale_y": {\n "base_value": 1.0, \n "inputs": {}\n }, \n "hardness": {\n "base_value": 0.2, \n "inputs": {\n "pressure": [\n [\n 0.0, \n 0.0\n ], \n [\n 1.0, \n 0.3\n ]\n ]\n }\n }, \n "lock_alpha": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_angle": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_angle_2": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_angle_2_asc": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_angle_2_view": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_angle_adj": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_angle_asc": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_angle_view": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_by_random": {\n "base_value": 0.5, \n "inputs": {\n "pressure": [\n [\n 0.0, \n 0.0\n ], \n [\n 1.0, \n -0.3\n ]\n ]\n }\n }, \n "offset_by_speed": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_by_speed_slowness": {\n "base_value": 1.0, \n "inputs": {}\n }, \n "offset_multiplier": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_x": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_y": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "opaque": {\n "base_value": 0.15000000000027122, \n "inputs": {}\n }, \n "opaque_linearize": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "opaque_multiply": {\n "base_value": 0.0, \n "inputs": {\n "pressure": [\n [\n 0.0, \n 0.0\n ], \n [\n 1.0, \n 1.0\n ]\n ]\n }\n }, \n "paint_mode": {\n "base_value": 1.0, \n "inputs": {}\n }, \n "posterize": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "posterize_num": {\n "base_value": 0.05000000074505806, \n "inputs": {}\n }, \n "pressure_gain_log": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "radius_by_random": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "radius_logarithmic": {\n "base_value": 0.75, \n "inputs": {\n "pressure": [\n [\n 0.0, \n -0.687917\n ], \n [\n 0.752976, \n 0.236471\n ], \n [\n 1.0, \n 0.286632\n ]\n ]\n }\n }, \n "restore_color": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "slow_tracking": {\n "base_value": 1.03, \n "inputs": {}\n }, \n "slow_tracking_per_dab": {\n "base_value": 1.5, \n "inputs": {}\n }, \n "smudge": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "smudge_bucket": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "smudge_length": {\n "base_value": 0.5, \n "inputs": {}\n }, \n "smudge_length_log": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "smudge_radius_log": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "smudge_transparency": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "snap_to_pixel": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "speed1_gamma": {\n "base_value": 4.0, \n "inputs": {}\n }, \n "speed1_slowness": {\n "base_value": 0.04, \n "inputs": {}\n }, \n "speed2_gamma": {\n "base_value": 4.0, \n "inputs": {}\n }, \n "speed2_slowness": {\n "base_value": 0.8, \n "inputs": {}\n }, \n "stroke_duration_logarithmic": {\n "base_value": 4.0, \n "inputs": {}\n }, \n "stroke_holdtime": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "stroke_threshold": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "tracking_noise": {\n "base_value": 0.0, \n "inputs": {}\n }\n }, \n "version": 3\n}')} File "C:/Program Files/mypaint-w64/mingw64/share/mypaint/lib/brush.py", line 181, load_from_string(self=<lib.brush.BrushInfo object>, settings_str='{\n "comment": "MyPaint brush file", \n "des..."inputs": {}\n }\n }, \n "version": 3\n}') # new json-based brush format self.from_json(settings_str) elif settings_str.startswith('#'): variables: {'self.from_json': ('local', <bound method BrushInfo.from_json of <lib.brush.BrushInfo object at 0x000000000ea6bdd0>>), 'settings_str': ('local', '{\n "comment": "MyPaint brush file", \n "description": "A digital pencil soft 2B", \n "group": "", \n "notes": "A brush preset part of the Brushkit v0.6 \\n created in october 2012 by David Revoy ( aka Deevad ) \\n source: http://www.davidrevoy.com/article142/ressource-mypaint-brushes \\n license: CC-Zero/Public-Domain", \n "parent_brush_name": "deevad/2B_pencil", \n "settings": {\n "anti_aliasing": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "change_color_h": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "change_color_hsl_s": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "change_color_hsv_s": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "change_color_l": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "change_color_v": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "color_h": {\n "base_value": 0.02525252525252525, \n "inputs": {}\n }, \n "color_s": {\n "base_value": 1.0, \n "inputs": {}\n }, \n "color_v": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "colorize": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "custom_input": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "custom_input_slowness": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "dabs_per_actual_radius": {\n "base_value": 4.0, \n "inputs": {}\n }, \n "dabs_per_basic_radius": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "dabs_per_second": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "direction_filter": {\n "base_value": 2.0, \n "inputs": {}\n }, \n "elliptical_dab_angle": {\n "base_value": 90.0, \n "inputs": {}\n }, \n "elliptical_dab_ratio": {\n "base_value": 1.0, \n "inputs": {}\n }, \n "eraser": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "gridmap_scale": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "gridmap_scale_x": {\n "base_value": 1.0, \n "inputs": {}\n }, \n "gridmap_scale_y": {\n "base_value": 1.0, \n "inputs": {}\n }, \n "hardness": {\n "base_value": 0.2, \n "inputs": {\n "pressure": [\n [\n 0.0, \n 0.0\n ], \n [\n 1.0, \n 0.3\n ]\n ]\n }\n }, \n "lock_alpha": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_angle": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_angle_2": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_angle_2_asc": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_angle_2_view": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_angle_adj": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_angle_asc": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_angle_view": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_by_random": {\n "base_value": 0.5, \n "inputs": {\n "pressure": [\n [\n 0.0, \n 0.0\n ], \n [\n 1.0, \n -0.3\n ]\n ]\n }\n }, \n "offset_by_speed": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_by_speed_slowness": {\n "base_value": 1.0, \n "inputs": {}\n }, \n "offset_multiplier": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_x": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "offset_y": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "opaque": {\n "base_value": 0.15000000000027122, \n "inputs": {}\n }, \n "opaque_linearize": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "opaque_multiply": {\n "base_value": 0.0, \n "inputs": {\n "pressure": [\n [\n 0.0, \n 0.0\n ], \n [\n 1.0, \n 1.0\n ]\n ]\n }\n }, \n "paint_mode": {\n "base_value": 1.0, \n "inputs": {}\n }, \n "posterize": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "posterize_num": {\n "base_value": 0.05000000074505806, \n "inputs": {}\n }, \n "pressure_gain_log": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "radius_by_random": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "radius_logarithmic": {\n "base_value": 0.75, \n "inputs": {\n "pressure": [\n [\n 0.0, \n -0.687917\n ], \n [\n 0.752976, \n 0.236471\n ], \n [\n 1.0, \n 0.286632\n ]\n ]\n }\n }, \n "restore_color": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "slow_tracking": {\n "base_value": 1.03, \n "inputs": {}\n }, \n "slow_tracking_per_dab": {\n "base_value": 1.5, \n "inputs": {}\n }, \n "smudge": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "smudge_bucket": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "smudge_length": {\n "base_value": 0.5, \n "inputs": {}\n }, \n "smudge_length_log": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "smudge_radius_log": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "smudge_transparency": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "snap_to_pixel": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "speed1_gamma": {\n "base_value": 4.0, \n "inputs": {}\n }, \n "speed1_slowness": {\n "base_value": 0.04, \n "inputs": {}\n }, \n "speed2_gamma": {\n "base_value": 4.0, \n "inputs": {}\n }, \n "speed2_slowness": {\n "base_value": 0.8, \n "inputs": {}\n }, \n "stroke_duration_logarithmic": {\n "base_value": 4.0, \n "inputs": {}\n }, \n "stroke_holdtime": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "stroke_threshold": {\n "base_value": 0.0, \n "inputs": {}\n }, \n "tracking_noise": {\n "base_value": 0.0, \n "inputs": {}\n }\n }, \n "version": 3\n}')} File "C:/Program Files/mypaint-w64/mingw64/share/mypaint/lib/brush.py", line 165, from_json(self=<lib.brush.BrushInfo object>, json_string='{\n "comment": "MyPaint brush file", \n "des..."inputs": {}\n }\n }, \n "version": 3\n}') if k not in self.settings: print 'ignoring unknown brush setting %r' % k continue variables: {'k': ('local', u'offset_angle_2_view')} IOError: [Errno 9] Bad file descriptor
On Windows 10 x64. My windows is fully up to date, as are the drivers for the tablet.
In addition to popping up that error window immediately, MyPaint draws long horizontal lines, as though the cursor was bouncing offscreen to the right and then back, every time I put the stylus down.
In the latest alpha, there are no error messages, but the program doesn’t respond to the stylus at all-- even when tapping on UI elements like the exit button. The mouse acts normally.