Delay execution of CellRendererBinary callbacks
If those callbacks open a popups, GTK shows some warning and eventually it leads to a segmentation fault. So we delay them using by executing them when the loop is idle. issue8111 review48731002
This commit is contained in:
1 parent
9e1fa47b2c
commit
74eb7d4e94
1 file changed
+11
-3
@@ -8,6 +8,8 @@ import webbrowser
|
||||
|
||||
from functools import wraps, partial
|
||||
|
||||
import gobject
|
||||
|
||||
from tryton.gui.window.win_search import WinSearch
|
||||
from tryton.gui.window.win_form import WinForm
|
||||
from tryton.gui.window.view_form.screen import Screen
|
||||
@@ -426,9 +428,15 @@ class Binary(GenericText):
|
||||
if renderer is None:
|
||||
renderer = partial(CellRendererBinary, bool(self.filename))
|
||||
super(Binary, self).__init__(view, attrs, renderer=renderer)
|
||||
self.renderer.connect('select', self.select_binary)
|
||||
self.renderer.connect('open', self.open_binary)
|
||||
self.renderer.connect('save', self.save_binary)
|
||||
self.renderer.connect(
|
||||
'select',
|
||||
lambda *args: gobject.idle_add(self.select_binary, *args))
|
||||
self.renderer.connect(
|
||||
'open',
|
||||
lambda *args: gobject.idle_add(self.open_binary, *args))
|
||||
self.renderer.connect(
|
||||
'save',
|
||||
lambda *args: gobject.idle_add(self.save_binary, *args))
|
||||
self.renderer.connect('clear', self.clear_binary)
|
||||
|
||||
def get_textual_value(self, record):
|
||||
|
||||
Reference in new issue
Block a user