1. 11 Jul, 2018 1 commit
  2. 20 May, 2018 2 commits
  3. 28 Apr, 2018 1 commit
  4. 08 Apr, 2018 1 commit
  5. 22 Feb, 2018 1 commit
  6. 12 Feb, 2018 4 commits
    • Jehan's avatar
    • Jehan's avatar
      app: add GIMP_MESSAGE_BUG_WARNING + GIMP_MESSAGE_BUG_CRITICAL severity. · 77ed4761
      Jehan authored
      Since a few commits, I don't generate the traces anymore in errors.c but
      delay this to gui-message.c and rely on the message severity to decide
      whether or not generating traces.
      Unfortunately none of the current severities are properly describing
      this new type of messages. Even GIMP_MESSAGE_ERROR is used everywhere in
      our code NOT for actual programming bug, but often for data errors
      (which are not bugs but proper messages and should obviously not prompt
      a debug trace).
    • Jehan's avatar
      app: make backtrace processed in the thread where error happens. · b0cd4412
      Jehan authored
      Slight back step from commit 34fe992f. I don't keep track anymore of
      the number of errors inside GimpCriticalDialog. The problem is that GTK+
      calls must happen in the main thread, and errors in another thread will
      be delayed into the main thread through gdk_threads_add_idle_full().
      This makes any backtrace generated as a consequence of a threaded error
      useless (in particular any error happening in GEGL since we always
      process these as multi-threaded, whether they are or not).
      Instead I now keep track of the number of errors in gui-message.c, which
      still allows to reset the counters when the unique debug dialog is
      closed. Therefore I can now generate backtraces conditionally to the
      error counters inside the problematic thread (and right when the error
      happened), without any GTK+ call.
      This finally makes GEGL backtraces useful in the debug dialog! :-)
    • Jehan's avatar
      app: keep track of number of errors and traces in GimpCriticalDialog. · 34fe992f
      Jehan authored
      We don't want an infinite number of traces because it takes some time to
      get. Until now I was keeping track of traces in app/errors.c, but that
      was very sucky because then I was limiting traces per session. Instead
      save them as a variable of a GimpCriticalDialog instance. Therefore only
      generate the traces for WARNING/CRITICAL at the last second, when
      calling the dialog.
      When too many traces are displayed, just fallback to just add error
      messages only. But then even errors without traces can be time-consuming
      (if you have dozens of thousands of errors in a few seconds, as I had
      the other day, updating the dialog for all of them would just freeze the
      whole application for a long time).
      So also keep track of errors as well and as last fallback, just send the
      remaining errors to the stderr.
  7. 28 Jan, 2018 2 commits
    • Jehan's avatar
      app, tools: add backtrace GUI for crashes as well. · beede171
      Jehan authored
      This was a bit harder since even though we handle fatal signals,
      allowing us to do any last action before GIMP crashes, it seems more
      memory allocation is not allowed at this time. So creating a dialog or
      simply getting the return output of gdb into the main process is not
      allowed. What I do instead is running a separate program (gimpdebug)
      which will take care of creating the new dialog and running a debugger.
      I still use GimpCriticalDialog code from this separate binary, while I
      continue to use this widget also within GIMP for non-fatal errors. The
      reason why we still want to use it within GIMP is that we can bundle
      several non-fatal errors and backtrace this way (fatal errors don't
      return anyway) and it's easier to do so when created from the main
    • Jehan's avatar
      app: new error dialog to backtrace and encourage people to report bugs. · 9fdf3555
      Jehan authored
      GIMP will now try to get a backtrace (on Unix machines only for now,
      using g_on_error_stack_trace(); for Windows, we will likely have to look
      into DrMinGW).
      This is now applied to CRITICAL errors only, which usually means major
      bugs but are currently mostly hidden unless you run GIMP in terminal. We
      limit to 3 backtraces, because many CRITICAL typically get into domino
      effect and cause more CRITICALs (for instance when a g_return*_if_fail()
      returns too early).
  8. 13 Nov, 2017 1 commit
  9. 28 Oct, 2017 1 commit
    • Ell's avatar
      app: make error-console highlighting criterion configurable · 7655dd72
      Ell authored
      Currently, the error console is highlighted (shown/blinked) only
      upon errors; however, warnings, which are not shown on the
      statusbar while the error console is open, often also contain
      important information.
      Allow the user to configure which message types (errors, warnings,
      and regular messages) highlight the error console, using a new
      "highlight" submenu in the error-console menu.  Add corresponding
      config options, saved in sessionrc.  By default, highlight the
      error console unpon both errors and warnings.
  10. 07 Jun, 2017 2 commits
  11. 07 May, 2014 1 commit
  12. 02 May, 2014 2 commits
    • Michael Natterer's avatar
      app: add gimp_get_monitor_at_pointer() · 051374a1
      Michael Natterer authored
      and use it instead of duplicating that code several times.
    • Michael Natterer's avatar
      app: make things behave more reasonable with multiple monitors · 843866e7
      Michael Natterer authored
      There is now a preference option that determines whether windows
      should be opened on the same monitor as before. It should be disabled
      when the machine gets monitors plugged/unplugged dynamically ("laptop")
      and enabled when there is a static multi-monitor setup ("wokstation").
      This is merely the current simplistic policy on top of the newly added
      underlying infrastructure:
      - pass integer monitor numbers around in all places where we already
        pass around a GdkScreen. Pass the "current" monitor to these changed
        APIs, where "current" is either the monitor where the action-triggering
        widget is, or if that is unavailable the monitor where the mouse is.
      - add gimp_widget_get_monitor() in order to easily get to the monitor,
        just like gtk_widget_get_screen().
      - add screen and monitor parameters in some places that were missed
      - in sessionrc, save all window positions relative to the window's
        monitor, and save the monitor separately, if it's not the screen's
        primary monitor.
      - when restoring window positions, use the stored monitor when the new
        prefs options says so (use the screen's primary monitor if there is
        no stored monitor), otherwise use current monitor that is now passed
  13. 01 Nov, 2013 1 commit
  14. 30 Jan, 2012 2 commits
  15. 10 Jan, 2012 1 commit
  16. 06 Feb, 2011 1 commit
  17. 16 May, 2010 1 commit
    • Martin Nordholts's avatar
      app: Make tooltips in the toolbox work again · d7dc2dc1
      Martin Nordholts authored
      We need to be able to pass a GimpUIManager to
      gimp_dialog_factory_dialog_new(), so make that possible. Also make
      sure to set ui_manager in gimp_dialog_factory_dialog_new_internal()
      when we create both a dock window and a dock, so tooltips works in
      toolboxes created from scratch.
  18. 28 Feb, 2010 1 commit
    • Martin Nordholts's avatar
      app: Introduce gimp_dialog_factory_get_singleton() · 11b1300b
      Martin Nordholts authored
      Instead of including dialogs/dialogs.h everywhere, introduce
      gimp_dialog_factory_get_singleton(). The dialog factory singleton is
      still initialized by dialogs.c though.
      Right now the assumption is that we never will have another dialog
      factory instance around. There were so many problems before when we
      had four of them, so let's just keep one of them around.
  19. 20 Feb, 2010 1 commit
  20. 19 Jan, 2010 1 commit
    • Martin Nordholts's avatar
      app: global_dock_window_factory -> global_dock_factory · 66197c5d
      Martin Nordholts authored
      Rename back global_dock_window_factory to
      global_dock_factory. Renaming to global_dock_window_factory was done
      under the assumption that there would be a separate factory that would
      create non-toplevel dockables, but I don't expect this to happen in
      the forseeable future.
  21. 20 Dec, 2009 1 commit
  22. 20 Sep, 2009 1 commit
  23. 17 Jan, 2009 1 commit
    • Michael Natterer's avatar
      Change licence to GPLv3 (and to LGPLv3 for libgimp). · d9b5207a
      Michael Natterer authored
      2009-01-17  Michael Natterer  <mitch@gimp.org>
      	* all files with a GPL header and all COPYING files:
      	Change licence to GPLv3 (and to LGPLv3 for libgimp).
      	Cleaned up some copyright headers and regenerated the parsers in
      	the ImageMap plugin.
      svn path=/trunk/; revision=27913
  24. 04 Nov, 2008 1 commit
    • Sven Neumann's avatar
      bumped minimum required version of GLib to 2.18.0. · 4762b734
      Sven Neumann authored
      2008-11-04  Sven Neumann  <sven@sven>
      	* configure.in: bumped minimum required version of GLib to 
      	* INSTALL: document the updated dependency.
      	* app/core/gimp.[ch]: introduced gimp_message_literal(), a 
      	of gimp_message() that takes a literal string.
      	* app/errors.[ch]: removed format arguments from 
      	and gimp_terminate() and let them take a literal string instead.
      	* app/tools/gimptool.[ch]: introduced 
      	a variant of gimp_tool_message() that takes a literal string.
      	* app/actions/documents-commands.c
      	* app/actions/drawable-commands.c
      	* app/actions/edit-commands.c
      	* app/actions/error-console-commands.c
      	* app/actions/file-commands.c
      	* app/actions/gradients-commands.c
      	* app/actions/image-commands.c
      	* app/actions/layers-commands.c
      	* app/actions/palettes-commands.c
      	* app/actions/plug-in-commands.c
      	* app/actions/select-commands.c
      	* app/actions/vectors-commands.c
      	* app/config/gimprc.c
      	* app/core/gimp-modules.c
      	* app/core/gimp-parasites.c
      	* app/core/gimp-templates.c
      	* app/core/gimp-units.c
      	* app/core/gimpchannel.c
      	* app/core/gimpcontainer-filter.c
      	* app/core/gimpdrawable-bucket-fill.c
      	* app/core/gimpimage-convert.c
      	* app/core/gimpimage-merge.c
      	* app/core/gimpimage.c
      	* app/core/gimpimagefile.c
      	* app/core/gimplayer-floating-sel.c
      	* app/core/gimplayer.c
      	* app/core/gimpselection.c
      	* app/dialogs/convert-dialog.c
      	* app/dialogs/dialogs.c
      	* app/dialogs/palette-import-dialog.c
      	* app/dialogs/preferences-dialog.c
      	* app/dialogs/quit-dialog.c
      	* app/dialogs/stroke-dialog.c
      	* app/display/gimpdisplayshell-dnd.c
      	* app/file/file-open.c
      	* app/file/file-procedure.c
      	* app/file/file-save.c
      	* app/file/file-utils.c
      	* app/gegl/gimpcurvesconfig.c
      	* app/gegl/gimplevelsconfig.c
      	* app/gui/gui-message.c
      	* app/gui/gui.c
      	* app/gui/session.c
      	* app/paint/gimpbrushcore.c
      	* app/paint/gimpclone.c
      	* app/paint/gimpheal.c
      	* app/paint/gimpperspectiveclone.c
      	* app/paint/gimpsourcecore.c
      	* app/pdb/gimppdb-utils.c
      	* app/pdb/gimpprocedure.c
      	* app/plug-in/gimpplugin-message.c
      	* app/plug-in/gimpplugin.c
      	* app/plug-in/gimppluginmanager-restore.c
      	* app/plug-in/gimppluginprocedure.c
      	* app/text/gimptextlayer.c
      	* app/tools/gimp-tools.c
      	* app/tools/gimpaligntool.c
      	* app/tools/gimpblendtool.c
      	* app/tools/gimpbrightnesscontrasttool.c
      	* app/tools/gimpbucketfilltool.c
      	* app/tools/gimpcolorbalancetool.c
      	* app/tools/gimpcolorpickertool.c
      	* app/tools/gimpcurvestool.c
      	* app/tools/gimpdesaturatetool.c
      	* app/tools/gimpeditselectiontool.c
      	* app/tools/gimpforegroundselecttool.c
      	* app/tools/gimpfreeselecttool.c
      	* app/tools/gimpgegltool.c
      	* app/tools/gimphuesaturationtool.c
      	* app/tools/gimpimagemaptool-settings.c
      	* app/tools/gimpiscissorstool.c
      	* app/tools/gimplevelstool.c
      	* app/tools/gimpmeasuretool.c
      	* app/tools/gimppainttool.c
      	* app/tools/gimpposterizetool.c
      	* app/tools/gimpselectiontool.c
      	* app/tools/gimpsourcetool.c
      	* app/tools/gimpthresholdtool.c
      	* app/tools/gimptransformtool.c
      	* app/tools/gimpvectortool.c
      	* app/widgets/gimpactionview.c
      	* app/widgets/gimpcontrollerlist.c
      	* app/widgets/gimpcontrollers.c
      	* app/widgets/gimpdataeditor.c
      	* app/widgets/gimpdevices.c
      	* app/widgets/gimpdnd-xds.c
      	* app/widgets/gimperrordialog.c
      	* app/widgets/gimphelp.c
      	* app/widgets/gimpitemtreeview.c
      	* app/widgets/gimppdbdialog.c
      	* app/widgets/gimpsettingsbox.c
      	* app/widgets/gimpvectorstreeview.c
      	* app/widgets/gimpwidgets-utils.c
      	* app/xcf/xcf-load.c
      	* tools/pdbgen/pdb/convert.pdb
      	* tools/pdbgen/pdb/edit.pdb
      	* tools/pdbgen/pdb/floating_sel.pdb
      	* tools/pdbgen/pdb/image.pdb: use the _literal variants for
      	g_set_error(), gimp_message() and gimp_tool_message().
      	* app/pdb/convert-cmds.c
      	* app/pdb/edit-cmds.c
      	* app/pdb/floating-sel-cmds.c
      	* app/pdb/image-cmds.c: regenerated.
      svn path=/trunk/; revision=27548
  25. 10 Apr, 2008 1 commit
    • Sven Neumann's avatar
      improved the check if the message can be shown in the statusbar. Do not · 5357d440
      Sven Neumann authored
      2008-04-10  Sven Neumann  <sven@gimp.org>
      	* app/display/gimpstatusbar.[ch] 
      	improved the check if the message can be shown in the statusbar.
      	Do not show messages that don't fit into the given space.
      	* app/gui/gui-message.c (gui_message_error_dialog): if there's
      	already an error dialog associated with a progress, then use it.
      svn path=/trunk/; revision=25461
  26. 12 Mar, 2008 1 commit
    • Michael Natterer's avatar
      app/actions/data-commands.c app/actions/debug-commands.c · bc9424a2
      Michael Natterer authored
      2008-03-12  Michael Natterer  <mitch@gimp.org>
      	* app/actions/data-commands.c
      	* app/actions/debug-commands.c
      	* app/actions/dockable-commands.c
      	* app/dialogs/stroke-dialog.c
      	* app/display/gimpdisplayshell-handlers.c
      	* app/gui/gui-message.c
      	* app/gui/gui.c
      	* app/tools/gimpforegroundselectoptions.c
      	* app/tools/gimpinkoptions-gui.c
      	* app/widgets/gimpcolordialog.c
      	* app/widgets/gimpcontainerpopup.c
      	* app/widgets/gimpcontainerview-utils.c
      	* app/widgets/gimpdock.c
      	* app/widgets/gimpdockable.c
      	* app/widgets/gimpsessioninfo-book.c
      	* app/widgets/gimpsessioninfo-dock.c
      	* app/widgets/gimptoolbox.c
      	* app/widgets/gimpunitcombobox.c
      	* app/widgets/gimpviewablebox.c
      	* libgimp/gimpexport.c
      	* libgimpmodule/gimpmodule.h
      	* libgimpwidgets/gimpenumwidgets.c
      	* libgimpwidgets/gimpframe.c
      	* libgimpwidgets/gimpoldwidgets.c
      	* libgimpwidgets/gimpwidgets.c
      	* plug-ins/MapObject/mapobject_ui.c
      	* plug-ins/common/papertile.c
      	* plug-ins/common/sinus.c
      	* plug-ins/flame/flame.c
      	* plug-ins/helpbrowser/gimpthrobber.c
      	* plug-ins/script-fu/scheme-wrapper.c
      	* plug-ins/script-fu/script-fu-console.c: use accessors instead of
      	accessing GtkBin.child and GtkPaned.child1,2 directly.
      svn path=/trunk/; revision=25095
  27. 09 Dec, 2006 1 commit
  28. 22 Nov, 2006 1 commit
    • Sven Neumann's avatar
      don't raise and focus the error console for not so severe error messages. · aa09e292
      Sven Neumann authored
      2006-11-22  Sven Neumann  <sven@gimp.org>
      	* app/gui/gui-message.c (gui_message_error_console): don't raise
      	and focus the error console for not so severe error messages. Fixes
      	bug #322210 and bug #373254.
      	* app/widgets/gimperrorconsole.c (gimp_error_console_init): reduced
      	font sizes in error console.
  29. 09 Oct, 2006 1 commit
    • Michael Natterer's avatar
      Added message severities and make sure all messages are routed through a · f5afb754
      Michael Natterer authored
      2006-10-09  Michael Natterer  <mitch@gimp.org>
      	Added message severities and make sure all messages are routed
      	through a central function, so redirecting to the error console or
      	stderr work again:
      	* app/core/core-enums.[ch]: added enum GimpMessageSeverity { INFO,
      	WARNING, ERROR }.
      	* app/core/gimp.[ch] (gimp_message)
      	(gimp_message_valist): added severity parameter. Changed
      	"GimpProgress *progress" parameter to "GObject *handler", where
      	"handler" can be either a GimpProgress, a GtkWidget or NULL.
      	* app/core/gimp-gui.[ch] (gimp_show_message): ditto. Honor
      	--console-messages again. Always dispatch to the GUI message
      	handler first if it exists.
      	* app/gui/gui-message.[ch]: pass severity parameters around.
      	(gui_message_error_dialog): if "handler" is a progress, dispatch
      	the message to it first. If it is a widget (and *not* a progress),
      	use a GtkMessageDialog on top of that widget's toplevel. Fall
      	back to the usual GimpErrorDialog otherwise.
      	* app/core/gimpprogress.[ch] (gimp_progress_message): added
      	severity parameter. Also added boolean return value to the virtual
      	function so it can decide to fail if it can't handle the message.
      	* app/display/gimpdisplay.c: implement GimpProgress::message() and
      	redirect the message to GimpDisplayShell.
      	* app/display/gimpdisplayshell-progress.c: implement
      	GimpProgress::message() and redirect the message to GimpStatusbar
      	if it is not an error and if the status bar is visible.
      	* app/display/gimpstatusbar.[ch]: implement GimpProgress::message(),
      	but fail on messages that contain a newline. Show the right icons
      	for the message severities (work in progress).
      	* app/display/gimpdisplayshell.[ch]: removed
      	gimp_display_shell_message() and its _valist() variant.
      	* app/widgets/gimperrorconsole.[ch]: show the right icons for the
      	message severities.
      	* app/widgets/gimpthumbbox.c (gimp_thumb_box_progress_message):
      	return TRUE to swallow all messages.
      	* app/widgets/gimpwidgets-utils.[ch]: removed
      	gimp_show_message_dialog(). Added gimp_get_message_stock_id().
      	* app/errors.c
      	* app/actions/edit-commands.c
      	* app/actions/error-console-commands.c
      	* app/actions/file-commands.c
      	* app/actions/select-commands.c
      	* app/actions/text-editor-commands.c
      	* app/actions/vectors-commands.c
      	* app/core/gimpimage-convert.c
      	* app/core/gimpimagefile.c
      	* app/dialogs/convert-dialog.c
      	* app/dialogs/file-open-dialog.c
      	* app/dialogs/file-open-location-dialog.c
      	* app/dialogs/file-save-dialog.c
      	* app/dialogs/palette-import-dialog.c
      	* app/dialogs/stroke-dialog.c
      	* app/display/gimpdisplayshell-dnd.c
      	* app/pdb/gimppdb.c
      	* app/plug-in/gimpplugin.c
      	* app/tools/gimpimagemaptool.c
      	* app/tools/gimptool.c
      	* app/tools/gimpvectortool.c
      	* app/widgets/gimpactionview.c
      	* app/widgets/gimpcontrollerlist.c
      	* app/widgets/gimppdbdialog.c
      	* app/widgets/gimpvectorstreeview.c
      	* app/xcf/xcf-load.c
      	* app/xcf/xcf-save.c
      	* app/xcf/xcf.c
      	* tools/pdbgen/pdb/brush.pdb
      	* tools/pdbgen/pdb/gradient.pdb
      	* tools/pdbgen/pdb/image.pdb
      	* tools/pdbgen/pdb/message.pdb
      	* tools/pdbgen/pdb/palette.pdb: added severity parameter to
      	gimp_message() calls. Convert all calls to
      	gimp_show_message_dialog() and gimp_display_shell_message() to
      	gimp_message(). Also converted some more g_message() calls.
      	* app/pdb/brush_cmds.c
      	* app/pdb/gradient_cmds.c
      	* app/pdb/image_cmds.c
      	* app/pdb/message_cmds.c
      	* app/pdb/palette_cmds.c: regenerated.
  30. 22 Sep, 2006 1 commit
    • Sven Neumann's avatar
      app/gui/gui-message.c moved utility function to gimpwidgets-utils. · a69c1ff1
      Sven Neumann authored
      2006-09-22  Sven Neumann  <sven@gimp.org>
      	* app/gui/gui-message.c
      	* app/widgets/gimpwidgets-utils.[ch]: moved utility function to
      	* app/core/gimp-gui.[ch]
      	* app/gui/gui-vtable.c: added a progress parameter to
      	gimp_pdb_dialog_new() and make the dialog transient to the progress
      	* tools/pdbgen/pdb/brush_select.pdb
      	* tools/pdbgen/pdb/font_select.pdb
      	* tools/pdbgen/pdb/gradient_select.pdb
      	* tools/pdbgen/pdb/palette_select.pdb
      	* tools/pdbgen/pdb/pattern_select.pdb: pass progress to
      	* app/pdb/brush_select_cmds.c
      	* app/pdb/font_select_cmds.c
      	* app/pdb/gradient_select_cmds.c
      	* app/pdb/palette_select_cmds.c
      	* app/pdb/pattern_select_cmds.c: regenerated.
      	* libgimp/gimpselectbutton.c: cosmetics.
  31. 11 Aug, 2006 1 commit
  32. 19 Jul, 2006 1 commit
    • Sven Neumann's avatar
      Make message dialogs transient for the progress window. Addresses bug · 6d922b21
      Sven Neumann authored
      2006-07-19  Sven Neumann  <sven@gimp.org>
      	Make message dialogs transient for the progress window.
      	bug #347214.
      	* app/core/gimp-gui.[ch]: added a progress parameter to
      	gimp_message().  Let gimp_message() deal with optionally
      	delegating the message to gimp_progress_message().
      	* app/errors.c: changed accordingly.
      	* app/core/gimpprogress.[ch] (gimp_progress_message): return a
      	boolean indicating whether the message was handled.
      	* app/gui/Makefile.am
      	* app/gui/gui-message.[ch]
      	* app/gui/gui-vtable.c: moved message handling to a new file.
      	use the global error dialog for messages without a progress.
      	Otherwise attach an error dialog to the progress and try to make
      	it transient to the progress window.
      	* tools/pdbgen/pdb/message.pdb:
      	* app/plug-in/gimpplugin-progress.[ch]: don't delegate messages
      	the progress interface, this is handled by gimp_message() now.
      	* app/pdb/message_cmds.c: regenerated.
      	* app/plug-in/gimpplugin.c
      	* app/actions/documents-commands.c: formatting.