2004-05-23 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-types.h: reoedered to somehow reflect the
class hierarchy.
Some dockable context handling cleanup:
* app/widgets/gimpdocked.[ch]: removed "prev_context" parameter
from GimpDocked::set_context(). Widgets which need the old context
to disconnect from should remember it themselves.
* app/widgets/gimpdockable.c (gimp_dockable_set_context): don't
pass the old context to gimp_docked_set_context().
Some cleanup.
* app/widgets/gimpcontainerbox.c
* app/widgets/gimpcontainereditor.c: changed accordingly.
* app/display/gimpnavigationview.[ch]
* app/widgets/gimpimageeditor.[ch]
* app/widgets/gimpitemtreeview.[ch]: added a "context" member
which holds the context set by GimpDocked::set_context().
* app/widgets/gimpdrawabletreeview.c: use the view's context
instead of gimp_get_user_context().
* app/widgets/gimpcoloreditor.[ch]: removed separate API to
set the context because it implements the GimpDockedInterface.
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimperrorconsole.c: pass "menu-factory",
"menu-identifier" and "ui-path" to g_object_new() instead of
calling gimp_editor_create_menu() later.
Action cleanup partly related to the context stuff above:
* app/actions/actions.c (action_data_get_gimp): get the Gimp from
context->gimp, not gimage->gimp because gimage may be NULL.
(action_data_get_context): changed to use the new context members
added above.
* app/actions/channels-actions.c (channels_actions_update): cleanup.
* app/actions/edit-actions.c (edit_actions_update): fixed
sensitivity of "edit-undo-clear".
* app/actions/vectors-actions.c (vectors_actions_update): make
"vectors-merge-visible" sensitive only if there is more than one
GimpVectors in the image.
* app/actions/colormap-editor-actions.c
* app/actions/gradient-editor-actions.c
* app/actions/palette-editor-actions.c: added FG/BG color previews
to actions which take colors from them. Changed code to be safe
against "context" being NULL.
* app/actions/drawable-commands.c:
s/active_drawable/drawable/g. Makes the code more readable.
* app/actions/select-commands.[ch]
* app/actions/vectors-commands.[ch]: removed public stroke utility
functions and other stuff which is not needed any more because
dialog buttons invoke the correct actions now. Moved the
functions' code to the resp. action callbacks.
2004-05-17 Michael Natterer <mitch@gimp.org>
* menus/menus.xsl: put the image popup menu into a dummy menubar
to work around the silly GtkUIManager restriction that popup menus
can't have tearoff items.
* app/menus/menus.c
* app/menus/image-menu.c
* app/display/gimpdisplayshell-callbacks.c
* app/gui/gui-vtable.c
* app/menus/plug-in-menus.c: changed accordingly.
* app/gui/gui.c (gui_restore_after_callback): connect to
"notify::tearoff-menus" of GimpGuiConfig and reconfigure the
global image UI manager accordingly.
* app/config/gimpguiconfig.c: removed GIMP_PARAM_RESTART from the
"tearoff-menus" property because GtkUIManager can change this on
the fly.
* app/display/gimpdisplayshell.[ch]: added the menubar to the
GimpDisplayShell struct. Some cleanup in gimp_display_shell_new().
* app/display/gimpdisplayshell-appearance.c
(gimp_display_shell_set_show_menubar): use shell->menubar instead
of asking the UI manager.
* app/widgets/gimpuimanager.[ch]: changed gimp_ui_manager_ui_get()
to transparently load the XML files even if a sub-widget was
requested. Reordered parameters of gimp_ui_manager_ui_popup().
Lots of internal cleanups.
* app/widgets/gimpdockable.c
* app/widgets/gimptooloptionseditor.c: simplified accordingly.
* app/widgets/gimpeditor.[ch]: added new function
gimp_editor_popup_menu() which takes a GimpMenuPositionFunc and
updates/shows the editor's menu.
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimperrorconsole.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c: use gimp_editor_popup_menu().
* app/widgets/gimptoolbox.c: moved all code from
gimp_toolbox_new() to GObject::constructor().
2004-05-13 Michael Natterer <mitch@gimp.org>
Added GimpViewable infrastructure which enables migrating from
TempBuf to GdkPixbuf for both providing and getting previews:
* app/core/gimpviewable.[ch]: added new virtual functions
GimpViewable::get_pixbuf() and GimpViewable::get_new_pixbuf()
which are implemented exactly as get_preview() and
get_new_preview() except that get_new_pixbuf() has a default
implementation which creates the pixbuf from a TempBuf.
Renamed public functions _get_preview_pixbuf() and
_get_new_preview_pixbuf() to _get_pixbuf() and _get_new_pixbuf().
Added gimp_viewable_get_dummy_pixbuf() and use it from
gimp_viewable_get_dummy_preview().
* app/core/gimpimagefile.c (gimp_imagefile_save_thumb)
* app/display/gimpdisplayshell.c (gimp_display_shell_update_icon)
* app/gui/resize-dialog.c (resize_dialog_new): changed accordingly.
2004-05-10 Sven Neumann <sven@gimp.org>
* app/actions/view-actions.c: added a stock icon for "view-zoom-1-1".
* app/widgets/gimpunitcombobox.[ch]: added functions to get and
set the active unit.
* app/widgets/gimpunitstore.c (gimp_unit_store_tree_model_get_value):
need to special case GIMP_UNIT_PIXEL.
* app/display/Makefile.am
* app/display/display-types.h
* app/display/gimpscalecombobox.[ch]: new widget to be used in the
display's statusbar.
* app/display/gimpdisplayshell-cursor.[ch]: always display the
cursor position, not only if the cursor is inside the image. Added
new function gimp_display_shell_clear_cursor() to clear the cursor
label.
* app/display/gimpdisplayshell-callbacks.c: changed accordingly.
* app/display/gimpstatusbar.[ch]
* app/display/gimpdisplayshell.c
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell-scale.c: do not explicitely resize
the statusbar cursor label, connect to GimpDisplayShell::scaled
instead. Added a GimpScaleComboBox to the status bar.
2004-05-08 Sven Neumann <sven@gimp.org>
* app/display/gimpstatusbar.c (gimp_statusbar_resize_cursor):
added 1 pixel horizontal padding around the label.
2004-05-08 Sven Neumann <sven@gimp.org>
* app/display/gimpstatusbar.[ch]: renamed struct member combo to
unit_combo. Place the combobox into the cursor frame.
2004-05-08 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpunitcombobox.[ch]
* app/widgets/gimpunitstore.[ch]: added a prototype of a unit menu
based on GtkComboBox. Will move this to libgimpwidgets later...
* app/display/gimpstatusbar.[ch]: use the new GimpUnitComboBox and
GimpUnitStore.
* themes/Default/gtkrc
* themes/Small/gtkrc: hardcode the appearance of the
GimpUnitComboBox. It uses a hack that doesn't work in list mode.
2004-05-07 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-colormap.[ch]: added a const qualifier.
Changed how the image unit and dot-for-dot mode is handled. Might
break things and certainly needs more changes (mainly in tools):
* app/core/gimptemplate.c: allow GIMP_UNIT_PIXEL as image unit.
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell-scale.c
* app/display/gimpdisplayshell-title.c
* app/display/gimpstatusbar.c: always use the image unit for the
rulers and to display lengths.
* app/widgets/gimptemplateeditor.c: redone GimpTemplateEditor
based on a dialog mockup from Jimmac and Tigert.
* app/core/core-enums.[ch]: changed some descriptions used by the
template editor.
2004-05-04 Michael Natterer <mitch@gimp.org>
Fix bug #141719:
* app/tools/gimpmovetool.c (gimp_move_tool_motion): use RINT()
instead of ROUND() to round double coords to guide positions.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): pass RINT()-rounded
coords to gimp_display_shell_update_cursor() instead of implicitly
truncating by casting to int.
2004-05-02 Michael Natterer <mitch@gimp.org>
* app/actions/*-actions.c: added help IDs to all actions
representing the toplevel popups and menus (as fallbacks for the
still-to-be-written help system intrgration of GimpUIManager).
* app/display/gimpdisplayshell.c (gimp_display_shell_new): removed
call to gtk_ui_manager_ensure_update() because that's done by
gimp_ui_manager_ui_get() now.
* app/widgets/gimpmenufactory.[ch]: removed API to register and
create item factories.
* app/gui/menus.c: changed accordingly.
* app/gui/dialogs.c
* app/actions/plug-in-commands.c
* app/gui/file-dialog-utils.c
* app/gui/file-save-dialog.c
* app/widgets/gimpdataeditor.c
* app/widgets/gimpdockable.c
* app/widgets/gimpdockbook.[ch]
* app/widgets/gimpimagedock.c
* app/widgets/gimpitemtreeview.c: removed leftover item factory
cruft.
* app/widgets/widgets-types.h: removed item factory typedefs...
* app/widgets/gimpitemfactory.h: ...and added them here.
* app/widgets/gimpactiongroup.[ch]: added new function
gimp_action_group_add_plug_in_actions().
* app/actions/plug-in-actions.c: use it here instead of adding
the actions manually.
* app/widgets/gimptoolbox.c: ported the code which dynamically
updates the tool button tooltips on accelerator changes to
GtkAction. Disabled the whole stuff because GTK+ lacks
gtk_action_get_accel_closure().
2004-04-29 Michael Natterer <mitch@gimp.org>
Switch from GtkItemFactory to GtkUIManager. The migration is
almost complete, still stuff missing/incomplete, definitely added
a bunch of new bugs...
* app/actions/*-commands.[ch]: converted all callback from
GtkItemFactory callbacks to GtkAction callbacks.
* app/actions/debug-actions.c
* app/actions/gradient-editor-actions.c
* app/actions/help-actions.c
* app/actions/plug-in-actions.c
* app/actions/qmask-actions.c
* app/actions/tool-options-actions.c: various fixes.
* app/display/gimpdisplay.[ch]
* app/display/gimpdisplayshell-appearance.[ch]
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell.[ch]: move everything from
GtkItemFactory to GtkUIManager.
* app/gui/dialogs.[ch]: added new function dialogs_get_toolbox().
Needed because the action callbacks don't have a widget parameter
and sometimes we need a parent window for showing dialogs.
* app/gui/Makefile.am
* app/gui/brushes-menu.[ch]
* app/gui/buffers-menu.[ch]
* app/gui/channels-menu.[ch]
* app/gui/colormap-editor-menu.[ch]
* app/gui/dialogs-menu.[ch]
* app/gui/documents-menu.[ch]
* app/gui/error-console-menu.[ch]
* app/gui/fonts-menu.[ch]
* app/gui/gradient-editor-menu.[ch]
* app/gui/gradients-menu.[ch]
* app/gui/images-menu.[ch]
* app/gui/layers-menu.[ch]
* app/gui/palette-editor-menu.[ch]
* app/gui/palettes-menu.[ch]
* app/gui/patterns-menu.[ch]
* app/gui/qmask-menu.[ch]
* app/gui/templates-menu.[ch]
* app/gui/vectors-menu.[ch]: removed these files.
* app/gui/gui.c: create a global UI manager for the image popup
menu and the toolbox menubar.
* app/gui/menus.[ch]: removed all GtkItemFactory code.
* app/gui/image-menu.[ch]
* app/gui/toolbox-menu.[ch]: removed everything except the trivial
setup_funcs.
* app/gui/file-open-menu.c
* app/gui/file-save-menu.c
* app/gui/tool-options-menu.c: don't use the macros from menus.h
any more, they are gone.
* app/gui/gui-vtable.c
* app/gui/plug-in-menus.[ch]: create/destroy the dynamic plug-in
menu entries.
* app/tools/gimpimagemaptool.c: s/gimp_item_factory_update/
gimp_ui_manager_update/g
* app/widgets/gimpuimanager.[ch]: added API to get an action
group by name.
* app/widgets/gimpmenufactory.c: don't choke on the item_factory
entries being NULL.
* app/widgets/gimpactiongroup.c: make sure booleans set using
g_object_set() only have TRUE or FALSE values.
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainereditor.[ch]
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpdockable.[ch]
* app/widgets/gimpdocked.[ch]
* app/widgets/gimpeditor.[ch]
* app/widgets/gimperrorconsole.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimptoolbox.c
* app/widgets/gimptooloptionseditor.c: removed all GtkItemFactory
code and enable the #if 0'ed UI manager stuff.
* menus/gradient-editor-menu.xml: fixed typos.
* menus/image-menu.xml: duplicate everything so we have both
an image menubar and an image popup menu. Badly cries for an
XSL processor.
* menus/toolbox-menu.xml: added an "Extensions" placeholder.
2004-04-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.[ch]: remember and ref the created
widgets. Added gimp_ui_manager_ui_popup() which pops up a GtkMenu
with a custom GimpMenuPositionFunc and a GtkDestroyNotify which is
called on popdown.
* app/widgets/gimpmenufactory.c (gimp_menu_factory_finalize):
don't forget to free the list of managed UIs.
* app/widgets/gimpdockable.[ch]
* app/widgets/gimpdockbook.[ch]
* app/widgets/gimpdocked.[ch]
* app/widgets/gimpeditor.[ch]: added GimpUIManager stuff parallel
to the to-be-removed GtkItemFactory stuff.
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimperrorconsole.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimptooloptionseditor.c: changed accordingly and added
#if 0'ed code which actually uses all the UI managers.
* app/display/gimpdisplay.c
* app/display/gimpdisplayshell.c
* app/gui/gui-vtable.c: disabled some gimp_ui_manager_update()
calls because they were invoking toggle and radio callbacks
which still have the wrong signature.
2004-04-21 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpuimanager.[ch]: new GtkUIManager subclass. Adds
API to update all action groups and knows which UIs it can create
from which XML files.
* app/widgets/gimpmenufactory.[ch]: register the XML file
basenames along with path of their toplevel menus. Create
GimpUIManagers instead of GtkUIManagers and register the
XML files and menu paths with them.
* app/gui/menus.c: register all XML files and their toplevel
menu paths.
* app/widgets/gimpeditor.[ch]: also create a GimpUIManager when
creating the GtkItemFactory. Added "const gchar *ui_identifier"
parameter to gimp_editor_create_menu().
* app/widgets/gimpcontainereditor.[ch]
* app/widgets/gimpdataeditor.[ch]
* app/widgets/gimpdatafactoryview.[ch]
* app/widgets/gimpitemtreeview.[ch]: added "ui_identifier"
parameters to all constructors.
* app/widgets/gimpbrusheditor.c
* app/widgets/gimpbrushfactoryview.c
* app/widgets/gimpbufferview.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainerpopup.c
* app/widgets/gimpdocumentview.c
* app/widgets/gimperrorconsole.c
* app/widgets/gimpfontview.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpimageview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimppatternfactoryview.c
* app/widgets/gimptemplateview.c
* app/widgets/gimptooloptionseditor.c
* app/gui/dialogs-constructors.c
* app/gui/gradient-select.c
* app/gui/palette-select.c
* app/gui/pattern-select.c: pass UI identifiers to the changed
functions above.
* app/display/gimpdisplayshell.[ch]: added a GimpUIManager for
the menubar (menubar creating code still commented out).
* app/display/gimpdisplay.c
* app/gui/gui-vtable.c: update the ui manager.
2004-04-15 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell.c
* app/widgets/gimpcontainertreeview.c: removed runtime version
checks and workarounds for bugs which are fixed in GTK+ 2.4.
* app/widgets/gimpfiledialog.c
(gimp_file_dialog_selection_changed): added runtime check for GTK+
2.4.1 and work around GtkFileChooser's missing "update_preview"
functionality for multiple selections if the dependency is not
met.
* app/widgets/gimpwidgets-utils.c (gimp_menu_position)
(gimp_menu_button_position): call gtk_menu_set_monitor() until
bug #139187 is fixed.
2004-04-04 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-draw.[ch] pass the bounding box of
the exposed area to gimp_display_shell_draw_grid() and draw only
the relevant part of the grid. Fixes bug #138606.
2004-04-04 Sven Neumann <sven@gimp.org>
Cache the GC for drawing the grid as suggested in bug #138081:
* app/display/gimpdisplayshell.[ch]: added a grid_gc member to
GimpDisplayShell.
* app/display/gimpdisplayshell-handlers.c
(gimp_display_shell_grid_notify_handler)
(gimp_display_shell_disconnect): invalidate the grid GC.
* app/display/gimpdisplayshell-draw.c (gimp_display_shell_draw_grid):
use the cached grid_gc. Also applied the fix that Pedro Gimeno did
for bug #138606.
2004-03-22 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_reconnect):
call gimp_display_shell_expose_full() so the whole canvas gets
cleared when reverting the image.
2004-03-21 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_events): added run-time version
check and do the workaround for bug #136636 only if
the Gtk+ version is < 2.2.5.
* m4macros/gimp-2.0.m4: require gimp >= 2.0.0
2004-03-20 Pedro Gimeno <pggimeno@wanadoo.es>
Fixed several off-by-one problems in display:
* app/display/gimpdisplayshell.h (PROJ_ROUND): New macro to apply
to a float the same rounding method as the one used when rendering.
(SCALEX, SCALEY): Use PROJ_ROUND instead of truncating.
* app/display/gimpdisplayshell-transform.c
(gimp_display_shell_transform_xy): Accept gdouble image coordinates
even if the returned screen coordinates are integer. Use PROJ_ROUND
instead of (gint) to apply proper rounding. Fixes bug #137566.
* app/display/gimpdisplayshell-transform.h
(gimp_display_shell_transform_xy): changed accordingly.
* app/display/gimpdisplayshell-draw.c
* app/tools/gimpdrawtool.c: make sure everywhere that PROJ_ROUND
is used either directly or through gimp_display_shell_transform_xy,
instead of using arbitrary rounding methods.
2004-03-19 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayer.[ch]: added gimp_text_layer_set(), a
function that calls g_object_set() on the text-layer's text object
and pushes an undo step.
* app/display/gimpdisplayshell-dnd.c (gimp_display_shell_bucket_fill):
use the new function.
2004-03-19 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_new): added
runtime check for GTK+ >= 2.4.0 and make sure the menubar's accels
can be invoked even if the menubar is invisible (workaround for
bug #137151).
2004-03-18 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-dnd.c (gimp_display_shell_bucket_fill):
added a missing call to gimp_image_flush().
* app/tools/gimptexttool.c: propagate text changes to the tool
options.
* app/text/gimptextlayer.c: made "text", "auto-rename" and
"modified" properties of the text layer and copy them when
duplicating a text layer.
* app/text/gimptextlayer-xcf.[ch]: added utility functions to
convert the new properties to flags to be saved in the XCF file.
* app/xcf/xcf-load.c
* app/xcf/xcf-private.h
* app/xcf/xcf-save.c: load and save text layer properties.
Disabled warnings about unknown properties for stable branches.
2004-03-14 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayer.[ch]: removed all idle handling here.
Changes to the text-layer's text object all applied synchronously.
* app/display/gimpdisplayshell-dnd.c
* app/text/gimptextlayer-transform.c: removed now obsolete calls
to gimp_text_layer_flush().
* app/tools/gimptexttool.[ch]: queue up changes to the proxy text
object and apply them in one go from a low-priority idle handler.
This is basically what GimpTextLayer used to do.
2004-03-13 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayer.[ch]: implement GimpDrawable functions
that affect the tiles and mark the text layer as modified. Added
new function gimp_drawable_is_text_layer() that checks whether a
drawable is an unmodified text layer.
* app/display/gimpdisplayshell-dnd.c (gimp_display_shell_bucket_fill):
use gimp_drawable_is_text_layer() and only set the text color if the
text layer is unmodified. Fixes bug #136623.
2004-03-12 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-dnd.c (gimp_display_shell_bucket_fill):
only set the text layer's color if a color is being dropped. Fixes
crash on pattern drops (bug #136645).
2004-03-10 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): redid last change so it
calls tool_manager_cursor_update_active() *before*
tool_manager_button_press_active(). Removes the ugly
"force_cursor_updating" boolean again and adds even more ugly code
duplication instead.
2004-03-10 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): added new local state
"gboolean force_cursor_updating" which makes the function call
tool_manger_cursor_update_active() even though a mouse button is
pressed. Fixes tool cursors in click-to-focus mode. Reported by
Michael Schumacher.
2004-03-10 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_events): work around bug #136636 (Win32 only)
and ask the current device for its modifier state in order to fill
in the missing GDK_BUTTON*_MASK bits in GdkEventKey::state.
2004-03-10 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c: disabled debugging
output when pushing/popping the move too using <space>.
2004-03-10 Simon Budig <simon@gimp.org>
* app/base/cpu-accel.c
* app/display/gimpdisplayshell-dnd.c
* app/tools/gimpvectortool.c
* app/vectors/gimpbezierstroke.c
* app/vectors/gimpvectors-import.c: Removed, disabled or
conditionalized some debug output.
There still is debug output when pushing/popping the move tool
via space bar. Mitch wanted to look at that.
2004-03-08 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.c: redone this change. We should
probably add a GimpMessageDialog to avoid duplicating this code
every so often.
2004-03-08 Dave Neary <bolsh@gimp.org>
* app/display/gimpdisplayshell.c: First attempt to resolve bug
#107009. This changes the wording on the buttons to "Discard
changes" and "Cancel" when closing an insaved image. However I
think the absence of icons is a but ugly. I would like to add
respectively the icons from GTK_STOCK_DELETE and GTK_STOCK_CANCEL
to these two buttons.
2004-02-26 Sven Neumann <sven@gimp.org>
* app/display/gimpprogress.c (gimp_progress_end): check
display->shell before using it. It might be NULL if the function
is being called from gimp_exit().
* app/app_procs.c (app_exit_after_callback): added back the call
to exit() but only for stable releases. See my comments in the
code to understand the reasons.
2004-02-23 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: added #defines for GimpCoords' default
pressure, tilt and wheel values.
* app/display/gimpdisplayshell-callbacks.c
* app/paint/gimppaintcore-stroke.c
* app/text/gimptext-vectors.c
* tools/pdbgen/pdb/paint_tools.pdb: use them. Fixes lots more
buggy default values for tilt (in fact all of them were wrong).
* app/pdb/paint_tools_cmds.c: regenerated.
2004-02-23 Simon Budig <simon@gimp.org>
* app/display/gimpdisplayshell-callbacks.c: corrected the
value ranges and default values for GDK_AXIS_XTILT and
GDK_AXIS_YTILT. Now the ink-tool behaves sane with a mouse
again :)
2004-02-23 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-snap.[ch]: return the snapped coordinates as
gdouble, not gint because we must not round the unsnapped axis
if only one axis snapped.
* app/display/gimpdisplayshell.[ch] (gimp_display_shell_snap_coords):
changed accordingly. Added boolean return value indicating "snapped".
* app/display/gimpdisplayshell-cursor.[ch]
(gimp_display_shell_update_cursor): take both display_x and _x and
(possibly snapped) image_x and _y. Use the snapped values for the
statusbar and the unsnapped ones for updating the info_window.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): applied modified patch
from Simon Budig which moves guide/grid snapping out of the
button_press/motion/button_release handlers and *always* snaps
the image_coords if the active_tool wants them to be snapped.
Makes sure that e.g. the brush preview is drawn at the right
place and fixes bug #134284.
Also pass both display_coords and image_coords to
gimp_display_shell_update_cursor().
2004-02-18 Simon Budig <simon@gimp.org>
* app/config/gimpguiconfig.[ch]
* app/config/gimprc-blurbs.h: Added new GUI option: snapping distance
* app/gui/preferences-dialog.c: add a preferences widget
* app/tools/gimpmovetool.c
* app/display/gimpdisplayshell.c: use it for snapping.
2004-02-18 Simon Budig <simon@gimp.org>
* app/display/gimpdisplayshell.c
* app/tools/gimpmovetool.c: Adjusted snapping distance
to 8 pixels, probably should be a preferences option.
* app/tools/gimppainttool.c: Do not center the start and end
of a straight line to the center of an image-pixel unless
the brush mode is GIMP_BRUSH_HARD. Fixes bug #134410.
2004-02-16 Sven Neumann <sven@gimp.org>
* app/display/gimpcanvas.c (gimp_canvas_gc_new): fixed my last
change here; of course only the guide GCs need a stipple pattern.
2004-02-14 Michael Natterer <mitch@gimp.org>
Fixed lots of QuickMask brokenness by letting the image adjust
its qmask_state automatically:
* app/core/gimpimage-qmask.h: #define GIMP_IMAGE_QMASK_NAME "Qmask".
Use the define in all files below.
* app/core/gimpimage.[ch]: split gimp_image_drawable_add,_remove()
into separate handlers for layers and channels. Added a
"name_changed" handler for all channels. In the channel "add",
"remove" and "name_changed" handlers, check if it was a channel
named "Qmask" that was added, removed or renamed and call
gimp_image_set_qmask_state() accordingly.
* app/core/core-enums.[ch]
* app/core/gimpimage-undo-push.[ch]
* app/core/gimpundo.c: removed all Qmask undo code because the image
does the right thing without undo interaction now.
* app/core/gimpimage-qmask.c (gimp_image_set_qmask_state): set
gimage->qmask_state early so we can return early when called
recursively. Removed calls to gimp_image_undo_push_image_qmask().
Returned "removed" callback (it was utterly broken the way it was
implemented).
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_qmask_toggled): check if the image's
qmask state needs to be changed before changing it.
* app/xcf/xcf-load.c (xcf_load_channel): removed code which
recognized the qmask. GimpImage does this automatically now.
* app/gui/qmask-commands.c: cleanup.
* app/widgets/gimpimagedock.c (gimp_image_dock_constructor):
destroy the "/Select/By Color" and "/Select/Toggle QuickMask" menu
items.
* app/widgets/image-menu.c (image_menu_update): changed accordingly.
2004-02-13 Simon Budig <simon@gimp.org>
* app/core/gimpimage-snap.[ch]: make the snapping width a
parameter of the snapping functions.
* app/display/gimpdisplayshell.c: make sure that the snapping
width always is 5 pixels in the view coordinates.
Fixes bug #134285
2004-02-11 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-dnd.c
(gimp_display_shell_bucket_fill): when dropping a color on a text
layer, change the text color. This is a quick hack; we should make
filling a drawable a virtual method that can be overridden by the
text layer.