@@ -339,7 +339,7 @@ def __init__(self, canvas):
339339def save_figure (self ,* args ):
340340dialog = Gtk .FileChooserDialog (
341341title = "Save the figure" ,
342- parent = self .canvas .get_toplevel (),
342+ transient_for = self .canvas .get_toplevel (),
343343action = Gtk .FileChooserAction .SAVE ,
344344buttons = (Gtk .STOCK_CANCEL ,Gtk .ResponseType .CANCEL ,
345345Gtk .STOCK_SAVE ,Gtk .ResponseType .OK ),
@@ -371,16 +371,17 @@ def on_notify_filter(*args):
371371fmt = self .canvas .get_supported_filetypes_grouped ()[ff .get_name ()][0 ]
372372dialog .destroy ()
373373if response != Gtk .ResponseType .OK :
374- return
374+ return None
375375# Save dir for next time, unless empty str (which means use cwd).
376376if mpl .rcParams ['savefig.directory' ]:
377377mpl .rcParams ['savefig.directory' ]= os .path .dirname (fname )
378378try :
379379self .canvas .figure .savefig (fname ,format = fmt )
380+ return fname
380381except Exception as e :
381382dialog = Gtk .MessageDialog (
382- parent = self .canvas .get_toplevel (),message_format = str (e ),
383- type = Gtk .MessageType .ERROR ,buttons = Gtk .ButtonsType .OK )
383+ transient_for = self .canvas .get_toplevel (),text = str (e ),
384+ message_type = Gtk .MessageType .ERROR ,buttons = Gtk .ButtonsType .OK )
384385dialog .run ()
385386dialog .destroy ()
386387