Branch: refs/heads/v1.3.x
Home: https://github.com/synfig/synfig
Commit: dea9a06bb0ac861aae1b7aa5f52bae923e065584
https://github.com/synfig/synfig/commit/dea9a06bb0ac861aae1b7aa5f52bae923e065584
Author: Konstantin Dmitriev <[email protected]>
Date: 2020-07-16 (Thu, 16 Jul 2020)
Changed paths:
M synfig-studio/src/gui/canvasview.cpp
M synfig-studio/src/gui/cellrenderer/cellrenderer_time.cpp
M synfig-studio/src/gui/cellrenderer/cellrenderer_timetrack.cpp
M synfig-studio/src/gui/cellrenderer/cellrenderer_timetrack.h
M synfig-studio/src/gui/cellrenderer/cellrenderer_value.cpp
M synfig-studio/src/gui/cellrenderer/cellrenderer_value.h
M synfig-studio/src/gui/dialogs/dialog_preview.cpp
M synfig-studio/src/gui/dials/zoomdial.cpp
M synfig-studio/src/gui/docks/dock_history.cpp
M synfig-studio/src/gui/docks/dock_history.h
M synfig-studio/src/gui/docks/dock_layers.cpp
M synfig-studio/src/gui/docks/dock_navigator.cpp
M synfig-studio/src/gui/docks/dock_timetrack.cpp
M synfig-studio/src/gui/docks/dockbook.cpp
M synfig-studio/src/gui/docks/dockbook.h
M synfig-studio/src/gui/docks/dockdialog.cpp
A synfig-studio/src/gui/exception_guard.h
M synfig-studio/src/gui/main.cpp
M synfig-studio/src/gui/mainwindow.cpp
M synfig-studio/src/gui/preview.cpp
M synfig-studio/src/gui/selectdraghelper.h
M synfig-studio/src/gui/states/state_mirror.cpp
M synfig-studio/src/gui/trees/childrentree.cpp
M synfig-studio/src/gui/trees/keyframetree.cpp
M synfig-studio/src/gui/trees/keyframetree.h
M synfig-studio/src/gui/trees/layergrouptree.cpp
M synfig-studio/src/gui/trees/layergrouptree.h
M synfig-studio/src/gui/trees/layertree.cpp
M synfig-studio/src/gui/trees/layertree.h
M synfig-studio/src/gui/widgets/widget_canvastimeslider.cpp
M synfig-studio/src/gui/widgets/widget_color.cpp
M synfig-studio/src/gui/widgets/widget_coloredit.cpp
M synfig-studio/src/gui/widgets/widget_coloredit.h
M synfig-studio/src/gui/widgets/widget_curves.cpp
M synfig-studio/src/gui/widgets/widget_defaults.cpp
M synfig-studio/src/gui/widgets/widget_distance.cpp
M synfig-studio/src/gui/widgets/widget_distance.h
M synfig-studio/src/gui/widgets/widget_gradient.cpp
M synfig-studio/src/gui/widgets/widget_gradient.h
M synfig-studio/src/gui/widgets/widget_keyframe_list.cpp
M synfig-studio/src/gui/widgets/widget_keyframe_list.h
M synfig-studio/src/gui/widgets/widget_soundwave.cpp
M synfig-studio/src/gui/widgets/widget_time.cpp
M synfig-studio/src/gui/widgets/widget_timeslider.cpp
M synfig-studio/src/gui/workarea.cpp
M synfig-studio/src/gui/workarearenderer/renderer_dragbox.cpp
M synfig-studio/src/gui/workarearenderer/renderer_dragbox.h
M synfig-studio/src/gui/workarearenderer/renderer_guides.h
Log Message:
-----------
try to catch all exceptions thrown in GTK event callback handlers
This huge commit was made based on the discovery of the error reported
by Svarov-RZM in Github issue comment
https://github.com/synfig/synfig/issues/1442#issuecomment-633446649
After some investigation (reported in
https://github.com/synfig/synfig/issues/1442#issuecomment-633718069 ), the
problem is some GTK callback events call some synfigapp actions that may throw
exceptions to report
errors that would never be caught except by the main App class and main()
standard function. So, in an user perspective: Synfig Studio crashes.
For this reason, I surrounded all callback contents (60) with a try-catch
statement.
This commit avoids the crash, prints the error (or tries to) and make the
callback return the failure (if the callback can do it), propagating the error
without a sudden close of the software.
I also renamed one to follow the convention used by the rest of the code:
onKeyPressed() -> on_key_pressed_event().
Besides, I ensure every callback to be private or protected:
there's no reason to they be public.
Finally, I checked if the callbacks methods were being called by other methods
that were not signal calls. Only Workarea::on_drawing_area_event()
is used that way, but inside the same class in the methods: on_hruler_event()
and on_vruler_event(). So I think it's safe, because
I made them look to the return value and handle it.
Commit: 9b8ec1ff8714636d7f6a5679159bdae537555d01
https://github.com/synfig/synfig/commit/9b8ec1ff8714636d7f6a5679159bdae537555d01
Author: Rodolfo Ribeiro Gomes <[email protected]>
Date: 2020-07-16 (Thu, 16 Jul 2020)
Changed paths:
M synfig-studio/src/gui/exception_guard.h
Log Message:
-----------
Let Windows print useful function name
Commit: 8f5281843a405dc7edfdb4f37dd427dcb6b0e448
https://github.com/synfig/synfig/commit/8f5281843a405dc7edfdb4f37dd427dcb6b0e448
Author: Rodolfo Ribeiro Gomes <[email protected]>
Date: 2020-07-16 (Thu, 16 Jul 2020)
Changed paths:
M synfig-studio/src/gui/workarea.cpp
Log Message:
-----------
another exception-thrown guard - now in a draw-event
Commit: a9bcf99bee67583fcdafc9ca83c47f5093e3aaca
https://github.com/synfig/synfig/commit/a9bcf99bee67583fcdafc9ca83c47f5093e3aaca
Author: Rodolfo Ribeiro Gomes <[email protected]>
Date: 2020-07-16 (Thu, 16 Jul 2020)
Changed paths:
M synfig-studio/src/synfigapp/value_desc.cpp
M synfig-studio/src/synfigapp/value_desc.h
Log Message:
-----------
ValueDesc of exported valuenode keeps tracking its name changes
and invalidate if necessary
Compare: https://github.com/synfig/synfig/compare/00fa8e1c287e...a9bcf99bee67
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl