2005-09-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactionview.c (gimp_action_view_new): skip
actions if their name starts with '<' (menu actions created by
plug-ins have names like "<Image>/Foo/Bar"). Scroll the
pre-selected action to the center of the view, not to the top.
* app/widgets/gimpcontrollereditor.c
(gimp_controller_editor_edit_clicked): make the action editor
transient to the controller editor. Show the edited event's name
in the controller editor's header.
* app/widgets/gimpcontrollerwheel.c: use gimp_get_mod_string()
instead of hardcoding the modifiers in tons of translatable
strings. Don't call gettext() in GimpController::get_blurb(),
the strings are already translated.
* app/widgets/gimpcontrollerkeyboard.c: removed call to gettext()
here too.
2005-09-16 Sven Neumann <sven@gimp.org>
* app/tools/gimpimagemaptool.c (gimp_image_map_tool_initialize):
set the imagemap tool dialogs transient to the image window. See
comments in bug #316521.
2005-09-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.[ch] (gimp_widget_set_accel_help):
mis-named and mis-placed function that sets a widget's tooltip to
the action's tooltip plus the action's keyboard shortcut.
* app/widgets/gimptoolbox.c: at least the code is not here any
more.
* app/actions/tools-actions.c: use tool_info->help, not ->blurb
as the action's tooltip so the above works.
2005-09-13 Karine Delvare <kdelvare@nerim.net>
* app/tools/gimpcroptool.c
* app/tools/gimprectangleoptions.c
* app/tools/gimprectangletool.c
* app/tools/gimpnewrectselecttool.c: changed the way we stay inside
images boundaries so each tool decides whether it does or not.
2005-09-13 Michael Natterer <mitch@gimp.org>
* app/actions/dockable-actions.c (dockable_actions_update): don't
make "Detach Tab" insensitive if there are other dockbooks in the
dock.
* app/widgets/gimpdock.[ch]
* app/widgets/gimpdockseparator.[ch]: cleanup.
2005-09-13 Karine Delvare <kdelvare@nerim.net>
* app/tools/gimprectangletool.c: don't modify the rectangle while
moving, and stick to edges when going out of image boundaries.
2005-09-13 Sven Neumann <sven@gimp.org>
* app/core/gimppalette-import.c (gimp_palette_import_from_image):
ignore transparent pixels as suggested in bug #316212.
2005-09-12 Michael Natterer <mitch@gimp.org>
Really fix bug #150593:
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpdockseparator.[ch]: new widget implementing the
droppable separator bar in docks.
* app/widgets/gimpdock.c: use it and removed local separator
utility functions.
* app/widgets/gimptoolbox.c: use GimpDockSeparator API to show/hide
the label. Expand the separator initially.
* themes/Default/gtkrc
* themes/Small/gtkrc: the separator height style property moved
from GimpDock to GimpDockSeparator.
* menus/image-menu.xml.in
* app/actions/image-actions.c: Move Mode menu from Colors
back to Image, and rename it back to Mode, as per consensus
on #gimp.
2005-09-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox.c (gimp_toolbox_book_added)
(gimp_toolbox_book_removed): if there is no dockbook added, expand
the separator and add a label telling the user that she can drop
dockables there. Fixes bug #150593.
2005-09-11 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.h (enum GimpUndoType): replaced lots of
bogus strings by properly translatable ones. Many of them are
fallbacks anyway, but they should be presentable to the user.
Fixes bug #315964.
2005-09-11 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/script-fu-interface.c (script_fu_response):
bail out if the action_area is insensitive. Ignores attempts to
close the window while the script is running. Fixes bug #308662.
2005-09-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerbox.c
(gimp_container_box_set_size_request): take the container's
border_width into account.
* app/widgets/gimpcontainergridview.c
(gimp_container_grid_view_init): make sure GTK_SHADOW_IN is set on
the scrolled window, not on the viewport, so we get the same
results for list and grid views when using
gimp_container_box_set_size_request().
* app/widgets/gimpcontainerpopup.[ch]: added setters and getters
for view_type and preview_size, don't allow the preview to grow
larger than the popup.
* app/widgets/gimpviewablebutton.[ch]: added "popup-view-type" and
"popup-preview-size" properties and setters/getters.
2005-09-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewablebox.c: factored out common code in
preparation of fixing bug #315443.
* app/widgets/gimpviewablebutton.h (struct GimpViewableButton):
"popup_preview_size" is a gint, not a GimpViewType.
2005-09-10 Michael Natterer <mitch@gimp.org>
* app/tools/gimpiscissorstool.c (gimp_iscissors_tool_button_release):
use gimp_draw_tool_on_handle() to figure if we need to close the
path. Makes sure that the anchor's sensitive area matches its size
on screen. Fixes bug #134250.
2005-09-10 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c (gimp_clone_options_gui): moved the
"Sample merged" toggle below the "Image source" radio button.
Also fixed capitalization of "Sample merged".
2005-09-10 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c (gimp_clone_options_gui): moved the
"Sample Merged" toggle below the "Image Source" radio button.
2005-09-09 Michael Natterer <mitch@gimp.org>
Added parent window API to the GimpProgress interface and to
the libgimp progress stuff. Might look strange, but does
the right thing in almost all cases (image window, file dialog,
script-fu dialog etc). Fixes bug #62988.
* app/core/gimpprogress.[ch]: added GimpProgress::get_window()
which should return a toplevel window ID if the progress is in a
window that wants to be the transient parent of plug-in dialogs.
* app/widgets/gimpwidgets-utils.[ch] (gimp_window_get_native): new
function which returns the window handle of a GtkWindow's GdkWindow.
* app/widgets/gimpfiledialog.c: implement ::get_window().
* app/display/gimpdisplay.[ch]: ditto. Removed window handle API.
* app/gui/gui-vtable.c: changed accordingly.
* libgimpbase/gimpbaseenums.[ch] (enum GimpProgressCommand):
added GIMP_PROGRESS_COMMAND_GET_WINDOW.
* app/plug-in/plug-in-progress.[ch] (plug_in_progress_get_window):
new function. Also renamed some functions to match the
GimpProgress interface, and not the legacy PDB procedure names.
* tools/pdbgen/pdb/progress.pdb
* app/core/gimppdbprogress.c: implement get_window() on both
sides of the wire, keeping backward compatibility (hopefully).
* libgimp/gimpprogress.[ch]: deprecated gimp_progress_install()
and added gimp_progress_install_vtable() which takes a vtable with
padding to be extensible. Added get_window() vtable entry and
dispatch it accordingly. Also added pulse() which was implemented
in a hackish way before. Everything is of course backward
compatible.
* libgimp/gimpprogressbar.c: inmplement the get_window() stuff
so a plug-in dialog containing a progress can be the transient
parent of another dialog in another plug-in.
* libgimp/gimpui.[ch] (gimp_ui_get_progress_window): new function
which returns a foreign GdkWindow of this plug-ins progress
window.
Renamed gimp_window_set_transient_for_default_display() to
gimp_window_set_transient() and make it use the progress' window
handle instead of the display's (which is the right thing to do in
almost all cases).
* libgimp/gimp.def
* libgimp/gimpui.def: add the new functions.
* tools/pdbgen/enums.pl
* app/pdb/internal_procs.c
* app/pdb/progress_cmds.c
* libgimp/gimpprogress_pdb.[ch]: regenerated.
* libgimp/gimpexport.c
* plug-ins/*/*.c: follow API change.
2005-09-09 Tor Lillqvist <tml@novell.com>
* libgimpbase/gimpdatafiles.c (is_script): Practice what I preach
and use g_ascii_strcasecmp() instead of g_strcasecmp().
2005-09-09 Tor Lillqvist <tml@novell.com>
* gimptool-win32.c.in (get_prefix, maybe_append_exe): Practice
what I preach and use g_ascii_strcasecmp() instead of
g_strcasecmp().
2005-09-08 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer-floating-sel.c (floating_sel_boundary): if
the floating selection has no alpha, manually create BoundSegs of
its outline instead of calling boundary_find() (which creates a
boundary of the last channel). Fixes bug #145373.
* app/widgets/gimplayertreeview.c
(gimp_layer_tree_view_floating_selection_changed): update all
layer names' text attributes, not only for layers with alpha.
Fixes layer name display when making a new layer out of a floating
selection without alpha.
2005-09-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c: allow to popup the context
menu from the views' empty area. Fixes bug #314719.
2005-09-07 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel-combine.c (gimp_channel_combine_ellipse):
use gimp_rectangle_intersect() instead of just looking at the
passed in w,h to figure whether nothing needs to be done. While
the algorithm does nicely with an entirely out-of-image ellipse,
the channel's bounds were set to a rectangle of zero width or
height, which caused subsequent calls to gimp_channel_bounds() to
return broken bounds. Fixes bug #315417.
(gimp_channel_combine_rect)
(gimp_channel_combine_mask): use gimp_rectangle_intersect() here
too instead of the usual unclear CLAMPing on x1,y1,x2,y2.
2005-09-07 Sven Neumann <sven@gimp.org>
* app/widgets/gimperrordialog.[ch]: don't set a window icon, the
dialog should be transient anyway.
* app/dialogs/dialogs-constructors.c: changed accordingly.
* app/paint-funcs/paint-funcs-generic.h (blend_pixels): change
variables from unsigned to signed -- fixes problem described
in comment 17 of bug #163721.
2005-09-05 Sven Neumann <sven@gimp.org>
* plug-ins: Call gimp_window_set_transient_for_default_display()
for most plug-in dialogs. Not yet done are load and save dialogs
and dialogs created from language bindings.
2005-09-05 Sven Neumann <sven@gimp.org>
Address bug #307971:
* app/core/gimp-gui.[ch]
* app/display/gimpdisplay.[ch]
* app/gui/gui-vtable.c
* tools/pdbgen/pdb/display.pdb: added PDB function to obtain a
window handle on an image display.
* app/pdb/display_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpdisplay_pdb.[ch]: regenerated.
* libgimp/gimpui.[ch]: added functions to set a GtkWindow transient
to an image display.
* plug-ins/common/gauss.c: use the new function exemplarily.
* libgimp/gimp.def
* libgimp/gimpui.def: updated.
2005-09-05 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.c: don't let named cut/copy affect the global
buffer. Fixes bug #315225. Also make "Global Buffer" translatable.
2005-09-05 Sven Neumann <sven@gimp.org>
* app/core/gimp.[ch]
* app/core/gimpimage-new.c: removed the confusing and redundant
feature of having the New Image dialog default to the size of the
global buffer. Please use Paste as New instead. Fixes bug #315106.
2005-09-05 Michael Natterer <mitch@gimp.org>
* app/actions/edit-actions.c
* app/actions/edit-commands.[ch]
* menus/image-menu.xml.in: applied modified patch from David
Gowers which adds an "edit-named-copy-visible" actions and its
menu item. Addresses bug #315130.
2005-09-04 Michael Natterer <mitch@gimp.org>
Cleaned up and fixed the order in which default tool options and
user context values are initialized, and added loading / saving of
the global user context. Fixes bug #165078.
* app/core/Makefile.am
* app/core/gimp-contexts.[ch]: new files which manage the global
contexts. Contains gimp_contexts_init/exit/load/save/clear().
* app/core/gimp.c: use the new init/exit functions instead of
implementing the stuff here.
* app/tools/gimp-tools.c: load/save/clear the user context from
here so it follows the same logic as the tool options. Reset all
tool options before loading the user context and copy the user
context's property to all tool options before loading tool
options.
* app/core/gimptoolinfo.c (gimp_tool_info_new): don't initialize
the tool options with the users context's properties. It's way too
early here and they will be overwritten later.
* app/widgets/gimpdevices.c (gimp_devices_restore): initialize all
device contexts with the user context's properties before loading
the devices and copying the active one back to the user context.
2005-09-03 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintcore.c (gimp_paint_core_get_orig_image)
(gimp_paint_core_get_orig_proj): replaced manual calculation of
the offset of a pixel in a tile (marked as /* dubious... */ for a
reason) by simply using the offset parameters of tile_data_pointer().
2005-09-03 Michael Natterer <mitch@gimp.org>
* app/base/pixel-region.[ch]: some general cleanup.
(pixel_region_init_temp_buf)
(pixel_region_init_data): new functions which initialize pixel
regions on TempBufs and on raw contiguous arrays of pixel data.
(pixel_region_configure): fixed a bug that has probably been there
forever: when processing contiguous (non-tiled) data, interpret
the original x and y coordinates of the region as offsets into
the data. Before this fix, the initial x and y were simply ignored
(by using them in a broken way), thus always forcing the upper
left corner of the region being the beginning of the passed data.
Lots of code was working around this problem by setting the
pixel_region's data pointer to the proper starting pixel of the
region in the middle the buffer.
* libgimp/gimppixelrgn.c: some general cleanup.
(gimp_pixel_rgn_configure): same fix as above. Fortunately, nobody
seems to know that libgimp pixel regions can be used on arrays of
data, just as core ones. Only two plug-ins were using this
feature, and they are antique and written by spencer and federico,
respectively. They both don't use offsets into the buffers and are
not affected by this change. It's highly unlikely that anybody out
there knows/uses this feature, so it can IMHO be safely changed.
* app/base/temp-buf.c
* app/core/gimpbuffer.c
* app/core/gimpdrawable-combine.c
* app/core/gimpdrawable-preview.c
* app/core/gimpimage-preview.c
* app/core/gimplayer.c
* app/paint/gimpbrushcore.c
* app/paint/gimpclone.c
* app/paint/gimpconvolve.c
* app/paint/gimpdodgeburn.c
* app/paint/gimppaintcore.c
* app/paint/gimpsmudge.c
* app/tools/gimpiscissorstool.c
* app/tools/gimppainttool.c: use the pixel_region_init_foo()
functions instead of initializing regions of TempBufs and raw data
manually. Removed lots of workarounds for the broken offset
handling. The changed places of code are much more readable now.
2005-09-03 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.[ch] (gimp_edit_paste_as_new): don't create a
display here.
(gimp_edit_named_cut)
(gimp_edit_named_copy)
(gimp_edit_named_copy_visible): new functions containing named
buffer wrappers around the functions affecting the global buffer
only.
* app/actions/edit-commands.c: use the new functions instead of
implementing them here, create a display for the image returned
by paste as new.
* app/actions/buffers-commands.c
* app/widgets/gimptoolbox-dnd.c: create displays here too.
* tools/pdbgen/pdb/edit.pdb: added wrappers for paste as new and
wrappers for all the cut/copy/paste named stuff.
Fixes bug #315130. Cleaned up and de-obfuscated.
* libgimp/gimp.def: changed accordingly.
* app/pdb/edit_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpedit_pdb.[ch]: regenerated.
2005-09-02 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c: allow to popup menus on
empty container views using the standard Shift-F10 keybinding.
2005-09-02 Sven Neumann <sven@gimp.org>
* app/tools/gimptextoptions.c
* app/widgets/gimpwidgets-utils.[ch]: dropped the labels from text
tool options that have icons. Reduces visual clutter.
2005-09-02 Michael Natterer <mitch@gimp.org>
* tools/test-clipboard.c (test_clipboard_copy_callback): don't
quit the main loop after transferring the data to GTK, it needs a
running main loop to get the chunks tranferred to X.
2005-09-02 Sven Neumann <sven@gimp.org>
* app/dialogs/convert-dialog.c
* app/dialogs/image-merge-layers-dialog.c
* app/dialogs/layer-add-mask-dialog.c
* app/dialogs/offset-dialog.c: use verbs instead of "OK" in the
confirmative dialog button.
2005-09-02 Tor Lillqvist <tml@novell.com>
* authors.xml: Mark people as documenter or artist, based on
ChangeLogs and other information. Remove translator names, they
are in the respective .po files.
2005-09-02 Sven Neumann <sven@gimp.org>
* plug-ins/jpeg/jpeg-load.c (load_image)
* plug-ins/jpeg/jpeg-save.c (save_image): removed tile cache again,
it doesn't help for the way the plug-in accesses the pixels.
2005-09-01 Sven Neumann <neumann@jpk.com>
* app/core/gimppalette.[ch]: reverted, it duplicates existing
functionality.
* app/core/gimppalette-import.c
(gimp_palette_import_from_indexed_image): name the colors using
their index in the colormap.
2005-08-31 Michael Natterer <mitch@gimp.org>
* app/dialogs/preferences-dialog.c
(prefs_check_button_add_with_icon): added optional size group
parameter and add the icon to the group.
(prefs_dialog_new): align the icons on the tool options and
toolbox pages.
2005-08-29 Michael Natterer <mitch@gimp.org>
The previous commit added tons of code just to completely break
clone align behavior. Reverted lots of the changes and do the
sample-merged stuff at the innermost place (gimp_clone_motion).
This change also enables changing sample-merged between paint
strokes.
* app/paint/gimpclone.[ch] (struct GimpClone): changed member
"src_pickable" back to "src_drawable".
(gimp_clone_paint): completely reverted.
(gimp_clone_motion): do the drawable/projection -> pickable
stuff and drawable offset handling here.
Fixed signal handling to connect to the drawable's "removed"
signal (not "disconnect", eek). Disconnect from the signal once
the drawable has been removed.
* app/tools/gimpclonetool.c: changed accordingly.
2005-08-29 Michael Natterer <mitch@gimp.org>
* plug-ins/common/gif.c: added toggles which allow to always use
the frame delay and disposal entered in the dialog, overriding the
ones specified in the layer names. Fixes bug #314726. Also fixed
missing and non-working mnemonics.
2005-08-29 Sven Neumann <sven@gimp.org>
* plug-ins/common/poppler.c: retitled dialog to "Import from PDF"
and changed the confirmative button label to "Import".
2005-08-28 Michael Natterer <mitch@gimp.org>
Immplement "Sample Merged" for the clone tool. Fixes bug #123627.
* app/paint/gimppaintcore.[ch] (struct GimpPaintCore): added
members "saved_proj_tiles" which stores the unmodified projection,
"orig_proj_buf" which stores the unmodified temp paint application
buf and "use_saved_proj" which controls if all the additional
stuff should be allocated and managed.
(gimp_paint_core_start): allocate the saved_proj_tiles if needed.
(gimp_paint_core_get_orig_proj): new function like
gimp_paint_core_get_orig_image() which returns unmodified
projection pixels for paint application.
(gimp_paint_core_validate_saved_proj_tiles): new function like
gimp_paint_core_validate_undo_tiles() which copies the tiles that
will be dirtied to saved_proj_tiles.
(gimp_paint_core_paste): call above save_proj_tiles() so
projection tiles are saved before dirtying them.
* app/paint/gimpclone.[ch]: replaced member src_drawable by
src_pickable and use the image's projection if sample_merged it
TRUE. Adjust src offsets accordingly and use GimpPaintCore's new
get_orig_proj() API to get the src pixels.
* app/paint/gimpcloneoptions.[ch]: added boolean "sample_merged"
property.
* app/tools/gimpclonetool.c: follow GimpClone's src_drawable ->
src_pickable change.
(gimp_clone_tool_button_press): set the paint_core's
"use_saved_proj" boolean before chaining up.
(gimp_clone_options_gui): add a "Sample Merged" toggle button.
2005-08-27 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewrendererpalette.c
(gimp_view_renderer_palette_init): initialize renderer->columns
to != 0 to avoid floating point exceptions on initial layout
calculation. Fixes bug #314663.
2005-08-27 Michael Schumacher <schumaml@cvs.gnome.org>
* plug-ins/common/gradmap.c: applied a patch by David Gowers,
which makes palette-map behave the same as gradient-map. Fixes bug
313458.
2005-08-26 Sven Neumann <sven@gimp.org>
* plug-ins/common/svg.c: deal with SVG API change. This is a
compile-time check and thus somewhat ugly because it requires a
recompile of the plug-in when updating librsvg. Fixes bug #314400.
2005-08-26 Tor Lillqvist <tml@novell.com>
* app/plug-in/plug-in.c (plug_in_prep_for_exec, plug_in_open):
Instead of passing a child_setup function whose body is ifdeffed
out on Win32 to g_spawn_async(), pass NULL for child_setup on
Win32. Newer g_spawn_async() implementations on Win32 warn if
child_setup functions are attempted to be used, as they don't make
sense because without any fork(), they are called in the parent
process.
2005-08-25 Michael Natterer <mitch@gimp.org>
* configure.in: define FOO_DISABLE_DEPRECATED for the new stable
versions of GTK+ and Pango.
Check for poppler >= 0.4.1, they did another API change.
* plug-ins/common/poppler.c: and some more #ifdefs to
poppler_page_render_to_pixbuf().
2005-08-25 Sven Neumann <sven@gimp.org>
* libgimpbase/gimputils.h (gimp_canonicalize_identifier): sync
parameter name with implementation to please gtk-doc.