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-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpundoeditor.c: removed code duplication by adding
utility function gimp_undo_editor_update_buttons(), some general
cleanups.
2004-05-04 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.c (gimp_image_undo_freeze,thaw): emit the
"undo-freeze" and "undo-thaw" signals only on the first freeze and
last thaw, not on any of them.
* app/widgets/gimphelp-ids.h: added GIMP_HELP_EDIT_UNDO_CLEAR.
* app/widgets/gimpundoeditor.[ch]: added a "Clear Undo History"
button. Fixes bug #136300.
Also don't attach to the image's undo stack if the image's undo is
disabled and set the buttons' sensitivity accordingly. Should fix
all kinds of unpredictable undo history brokenness.
2004-05-04 Michael Natterer <mitch@gimp.org>
Treat FG/BG just like all other context properties:
* app/paint/gimppaintoptions.h: added GIMP_CONTEXT_FOREGROUND_MASK
and _BACKGROUND_MASK to GIMP_PAINT_OPTIONS_CONTEXT_MASK to specify
that they are used by GimpPaintOptions (automatically affects all
paint tools).
* app/tools/gimpblendtool.c
* app/tools/gimpbucketfilltool.c
* app/tools/gimpinktool.c: set FOREGROUND_MASK and BACKGROUND_MASK
manually here.
* app/tools/tool_manager.c (tool_manager_tool_changed): decide
about the globality of FG and BG at the same place where we decide
about the brush's, pattern's etc. globality, but hardcode them to
global = TRUE instead of looking at GimpConfig.
Fixes bug #141786.
2004-05-04 Sven Neumann <sven@gimp.org>
* app/gui/stroke-dialog.c:
* app/widgets/gimpstrokeeditor.c: moved line style options into a
GtkExpander. Changed dialog spacings.
2004-05-03 Manish Singh <yosh@gimp.org>
* app/actions/qmask-actions.c: initialize is_active for qmask-toggle.
* app/actions/tools-actions.c: set entry help_id from tool_info,
since gimp_action_group_add_string_actions expects it to be there
now.
2004-05-03 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpframe.c (gimp_frame_new): added a hack that
allows to get the label_spacing but no label. Useful when the frame
is packed into a GtkExpander.
* app/widgets/gimptemplateeditor.c: pack the "Image Comment" frame
into a GtkExpander to reduce clutter and dialog size.
2004-05-03 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimphelpui.[ch]: added gimp_help_id_quark()
which is G_GNUC_CONST and a new macro GIMP_HELP_ID as shortcut.
* app/widgets/gimpactiongroup.c (gimp_action_group_add_*_actions):
attach the help ID to the action using the new quark key. Call
gtk_action_group_add_action() instead of the _with_accel() variant
if the accel is the empty string (== if we explicitely want no
accel even if the stock item specifies one). Fixes warning flood
with GTK+ 2.4.1.
2004-05-03 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpframe.c: if the label_widget is a button, set
the button label as bold. Cache the indentation instead of
calculating it over and over again.
* themes/Default/gtkrc: set HIG-compliant spacing for the
action_area.
* app/widgets/gimppropwidgets.[ch]: added
gimp_prop_enum_radio_box_new() for a radio group that is no
embedded in a frame.
* app/widgets/gimpstrokeeditor.c: use a frame-less radio box for
the Stroke style.
* app/gui/file-new-dialog.c
* app/gui/grid-dialog.c
* app/gui/stroke-dialog.c: HIG-compliant spacings.
2004-05-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdock.c (gimp_dock_key_press_event): new function
which overrides GtkWindow's default handler in order to give the
focus widget precedence over accelerators for keys without any
modifier or with <Shift> modifier. Enables e.g. having a <Shift>+s
accelerator while still being able to enter 'S' in an entry.
Thanks to Tim Janik for the code.
2004-05-03 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpwidgets.c: use a GimpFrame for
gimp_radio_group_new() and friends.
* themes/Default/gtkrc
* themes/Small/gtkrc: set a smaller label_spacing for GimpFrame
widgets in GimpDockables. Lame hack to keep the tool options
compact.
* app/actions/image-commands.c: changed spacing.
* app/gui/offset-dialog.c: merged check and radio buttons into a
single radio button group; changed spacing.
2004-05-03 Michael Natterer <mitch@gimp.org>
* app/actions/dockable-commands.c (dockable_add_tab_cmd_callback):
truncate the passed dialog identifier at the first '|'. Fixes
creating brushes, paterns etc. dialogs from the dockables'
"Add Tab" menu.
2004-05-02 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpframe.c (gimp_frame_size_request): take the
left margin into account.
* app/widgets/gimpgrideditor.c
* app/widgets/gimptemplateeditor.c: removed container borders that
aren't needed any longer.
2004-05-02 Sven Neumann <sven@gimp.org>
* app/widgets/gimpenumwidgets.c
* app/widgets/gimpgrideditor.c
* app/widgets/gimptemplateeditor.c: use the GimpFrame widget,
changed some spacings to better comply with the HIG.
2004-05-02 Sven Neumann <sven@gimp.org>
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgets.h
* libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/gimpframe.[ch]: added new widget GimpFrame, a HIG
compliant variant of GtkFrame.
* app/gui/preferences-dialog.c: enable the HIG compliant mode by
default and use the new GimpFrame widget for it.
* themes/Small/gtkrc: set a smaller spacing between the GimpFrame
title label and the frame content.
2004-05-02 Sven Neumann <sven@gimp.org>
* libgimpwidgets/libgimpwidgets-docs.sgml
* libgimpwidgets/libgimpwidgets-sections.txt
* libgimpwidgets/libgimpwidgets.types
* libgimpwidgets/tmpl/gimpframe.sgml: added docs for GimpFrame.
* */tmpl/*.sgml: regenerated using gtk-doc-tools version 1.2.
2004-05-02 Michael Natterer <mitch@gimp.org>
* app/actions/qmask-actions.c: renamed action "qmask-toggle" to
"qmask-active" and added new action "qmask-toggle" with a label
and shortcut suited for the "Select" menu.
* app/actions/select-actions.c: removed "select-toggle-qmask".
* app/actions/select-commands.[ch]: removed callback
select_toggle_quickmask_cmd_callback().
* app/actions/channels-actions.c (channels_actions_update)
* app/actions/vectors-actions.c (vectors_actions_update): handle
"data" being both GimpDisplay and GimpDisplayShell so the actions
can be used in the image menu.
* menus/image-menu.xml.in: s/select-toggle-qmask/qmask-toggle/.
* menus/qmask-menu.xml: s/qmask-toggle/qmask-active/.
2004-05-02 Michael Natterer <mitch@convergence.de>
* app/actions/Makefile.am
* app/actions/file-dialog-actions.[ch]: new files containing
factored out code to set up the <Load> and <Save> actions.
Use GimpPlugInActions instead of just GtkActions.
* app/actions/file-dialog-commands.[ch]: new files containing
file_dialog_type_cmd_callback() which is a
GimpPlugInAction::selected() callback now.
* app/actions/file-commands.[ch]: removed the callback here.
* app/actions/file-open-actions.c
* app/actions/file-save-actions.c: removed code duplication and
use file_dialog_actions_setup() instead.
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-30 Pedro Gimeno <pggimeno@wanadoo.es>
* app/tools/gimprectselecttool.c: Cleanups.
(gimp_rect_select_tool_coords_to_integer): Undo my bogus fix for
bug #138103, which led to bug #140649.
* app/pdb/procedural_db.c (procedural_db_init_procs): Add missing
compat procs: gimp_channel_ops_duplicate, gimp_channel_ops_offset.
2004-04-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.[ch]: added signal "update" which
is G_SIGNAL_RUN_LAST, so handlers can hook in before and after
the default implementation. Update the action groups
in the default implementations.
(gimp_ui_manager_ui_get): make sure we always return a widget
by calling gtk_ui_manager_ensure_update().
* app/widgets/gimpdockable.c (gimp_dockable_show_menu): make
sure the dockable menu is loaded before trying to access its
widgets/actions.
Resurrected the dynamic tool options menus:
* app/actions/tool-options-actions.c: dynamically destroy/create
actions for the tool options' presets.
* app/actions/tool-options-commands.[ch]: all callbacks are
GimpEnumAction::selected() callbacks now.
* app/gui/tool-options-menu.[ch]: connect and connect_after to
GimpUIManager::update(). Remove the old preset menu items
in the former callback, create the new ones in the latter.
Removed the last item factory entries.
* app/gui/menus.c
* app/widgets/gimptooloptionseditor.c: changed accordingly.
2004-04-29 Simon Budig <simon@gimp.org>
* app/main.c: when glibc is used, call mallopt, so that memory
chunks >= 4k (= 64*64 pixels, 1bpp - the smallest full tile)
get allocated via mmap. This ensures that after closing an image
the memory allocated for image data gets returned to the system.
Thanks to Phil Blundell <pb@nexus.co.uk> for bringing mallopt
to my attention.
Please watch closely for performance problems.
2004-04-29 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimputils.[ch] (gimp_escape_uline): new function
which does the opposite of gimp_strip_uline().
* app/actions/file-actions.c (file_actions_last_opened_update):
escape ulines in filenames so they don't end up as mnemonics.
Spotted by Pedro Gimeno.
2004-04-29 Michael Natterer <mitch@gimp.org>
* app/tools/gimp*tool.c (gimp_*_tool_register): stripped the menu
paths from the "menu_path". Will be renamed to "action_name" or
something soon...
* plug-ins/dbbrowser/dbbrowser.c
* plug-ins/common/plugindetails.c
* plug-ins/common/uniteditor.c: register under the new
"Extensions" placeholder.
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-27 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimppluginaction.[ch]: new GtkAction subclass which
remembers the PlugInProcDef.
* app/widgets/gimpactiongroup.[ch]: added "gpointer user_data" to
the GimpActionGroup struct and to gimp_action_group_new(). Removed
the user_data parameter from gimp_action_group_add_*_actions().
* app/widgets/gimpactionfactory.[ch]: changed accordingly.
* app/actions/*-actions.[ch]: removed user_data from all setup_funcs.
* app/actions/plug-in-actions.c: use a GimpPlugInAction and
finally use the right user_data for the callback so plug-in
callbacks have a proper context.
* app/gui/plug-in-menus.[ch]: renamed plug_in_menus_create2() to
plug_in_menus_setup().
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: changed accordingly.
2004-04-27 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactiongroup.[ch]: removed "translation-domain"
property and simply use gettext(). Plug-In domains are handled
by plug-in-actions.c
The following change finally starts breaking the old menu system
while the new one is not fully in place yet. Have fun:
* menus/image-menu.xml: added several <placeholder>s for plug-ins
to register their menu entries in the middle of already existing
menus.
* app/gui/menus.c
* plug-ins/common/mail.c
* plug-ins/print/print.c
* plug-ins/script-fu/scripts/copy-visible.scm: use the new
placeholders to register menu entries.
2004-04-27 Michael Natterer <mitch@gimp.org>
Correctly translated & sorted plug-in actions & menu entries:
* app/widgets/gimpuimanager.[ch]: added a "gchar *name" property
and a hash table which keeps all created UI managers (similar to
GimpActionGroup's hash table). Added function
gimp_ui_managers_from_name() which returns a list of all managers
with the given name.
* app/widgets/gimpmenufactory.c: register a name per UI manager
and pass the name to gimp_ui_manager_new().
* app/actions/plug-in-actions.c: added code which correctly
translates the created plug-in actions and also creates translated
menu actions for the plug-in's menu_path elements.
* app/gui/plug-in-menus.[ch]: sort the plug-ins' menu entries
using a GTree. For each entry, recursivlely create submenus
from the dynamic menu actions created above before creating
the plug-in's menu entry itself.
* app/gui/image-menu.c (image_menu_setup2)
* app/gui/toolbox-menu.c (toolbox_menu_setup2): call
plug_in_menus_create2().
* app/gui/gui-vtable.c (gui_menus_create_entry)
(gui_menus_delete_entry): added some uglyness which maps old <Prefix>
menu identifiers to new-style UI manager plus ui_path tuples and
call plug_in_menus_add,remove_proc() accordingly.
* menus/image-menu.xml
* menus/toolbox-menu.xml: added name="Foo" attributes to all menus
so plug-in entries find their place.
2004-04-26 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-types.h: added GimpUIManagerSetupFunc typedef.
* app/widgets/gimpuimanager.[ch]: added the setup_func to the
GimpUIManagerUIEntry struct and to gimp_ui_manager_ui_register().
Call the setup_func after creating the UI. Replaced the term
"identifier" by "ui_path".
* app/widgets/gimpmenufactory.c: ditto.
* app/gui/menus.c (menus_init): register the new setup_funcs below.
* app/gui/menus.[ch] (menus_open_recent_add)
* app/gui/image-menu.[ch] (image_menu_setup2)
* app/gui/toolbox-menu.[ch] (toolbox_menu_setup2): new setup_funcs
which add the "Open Recent" menu items.
* app/actions/file-actions.c: removed "file-open-recent-empty"
action because it's not needed.
* menus/image-menu.xml
* menus/toolbox-menu.xml: removed "file-open-recent-empty" menu
items and added <placeholder>s for the "Open Recent" menu items.
2004-04-26 Michael Natterer <mitch@gimp.org>
* app/core/gimp.[ch]: removed "locale_domain" and "help_domain"
parameters from GimpMenusCreateFunc.
* app/plug-in/plug-ins.c (plug_ins_temp_proc_def_add)
* app/actions/plug-in-actions.[ch] (plug_in_actions_add_proc_def):
changed accordingly.
* app/widgets/gimpactiongroup.[ch]: remember all created action
groups is a hash table in GimpActionGroupClass. Added
gimp_action_groups_from_name() which returns a GList of all groups
with the given name.
* app/actions/plug-in-actions.[ch] (plug_in_actions_setup):
removed the tree sorting code. Actions don't need to be ordered
alphabetically.
(plug_in_actions_update): copied & ported plug_in_menus_update().
* app/gui/gui-vtable.c (gui_menus_create,delete_entry):
dynamically add/remove plug-in actions in all "plug-in" action
groups.
2004-04-25 Michael Natterer <mitch@gimp.org>
* app/core/gimp.[ch]: changed GimpMenusDeleteFunc to take
a PlugInProcDef* instead of a const gchar*.
* app/plug-in/plug-ins.c
* app/gui/gui-vtable.c
* app/gui/plug-in-menus.[ch]: changed accordingly.
2004-04-22 Sven Neumann <sven@gimp.org>
* app/gui/dialogs-constructors.c
* app/gui/preferences-dialog.c: silent the compiler.
* plug-ins/winicon/icodialog.c: simplified by using a
GimpIntComboBox.
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-21 Michael Natterer <mitch@gimp.org>
* app/actions/actions.c: forgot to register the "patterns" actions.
* app/actions/*-actions.c: added actions representing the toplevel
menus (popups and menubars). Fixed some typos.
* menus/*-menu.xml: added action="foo" attributes to all toplevel
menus. Fixed typos here too.
* menus/gtkuimanager.dtd: fixed possible attributes.
2004-04-21 Michael Natterer <mitch@gimp.org>
* app/actions/qmask-actions.c
* app/actions/qmask-commands.c: prepared qmask_actions_update()
and the qmask callbacks to be merged into the image ui manager.
* app/actions/dialogs-actions.c
* app/actions/edit-actions.c
* app/actions/file-actions.c
* app/actions/image-actions.c
* app/actions/layers-actions.c
* app/actions/plug-in-actions.c
* app/actions/tools-actions.c
* app/actions/view-actions.c: fixed lots of typos and buglets
spotted in my first test run.
* app/gui/menus.c: register the needed action groups with the
<Image> menu.
* app/tools/gimp-tools.c
* app/tools/gimpdodgeburntool.[ch]
* app/tools/gimppaintoptions-gui.c: s/dodgeburn/dodge_burn/g.
* app/widgets/gimpactionfactory.c
* app/widgets/gimpmenufactory.[ch]: s/G_GNUC_FUNCTION/G_STRFUNC/g,
updated copyright header.
* menus/image-menu.xml: fixed typos and added the "Filters"
submenus.
2004-04-21 Michael Natterer <mitch@gimp.org>
More unused action stuff:
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpactionfactory.[ch]: added a simple factory which
produces GimpActionGroups.
* app/widgets/gimpactiongroup.[ch]: added an "update_func" member
to the GimpActionGroup struct. Added it as parameter to
gimp_action_group_new(). Added function gimp_action_group_update().
* app/widgets/gimpmenufactory.[ch]: added an "action_factory"
member and constructor parameter. Added code to create
GtkUIManagers from registered action group identifiers.
* app/actions/Makefile.am
* app/actions/actions.[ch]: new files: create a
"global_action_factory" and register all action groups with it.
* app/actions/edit-actions.c: s/edit_action_update/edit_actions_update/
* app/actions/plug-in-actions.[ch]: added API to add/remove
plug-in procedure actions dynamically (unfinished).
* app/gui/menus.c (menus_init): call actions_init().
(menus_exit): call actions_exit().
2004-04-20 Sven Neumann <sven@gimp.org>
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgets.h
* libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/gimpintstore.[ch]: added a GimpIntStore, derived
from GtkListStore, to be used by GimpIntComboBox and also by the
image and drawable menus.
* libgimpwidgets/gimpintcombobox.c: use the new GimpIntStore.
* app/widgets/gimpenumstore.[ch]: derive from GimpIntStore,
removed API that is provided by the parent class.
* app/widgets/gimpenumcombobox.[ch]: derive from GimpIntComboBox,
removed API that is provided by the parent class.
* app/gui/resize-dialog.c
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c
* app/widgets/gimpcolorframe.c
* app/widgets/gimphistogrameditor.c
* app/widgets/gimppropwidgets.c
* app/widgets/gimpstrokeeditor.c: changed accordingly.
2004-04-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimpenumstore.[ch]
* app/widgets/gimpenumcombobox.c: let the pixbuf renderer take care
of rendering the pixbuf from the stock_id.
2004-04-20 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpmemsizeentry.c
* modules/cdisplay_proof.c: ported to GimpIntComboBox.
* libgimpwidgets/gimpwidgets.[ch]: declared the gimp option_menu
API as deprecated and removed the code here.
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpoldwidgets.[ch]: new files with deprecated
code, guarded with #ifndef GIMP_DISABLE_DEPRECATED ... #endif.
* libgimpwidgets/gimpintcombobox.h: added G_BEGIN_DECLS, G_END_DECLS.
* configure.in (CPP_FLAGS): added -DGIMP_DISABLE_DEPRECATED.
* app/widgets/gimpwidgets-constructors.c: added a #warning and
#undef GIMP_DISABLE_DEPRECATED. The paint mode menu is the last
remaining user of gimp_int_option_menu_new().
2004-04-20 Michael Natterer <mitch@gimp.org>
* app/gui/convert-dialog.[ch]: renamed convert_to_indexed()
to convert_dialog_new() and return the dialog. Removed
convert_to_rgb() and convert_to_grayscale().
* app/gui/offset-dialog.[ch]: renamed offset_dialog_create()
to offset_dialog_new() and return the dialog.
* app/Makefile.am
* app/actions/drawable-commands.c
* app/actions/image-commands.c: changed accordingly.
2004-04-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-constructors.[ch]: added new function
gimp_paint_mode_menu_set_history().
* app/gui/brush-select.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimppropwidgets.c: use the new function instead of
the deprecated gimp_int_option_menu API.
2004-04-19 Sven Neumann <sven@gimp.org>
* menus/Makefile.am
* menus/gtkuimanager.dtd: added a DTD (basically copied from the
GTK+ API docs). Added a "validate" rule that allows to easily
validate the XML files.
* menus/*.xml: added a DOCTYPE declaration that refers to the
newly added DTD.
* app/widgets/gimpenumstore.[ch]:
* app/widgets/gimpenumcombobox.c: documented the new API.
2004-04-19 Michael Natterer <mitch@gimp.org>
More GtkAction stuff (still unused):
* configure.in: added new directories menus/ and app/actions/
* Makefile.am: build menus/
* menus/.cvsignore
* menus/Makefile.am
* menus/*-menu.xml: new files: XML menu descriptions for each menu
which is now defined in gui/*-menu.c.
* app/widgets/widgets-types.h: some typedefs for GimpActionGroup.
* app/widgets/gimpactiongroup.[ch]: added a "Gimp" construct-only
property. Added APIs to set actions visible/sensitive/active
and an unimplemented stub for setting the action's color.
* app/Makefile.am: build actions/ and link libappactions.a
* app/actions/.cvsignore
* app/actions/Makefile.am
* app/actions/*-actions.[ch]: new files: GtkActions for each
*-commands.c file in gui/. Ported all "update" functions from the
*-menu.c files.
(everything completely unused, untested and partly #if 0'ed)
* app/core/gimpimage.[ch]: for reasons of (action-) symmetry, added
API to raise/lower channels/vectors to top/bottom.
* app/gui/channels-commands.[ch]
* app/gui/vectors-commands.[ch]: added callbacks for the new
to top/bottom functions.
* app/gui/Makefile.am
* app/gui/dockable-commands.[ch]: new files split out of
dialogs-commands.[ch].
* app/gui/dialogs-commands.[ch]
* app/gui/dialogs-menu.c: changed accordingly.
* app/gui/edit-commands.[ch]: added edit_paste_into_cmd_callback()
and remove usage of "guint action".
* app/gui/image-menu.c: changed accordingly.
* app/gui/palette-editor-commands.[ch]: split
+palette_editor_new_color_cmd_callback() into separate callbacks
for adding from FG and BG.
* app/gui/palette-editor-menu.c: changed accordingly.
2004-04-19 Sven Neumann <sven@gimp.org>
* app/widgets/gimpenumstore.[ch]: avoid unnecessary casts.
* app/widgets/gimpenumcombobox.[ch]: added an API that inserts a
GtkTreeModelFilter to make items invisible. This is a kludge to
workaround bug #135875.
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c
* app/widgets/gimphistogrameditor.c: use the new function to hide
histogram channels that are not available with the current
drawable.
2004-04-16 Sven Neumann <sven@gimp.org>
* app/tools/gimpcolorpickertool.c
* app/tools/gimpmeasuretool.c: don't use gtk_window_present() to
raise the tool dialog since it also moves the focus away from the
image window. Fixes the problem described in bug #139349.
2004-04-15 Manish Singh <yosh@gimp.org>
* tools/Makefile.am
* app/Makefile.am
* configure.in: app, tools, and user dir bumped to version 2.1 names.
* app/text/gimpfontlist.c: since we now depend on pango 1.4, we can
use pango_fc_font_description_from_pattern() instead of our
cut-n-paste function, gimp_font_list_font_desc_from_pattern().
2004-04-15 Tor Lillqvist <tml@iki.fi>
* app/plug-in/plug-in-message.c (plug_in_handle_proc_install)
* app/plug-in/plug-in-proc.h (struct _PlugInProcDef)
* app/plug-in/plug-in-rc.c (plug_in_rc_write)
* app/plug-in/plug-ins.c (plug_ins_init): Make PDB procedures
(including their menu entries) installed during a plug-ins init()
phase show up. Add a flag to PlugInProcDef that tells whether the
proc was installed during the init() phase. Such procs aren't
saved to the pluginrc. Move the code that initializes plug-ins
that need initialization earlier, before the procs are added to
the PDB and menus are built. Fixes bug #139969.
2004-04-15 Tor Lillqvist <tml@iki.fi>
* libgimpthumb/Makefile.am: For Win32, install gimpthumb.def, like
the .def files of the other libgimp* libs.
* app/Makefile.am (INCLUDES): Add PANGOFT2_CFLAGS.
* gimp-zip.in: Put also libgimpthumb in the developer package.
2004-04-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdnd.c (gimp_dnd_data_source_add)
(gimp_dnd_data_source_remove): use the new dynamic GtkTargetList
based API for changing the widget's drag source types.
* app/widgets/gimpdocumentview.c (gimp_document_view_new): simply
call gimp_dnd_file_source_add() instead of duplicating the whole
GtkTargetEntry array insanity just for adding one source type.
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-15 Sven Neumann <sven@gimp.org>
* app/tools/gimpcropoptions.[ch]
* app/tools/gimpcroptool.[ch]: applied a patch from Jordi Gay that
allows to keep the aspect ratio fixed.
2004-04-15 Michael Natterer <mitch@gimp.org>
* app/core/gimplayermask.c (gimp_layer_mask_class_init): set
translate_desc to "Move Layer Mask".
* app/tools/gimpeditselectiontool.c: take the undo desc
from the moved item's class instead of duplicating all
strings here.
2004-04-15 Sven Neumann <sven@gimp.org>
* app/core/gimppalette-import.[ch]
* app/gui/palette-import-dialog.c: added palette import from RIFF
palette files based on a patch from ÃRDI Gergõ (bug #129788).
2004-04-15 Michael Natterer <mitch@gimp.org>
* app/core/gimpitem.[ch]: added "const gchar *stroke_desc" to
the GimpItemClass struct and always push an undo group
around GimpItem::stroke().
* app/core/gimpchannel.c
* app/core/gimpselection.c
* app/vectors/gimpvectors.c: set the stroke_desc accordingly
and don't push undo groups.
* app/text/gimptextlayer.c (gimp_text_layer_class_init): set
all of GimpItemClass' undo_descs.
* app/text/gimptextlayer-transform.c: don't push undo groups here.
2004-04-15 Michael Natterer <mitch@gimp.org>
Context cleanup continued:
* app/core/gimpitem.[ch]: added context parameter to
GimpItem::stroke().
* app/core/gimpchannel.c (gimp_channel_stroke)
* app/vectors/gimpvectors.c (gimp_vectors_stroke): use it to get
default values from instead of gimp_get_user_context().
* app/core/gimpselection.c
* app/gui/stroke-dialog.c
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/paths.pdb: changed accordingly.
* app/pdb/edit_cmds.c
* app/pdb/paths_cmds.c: regenerated.
* app/plug-in/plug-in.[ch]: added GimpContext member to the PlugIn
struct. Added context parameter to plug_in_new(),
plug_in_call_query() and plug_in_call_init().
* app/plug-in/plug-in-run.[ch]: added context parameters to
plug_in_run() and plug_in_repeat().
* app/gui/plug-in-commands.c
* app/gui/vectors-commands.c
* app/pdb/procedural_db.c
* app/widgets/gimphelp.c: pass a context to plug_in_run() and
plug_in_repeat().
* app/plug-in/plug-in-message.c (plug_in_handle_proc_run): call
procedures with the plug-in's context.
* app/plug-in/plug-ins.c: use a temporary context for running the
plug-ins' query() and init() functions. Use the same context for
running automatic extensions. This temporarily separates the main
Script-Fu extension from the user context (i.e. scripts have no
way of setting/getting the global FG, BG, brush etc.).
2004-04-15 Sven Neumann <sven@gimp.org>
* app/paint-funcs/paint-funcs.[ch]:
* app/paint-funcs/paint-funcs-generic.h: header cleanup, added
some const qualifiers, converted tabs to spaces. Fixes bug #140115
for the HEAD branch.
2004-04-13 Sven Neumann <sven@gimp.org>
* app/core/gimp-utils.[ch] (gimp_get_default_language): added a
category parameter to make this function more flexible.
* app/text/gimptext.c: changed accordingly.
* app/widgets/gimphelp.c (gimp_help): localize the help pages
according to the value of LC_MESSAGES. Fixes bug #139917.
2004-04-13 Michael Natterer <mitch@gimp.org>
Moved the calls to floating_sel_relax()/rigor() from various
places to two single spots in the core where they are actually
needed. Fixes bug #138356 (which was caused by the projection
being triggered in the middle of changing the floating selection's
size or the size of the drawable it is attached to). This commit
effectively removes floating selection fiddling from the core's
public API.
* app/core/gimpdrawable.[ch] (gimp_drawable_has_floating_sel): new
function which returns TRUE if there is a floating selection
attached to the drawable.
* app/core/gimpdrawable.c (gimp_drawable_translate)
(gimp_drawable_set_tiles_full): if the drawable *has* a floating
selection, relax/rigor it before/after modifying the drawable.
* app/core/gimplayer.c (gimp_layer_translate)
(gimp_layer_set_tiles): if the layer *is* the floating selection,
relax/rigor it before/after modifying it.
* app/core/gimpdrawable-transform.c
* app/core/gimpimage-convert.c
* app/core/gimpimage-crop.c
* app/core/gimpimage-flip.c
* app/core/gimpimage-resize.c
* app/core/gimpimage-rotate.c
* app/core/gimpimage-scale.c
* app/gui/layers-commands.c
* app/tools/gimpeditselectiontool.c
* tools/pdbgen/pdb/layer.pdb: removed calls to
floating_sel_rigor()/relax() all over the place. Also removed
lots of undo groups which are obsolete now.
* app/pdb/layer_cmds.c: regenerated.
2004-04-13 Michael Natterer <mitch@gimp.org>
GimpItem undo group cleanup in preparation of fixing bug #138356:
* app/core/core-enums.[c]: renamed LAYER_SCALE and LAYER_RESIZE
undo groups to ITEM_SCALE and ITEM_RESIZE.
* app/core/gimpitem.[ch]: always push undo groups around
GimpItem::translate(), scale(), resize(), flip(), rotate() and
transform(). Added the resp. undo_desc strings to GimpItemClass.
* app/core/gimpchannel.[ch]
* app/core/gimpdrawable.[ch]
* app/core/gimplayer.c: removed all undo groups from
implementations of the above methods. Removed the undo_desc
strings which were moved to GimpItemClass.
* app/core/gimpimage-crop.c
* app/core/gimpselection.c
* app/gui/layers-commands.c
* app/vectors/gimpvectors.c
* tools/pdbgen/pdb/layer.pdb: changed accordingly.
* app/pdb/layer_cmds.c: regenerated.
2004-04-11 Hans Breuer <hans@breuer.org>
* app/makefile.msc : build sanity.obj
app/text/makefile.msc : gimptextundo.obj
app/widgets/makefile.msc : gimppatternfactoryview.obj
* plug-ins/common/winclipboard.c : don't call
gimp_image_undo_enable() when it's not switched off.
Otherwise the undo history would be destroyed with
Gimp-Core-CRITICAL **: file gimpimage.c: line 1579: assertion
`gimage->undo_freeze_count > 0' failed
2004-04-10 Sven Neumann <sven@gimp.org>
* app/tools/gimptexttool.c (gimp_text_tool_apply): push an undo
group only when it's needed. This resurrects text undo compression
that broke when bug #137767 got fixed.
2004-04-10 Pedro Gimeno <pggimeno@wanadoo.es>
* app/core/gimpdrawable-transform.c
(gimp_drawable_transform_tiles_affine): Applied patch from William
Skaggs that addresses bug #120490.
* app/sanity.c (sanity_check): Modified the message that reports
an old version of Fontconfig in an attempt to make it more
informative.
2004-04-05 Pedro Gimeno <pggimeno@wanadoo.es>
Sanitize rectangle and ellipse selection handling (bug #138237
and bug #138103):
* app/tools/gimprectselecttool.h
* app/tools/gimprectselecttool.c (GimpRectSelectTool): new
member "moved" indicating whether the cursor was moved after
the click.
(gimp_rect_select_tool_coords_to_integer): New function for
consistent conversion of the rectangle FP coords to pixels.
(gimp_rect_select_tool_button_press,
gimp_rect_select_tool_button_release,
gimp_rect_select_tool_motion, gimp_rect_select_tool_draw): use
it instead of fiddling with the FP coordinates. Update "moved"
and use it to detect whether the selection needs to be cleared.
* app/tools/gimpellipseselecttool.c
(gimp_ellipse_select_tool_draw): use the new coords_to_integer
function.
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-04-03 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayer.c (gimp_text_layer_new): create the
initial text layer with a size of 1 x 1 since tile_manager_new()
does not any longer accept 0 x 0.
* app/core/gimpdrawable.c (gimp_drawable_configure): check that
width and height are > 0.
2004-04-01 Sven Neumann <sven@gimp.org>
* app/gui/user-install-dialog.c: unset the bg_pixmap and tweak
style colors for all states. Sort of ugly but makes the dialog
work better with more obscure themes (bug #138379).
2004-04-01 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.[ch] (enum GimpUndoType): added undo type
GIMP_UNDO_TEXT_LAYER_MODIFIED and undo group types
GIMP_UNDO_GROUP_DRAWABLE and GIMP_UNDO_GROUP_DRAWABLE_MOD.
* app/core/gimpimage-undo-push.[ch]: added new new function
gimp_image_undo_push_text_layer_modified() which makes
modifications of the text_layer's "modified" boolean undoable.
* app/core/gimpdrawable.[ch]: added new virtual function
GimpDrawable::push_undo() and moved the actual undo pushing into
the default implementation gimp_drawable_real_push_undo().
* app/text/gimptextlayer.c (gimp_text_layer_push_undo): new
function. Pushes the text_layer's modified state to the undo stack
after upchaining and sets modified to TRUE.
(gimp_text_layer_set_tiles): ditto.
(gimp_lext_layer_apply_region)
(gimp_text_layer_replace_region): removed because their default
implementations already call gimp_drawable_push_undo().
(gimp_text_layer_swap_pixels): removed because swap_pixels() is
used by undo only and doesn't need to care about the text_layer's
modified state.
(gimp_text_layer_render): don't set modified to FALSE here because
we can't push an undo step here.
(gimp_text_layer_set): push the modified state to the undo stack
and set it to FALSE here. Also push the layer's tiles if the
layer was modified.
* app/tools/gimptexttool.c (gimp_text_tool_apply): push "modified"
to the undo stack and set it to FALSE here, too.
Fixes bug #137767.
2004-03-31 Simon Budig <simon@gimp.org>
* app/tools/gimptransformtool.c: One really should use braces
when mixing additions and multiplication and the operator
precedence is not the desired one...
I feel stupid... :-)
2004-03-31 Michael Natterer <mitch@gimp.org>
* app/core/gimp-transform-utils.c
(gimp_transform_matrix_perspective): make sure 0.0/0.0 results
in 1.0, not NaN.
* app/core/gimpdrawable-transform.c
(gimp_drawable_transform_tiles_affine): instead of returning NULL
if the transformation shrinks the tiles completely away, return at
least the pixel (or the row or column of pixels) which best covers
the sub-pixel area of the transform result:
- Changed rounding of the transformed coordinates from RINT()
to floor()/ceil() so we don't cut off sub-pixel portions of the
transform result.
- Force the minimal size if the changed rounding didn't help.
Fixes bug #138117.
Also added paranoia code which falls back to clip_result if the
passed matrix produces NaN coordinates (copied the FINITE() macro
from image_cmds.c).
2004-03-30 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/sanity.[ch]: new files implementing sanity_check() for
run-time checking library versions. Added a check for FreeType but
disabled it until we figured if and how freetype causes some of
the DLL hell bugs.
* app/main.c (main): call it and abort if it fails.
* app/app_procs.[ch]: added app_gui_abort() so main.c doesn't
need to #include "gui/gui.h"
* app/gui/gui.[ch] (gui_libs_init): removed library sanity checking.
(gui_abort): new function which shows the abort message.
2004-03-29 Sven Neumann <sven@gimp.org>
* app/config/gimpguiconfig.c: changed the default for "help-locales"
from NULL to an empty string. Fixes the generated gimprc man-page.
* app/config/gimprc-blurbs.h (HELP_LOCALES_BLURB): added missing
whitespace.
* app/widgets/gimphelp.c: use the user's locale if "help-locales"
is NULL or the empty string.
* docs/gimprc.5.in
* etc/gimprc: regenerated.
2004-03-29 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.h (enum GimpUndoType): added new group
GIMP_UNDO_GROUP_FS_REMOVE.
* app/core/gimplayer-floating-sel.c (floating_sel_remove): push an
undo group. Fixes undo corruption spotted by Pedro Gimeno.
2004-03-28 Sven Neumann <sven@gimp.org>
* app/text/gimpfontlist.c (gimp_font_list_add_font): validate the
font name. This should work around the crashes that Windows users
were experiencing on startup (bug #132366). The real problem needs
to be fixed elsewhere though.
2004-03-28 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-undo-push.c (undo_pop_layer): when re-adding
a layer with mask, don't forget to set layer->mask->removed to FALSE.
2004-03-28 Michael Natterer <mitch@gimp.org>
* app/core/gimpitem.[ch]: added "gboolean removed" to the GimpItem
struct. Defaults to FALSE. Set it to TRUE in gimp_item_removed().
Added public function gimp_item_is_removed().
* app/core/gimpimage-undo-push.c (undo_pop_layer)
(undo_pop_layer_mask) (undo_pop_channel) (undo_pop_vectors):
set it to FALSE manually when re-adding something from the
undo stack.
* tools/pdbgen/app.pl
* tools/pdbgen/pdb.pl: don't allow any operation on items which
are removed from the image (and exist on the undo stack only).
Fixes bug #138311.
* app/pdb/channel_cmds.c
* app/pdb/color_cmds.c
* app/pdb/drawable_cmds.c
* app/pdb/edit_cmds.c
* app/pdb/floating_sel_cmds.c
* app/pdb/image_cmds.c
* app/pdb/layer_cmds.c
* app/pdb/paint_tools_cmds.c
* app/pdb/parasite_cmds.c
* app/pdb/selection_cmds.c
* app/pdb/selection_tools_cmds.c
* app/pdb/transform_tools_cmds.c: regenerated.
2004-03-26 Manish Singh <yosh@gimp.org>
* tools/pdbgen/app.pl: don't generate code with tabs.
* tools/pdbgen/pdb/procedural_db.pdb: convert tabs to spaces in
helper function declaration.
* app/pdb/procedural_db.c: convert tabs to spaces.
* app/pdb/*.c: regenerated, no code changes, only tabs->spaces.
2004-03-26 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-transform.c
(gimp_drawable_transform_tiles_affine): return NULL tiles if the
matrix would transform the drawable into nothing. Fixes the
core-crashing part of bug #138117 and makes the script fail
with an execution error.
2004-03-25 Manish Singh <yosh@gimp.org>
* libgimp/gimp.c
* app/plug-in/plug-in-shm.c: close the shm_open fd in the POSIX
shm case. We were leaking an fd here.
2004-03-23 Michael Natterer <mitch@gimp.org>
The floating_sel code is really from the stone age:
* app/core/gimplayer-floating-sel.c (floating_sel_attach): call
gimp_image_floating_sel() once and work on the return value
instead of accessing gimage->floating_sel directly twice and
calling gimp_image_floating_sel() for the thrid access.
* app/core/gimpimage.c (gimp_image_floating_sel): no need to
return NULL if gimage->floating_sel is NULL, just always return
gimage->floating_sel.
2004-03-22 Sven Neumann <sven@gimp.org>
* app/core/gimplayer-floating-sel.c (floating_sel_attach): don't
do a type-checking cast on an object that was released a few lines
above. Fixes bug #137957.
2004-03-22 Sven Neumann <sven@gimp.org>
* app/tools/gimptexttool.c: keep the text editor open as long as
the text tool is connected to a text layer. Open the text editor
when a text layer is activated in the layers dialog.
2004-03-22 Sven Neumann <sven@gimp.org>
* app/tools/gimptexttool.[ch]: preserve the text tool on image
changes. Instead connect to the text layer's "notify::modified"
signal and disconnect from the layer when it is modified.
Fixes bug #137890.
2004-03-22 Michael Natterer <mitch@gimp.org>
* app/file/file-open.c (file_open_with_proc_and_display): removed
the undo clearing/sanitizing code...
(file_open_image): ...and added it here so *all* newly opened
images start with a clean and sane undo state.
* app/gui/file-commands.c (file_revert_confirm_callback): removed
(incomplete) undo sanitizing here too.
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-22 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayer.c (gimp_text_layer_duplicate): put some
code back in that I removed accidentally.
(gimp_text_layer_render) freeze/thaw notifications to avoid that
two "notify::modified" signals are emitted.
2004-03-22 Simon Budig <simon@gimp.org>
* app/widgets/gimpdock.c: set the minimum of the
"default_heigt" property range to -1, this enables users
to disable this feature via gtkrc.
2004-03-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdock.c: added a style property "default_height"
and set a window default size for new docks. Fixes bug #137876.
* themes/Default/gtkrc: document the default dock height.
* themes/Small/gtkrc: set a smaller default dock height here.
2004-03-21 Sven Neumann <sven@gimp.org>
* app/core/gimpundo.[ch]: added gimp_undo_type_to_name() a similar
function used to live in gimpimage-undo.[ch].
* app/core/gimpitemundo.c (gimp_item_undo_new): allow NULL as name
and generate it from the undo_type then.
* app/core/gimpimage-undo.[ch]: added gimp_image_undo_push_undu(),
new function that allows to push an undo on the image.
* app/text/Makefile.am
* app/text/text-types.h
* app/text/gimptextundo.[ch]: added GimpTextUndo, derived from
GimpItemUndo.
* app/core/gimpimage-undo-push.c (gimp_image_undo_push_text_layer):
use the new code and simply push a text undo here.
* app/tools/gimptexttool.c: compress text undos by peeking at the
undo stack. Fixes bug #137766.
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-21 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpthumbbox.c: modify the event_box and preview
styles in GtkWidget::style_set() instead of in
gimp_thumb_box_new() so they follow theme changes correctly and
the labels stay visible when switching to an "inverse" theme.
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-20 Sven Neumann <sven@gimp.org>
* configure.in: set version number to 2.0.0, version string to
"2.0rc1".
* app/Makefile.am
* libgimp/Makefile.am
* libgimpbase/Makefile.am
* libgimpcolor/Makefile.am
* libgimpmath/Makefile.am
* libgimpmodule/Makefile.am
* libgimpthumb/Makefile.am
* libgimpwidgets/Makefile.am
* tools/Makefile.am: changed 1.3 to 2.0 all over the place.
* README
* NEWS: updated for the 2.0rc1 release.
2004-03-20 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayer.c: it wasn't such a good idea to let
GimpConfig take care of the text when duplicating a text layer; it
didn't create a copy. Do that manually again; fixes bug #137786.
2004-03-20 Sven Neumann <sven@gimp.org>
* app/tools/gimptexttool.c (gimp_text_tool_create_vectors): don't
take the image from tool->gdisp, this might be a NULL pointer.
* app/core/gimpimage-undo-push.c: removed debugging output.
2004-03-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimppropwidgets.c (gimp_prop_size_entry_callback):
avoid to set the unit property with every size change; only set it
if it actually changed.
* app/core/gimpimage-undo-push.c (gimp_image_undo_push_text_layer):
allow to pass a GParamSpec that identifies a single text property
to be changed. In this case, don't store a GimpText object on the
undo stack but only the changed value.
* app/tools/gimptexttool.c: use the new undo feature to reduce the
memory footprint of text undo for the common case.
* app/text/gimptextlayer.c: changed accordingly.
2004-03-20 Simon Budig <simon@gimp.org>
* app/core/gimpimage-qmask.c: Applied slightly modified patch
from Sven. When the quickmask has a floating selection, anchor
it before loading the selection and deleting the qmask channel.
Fixes bug #137170.
2004-03-20 Simon Budig <simon@gimp.org>
* app/gui/select-commands.[ch]: new callbacks to convert the
current vector to the selection.
* app/gui/image-menu.c: hook it into the menu. Default shortcut
is Shift+V.
2004-03-20 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayer.c (gimp_text_layer_set): use the same
undo group logic as in the text tool. Not really necessary since
this function must not be called on modified text layers, but it's
more consistent this way.
2004-03-20 Simon Budig <simon@gimp.org>
* app/tools/gimpvectortool.c: Assigned "b" as the default shortcut
for the path tool ("Bezier").
Fixes bug #137753.
2004-03-20 Sven Neumann <sven@gimp.org>
* app/tools/gimptexttool.c: update the text editor when the text
changes (for example when undoing text changes). Push a drawable
undo when applying text changes to a modified text layer.
2004-03-20 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayer.c (gimp_text_layer_render): don't fiddle
with the item size, gimp_drawable_set_tiles() does the right thing.
2004-03-20 Simon Budig <simon@gimp.org>
* app/core/gimpundo.[ch]: Make it possible to refresh the preview
of an undo step.
* app/tools/gimpeditselectiontool.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c: refresh the preview when
compressing undos. This ensures that the last preview in the undo
history always reflects the current state of the image.
2004-03-20 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-undo-push.c (undo_pop_text_layer): don't
exchange the text_layer's text object but sync it with the text
object from the undo step.
* app/text/gimptextlayer.c (gimp_text_layer_set): in case the
layer has a mask, push an undo group around the text modifications.
* app/tools/gimptexttool.c (gimp_text_tool_idle_apply): push a
text layer undo before applying the text changes.
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 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayer.c (gimp_text_layer_render): if there's a
layer mask, resize it with the layer.
* app/tools/gimptexttool.c: don't change text_tool->layer before
calling gimp_text_tool_connect().
2004-03-19 Sven Neumann <sven@gimp.org>
* app/tools/gimptexttool.[ch]: added a confirmation dialog that is
shown when the user attempts to modify a modified text layer.
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-19 Michael Natterer <mitch@gimp.org>
* app/gui/color-notebook.c (color_notebook_new)
* app/tools/gimpcroptool.c (crop_info_create)
* app/tools/gimptransformtool.c (gimp_transform_tool_dialog):
explicitely set a default response for dialog buttons which were
created using gtk_dialog_add_buttons().
2004-03-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpitemtreeview.c: simplified visibility and linked
undo compression by passing an UNDO type, not an UNDO_GROUP type.
Fixed (made weird) compression of "exclusive visible/linked" undos
to only compress undos of the same item type (only compress layer
visibility if we pushed a *layer* visibility before, not a channel
or vectors visibility). Even worse, we need to push the
visibility/linked state of *all* items when pushing an exclusive
group, otherwise compression won't work.