2000-04-26 Michael Natterer <mitch@gimp.org>
* app/free_select.c: fill empty "default" with a "break" (#9431).
* libgimp/gimpenv.c: g_path_is_absolute wants a parameter (#9400).
2000-04-23 Tor Lillqvist <tml@iki.fi>
* libgimp/gimpui.def: Add gimp_ui_init.
* libgimp/makefile.{cygwin,msc} (gimpui_OBJECTS): Add gimpui.
* app/makefile.{cygwin,msc}
* plug-ins/makefile.{cygwin,msc}: New installation directory.
* app/datafiles.c (is_script): Must not g_free() value returned by
g_getenv().
* plug-ins/gdyntext/font_selection.c: Don't include gdkx.h with
GTk+ 1.3.
2000-04-22 Garry R. Osgood <gosgood@idt.net>
* app/bezier_select.c
Closes the most recent bezier segfault report;
about plotting anchor points on- and off-image.
unable to cite because bugs.gnome.org is not
well. Andrew Thomas handled the only other
buglet I'm aware of at this time.
Sat Apr 22 14:01:06 BST 2000 <alt@gimp.org>
* app/bezier_select.c
Fixed problem pointed out by Garry R. Osgood (manipulating
control points where curve is closed). Thanks
again Garry for pointing it out.
2000-04-21 Garry R. Osgood <gosgood@idt.net>
* app/main.c
* libgimp/Makefile.am
* libgimp/gimp.c
* libgimp/gimpsignal.c (New )
* libgimp/gimpsignal.h (New )
Patch by Austin Donnelly <austin@gimp.org> to
address #2742. (I took the liberty of moving it to
libgimp for general consumption, & fixed a typo)
Thanks due to Tim Mooney
<mooney@dogbert.cc.ndsu.nodak.edu> for testing
this on various flavors of OSF/1 boxes where
#2742 seemed especially common.
2000-04-20 Michael Natterer <mitch@gimp.org>
* gimprc.in
* app/gimprc.c: default to restore_session == TRUE so first time
users really see the automatically opened dialogs.
* app/session.[ch]: also open "Tool Options" if no sessionrc
exists. Moved the harcoded initial positions away from the top and
left edges of the screen to avoid dialogs which appear underneath
panels. Also arranged the four default dialogs non-overlapping.
2000-04-20 Michael Natterer <mitch@gimp.org>
* app/fuzzy_select.c
* app/selection_options.h
* app/tool_options.c: moved the "Threshold" scale from the fuzzy
select options to the selection options structure, so none of the
selection tools needs it's own tools options structure.
* app/bucket_fill.c: moved "Threshold" after "Sample Merged" as in
the fuzzy select options.
2000-04-19 Michael Natterer <mitch@gimp.org>
* app/bucket_fill.c
* app/by_color_select.c
* app/fuzzy_select.c
* app/preferences_dialog.c: made the "default_threshold" gimprc
variable work as advertized:
- initialize the thresholds with it.
- use it for "Reset".
- added a widget to the "Tool Options" preferences page.
- noticed that the "Reset" button of "By Color Select" doesn't
behave like all the other "Reset" buttons and changed it to
reset the ui, not the selection.
(There is now a "None" button and because it was so trivial, I
couldn't resist to add "All" and "Invert" buttons, too)
* libgimp/Makefile.am
* libgimp/gimpui.c: new file.
* libgimp/gimpui.h: new function gimp_ui_init() which will be
called by all plugins which have a ui (not only by those with a
preview because plugins should always follow gimp's colormap
installation policy).
Could someone please check if the FIXME stuff in the function
is the right thing to do (TM). Does GdkRGB allocate the correct
colors for the widgets in all cases or do we have to find another
way to ensure this across processes (gtk instances)?
2000-04-18 Michael Natterer <mitch@gimp.org>
* app/user_install.c: Creating the user's gimp directory may take
some time on NFS, so users may be tempted to press the "Continue"
button again.
Inform the user that this step may take some time and set the
"Continue" and "Cancel" buttons insensitive until finished.
2000-04-16 Michael Natterer <mitch@gimp.org>
* app/gdisplay_ops.c (gdisplay_shrink_wrap): block all canvas
events while resizing the display so the standard canvas "expose"
and "configure" handlers are not called.
This optimization is valid because shrink_wrap's caller has to do
a full recalculation and expose of the gdisplay anyway.
For the same reason, I removed the calls to gdisplay_expose_full()
and bounds_checking() from shrink_wrap.
This should also fix the double exposes Austin reported some time
ago. I hope it does not re-break yesterday's fix :)
* app/gdisplay_ops.[ch]: removed unused function
gdisplay_resize_image().
* app/scale.c (resize_display): do a full expose if one of the
"resize_display" or "redisplay" parameters is TRUE.
2000-04-15 Michael Natterer <mitch@gimp.org>
* app/gdisplay_ops.c (gdisplay_shrink_wrap): after resizing the
display, check if the window manager placed it offscreen and
center it in that case.
2000-04-15 Michael Natterer <mitch@gimp.org>
* app/disp_callbacks.c: s/0/FALSE/
* app/gdisplay_ops.c (gdisplay_shrink_wrap): removed all the
gtk_drawing_area_size(), show/hide and gtk_main_iteration() stuff
and don't touch the drawing area at all.
Instead, use brute force on gdisp->shell:
1. gtk_widget_size_allocate(gdisp->shell)
2. gdk_window_resize(gdisp->shell->window)
(tested with Sawmill, Enlightenment and twm)
* plug-ins/common/gif.c: use GIMP_HAVE_PARASITES instead of
_PARASITES_H, which wasn't defined anymore. Makes comment
parasites work with GIFs again.
* app/measure.c: pressing ALT anywhere outside the handles allows
to move the measure lines.
--Sven
2000-04-11 Tor Lillqvist <tml@iki.fi>
* libgimp/gimpenv.c (gimp_path_get_user_writable_dir): The stat()
function in the Win32 C runtime doesn't like if directory names
have an extra G_DIR_SEPARATOR suffixed. Remove such before calling
stat(). Those extra (back)slashes are added by for instance
gimp_path_parse(). Document that feature of gimp_path_parse().
* libgimp/gimputils.c (gimp_strescape): Correct documentation for
gimp_strescape(). The semantics of the exceptions parameter was
documented backwards. Clarify what the function does.
* plug-ins/gfig/gfig.c (plug_in_parse_gfig_path)
* plug-ins/FractalExplorer/FractalExplorer.c
(plug_in_parse_fractalexplorer_path)
* plug-ins/gflare/gflare.c (plug_in_parse_gflare_path,
gflare_save): Use painstakingly correct platform-specific
directory and search path separators, and escaped with
gimp_strescape when displayed as part of a gimprc entry.
* app/gimphelp.c: No debug messages on Win32, thanks.
2000-04-11 Michael Natterer <mitch@gimp.org>
* app/plug_in.c: if attaching to the newly created shared memory
segment fails, destroy it before forgetting it's ID. Closes#6299.
2000-04-10 Tor Lillqvist <tml@iki.fi>
* README: Correct the info about Win32 mailing lists.
* gimprc.win32: Add perfect-mouse setting.
* libgimp/gimp.h
* app/main.c: Guard against redefinition of _stdcall.
* libgimp/gimpmath.h: Define macros ISNAN and ISINF. On Win32 use
_isnan() and _fpclass() from <float.h>, on other platforms use
isnan() and isinf(). We really should test for isnan and isinf in the
configure script.
* tools/pdbgen/pdb/gimage.pdb
* app/gimage_cmds.c: Include gimpmath.h, use above macros instead
of using the nonportable isnan and isinf.
* app/gdisplay_ops.c: Do use the old gtk_widget_hide/show hack on
Win32.
* libgimp/makefile.cygwin
* libgimp/makefile.msc
* app/makefile.cygwin
* app/makefile.msc
* plug-ins/makefile.cygwin
* plug-ins/makefile.msc: Updates.
* plug-ins/gfig/gfig.c (plug_in_parse_gfig_path): Simplify warning
message on Win32. We could use G_DIR_SEPARATOR in the sample
gimprc line, but then we would have to call g_strescape to quote
it, argh. Win32 users use prebuilt versions with a correct gimprc
file anyway.
(create_file_selection): Use g_get_tmp_dir().
(gfig_update_stat_labels): Guard against possibly NULL value from
g_get_home_dir().
* libgimp/gimpexport.c: implemented the changes Nick Lamb
suggested: If the background layer has no alpha channel,
suggest "Flatten" instead of "Merge Visible Layers".
* app/fileops.c: In the MRU list and the doc_index always store
the absolute path to images, so you can open files from the
command-line and gimp will find them later if started from another
dir. Added tooltips that show the full path.
* app/menus.c: fixed a memleak (list entries were not freed on
removal from the MRU list).
* app/main.c
* app/user_install.[ch]: renamed functions and variables to match
the new filename.
--Sven
2000-04-06 Michael Natterer <mitch@gimp.org>
* app/commands.c
* app/layers_dialog.c
* app/resize.[ch]: behave like a widget:
removed resize_widget_free() and call
gtk_widget_destroy(resize->resize_shell) instead.
* app/interface.c: s/0/FALSE/
* app/color_area.c
* libgimp/gimpchainbutton.c: show the correct background also for
engine driven themes. The chainbutton's lines still don't draw
with the pixmap theme, which is probably a bug of the theme's
draw_polygon method.
* app/gimage_cmds.c
* tools/pdbgen/pdb/gimage.pdb: (gimp_image_set_resolution) guard
against NaN and infinity. There are pics out there using these
values and it seems that NaN > GIMP_MIN_RESOLUTION. Fixes#8476.
--Sven
* app/app_procs.c: if we cannot load the font we'd like to use,
use the gtk+ default font. Fixes bug #8359.
* app/about_dialog.c
* app/install.c: properly ref/unref fonts
* app/text_tool.[ch]: code cleanup (do not rely on TRUE being 1)
* app/tips_dialog.c: code cleanup and less resizing
--Sven
* app/app_procs.c: if we cannot load the font we'd like to use,
use the gtk+ default font. Fixes bug #8359.
* app/about_dialog.c
* app/install.c: properly ref/unref fonts
* app/text_tool.[ch]: code cleanup (do not rely on TRUE being 1)
* app/tips_dialog.c: code cleanup and less resizing
--Sven
2000-04-05 Michael Natterer <mitch@gimp.org>
* app/layers_dialog.c: oops, yesterday's "cleanups" contained an
unreverted hack I've tried which caused a SEGV with floating
selections. Fixed now.
2000-04-03 Michael Natterer <mitch@gimp.org>
* app/color_panel.[ch]
* app/color_picker.c
* app/qmask.c: removed the public function color_panel_free() and
fake a real widget's behaviour by connecting to the panel widget's
"destroy" signal.
* app/channels_dialog.c
* app/layers_dialog.c: cleaned up and sync'ed the code where
possible (without changing the logic).
2000-04-03 Michael Natterer <mitch@gimp.org>
* app/channels_dialog.c
* app/layers_dialog.c: when dropping layers/channels around in the
stack, Gtk sometimes continues searching a drag destination
_after_ the drop callback has been called (which is probably a
bug), causing a SEGV because the callback changed the GtkList
containing the layer/channel widgets.
The safe way is to reorder the stack in an idle function which
should also be robust against any future Gdk/X dnd protocol
change.
For the same reason, I added an idle function which lets the
active layer/channel widget grab the focus because in some dnd
cases the row holding the focus was not the active one (which is
otherwise impossible with GTK_SELECTION_BROWSE).
This commit should fix the remaining problems with layer/channel
dnd as well as all cases where the highlighted layer was not the
active one. Please report if it still doesn't work for you.
2000-04-03 Michael Natterer <mitch@gimp.org>
* app/gimpdnd.[ch]
* app/channels_dialog.c
* app/layers_dialog.c: removed the GdkGC parameter from
gimp_dnd_set_drawable_preview_icon() since it's no longer used.
* app/gimpimage.c: dirty the view correctly after applying the
layer mask. Don't gdisplays_flush() because it's the job of the
caller.
* app/layers_dialog.c: when applying a layer mask, flush either
the display or just the layer_widget, depending on the previous
visibility state of the mask. Cleanups.
* plug-ins/print/gimp_color_window.c
* plug-ins/print/gimp_main_window.c: including config.h re-enables
i18n.
german translation. Hopefully the translation is now good enough
that it won't ihave to change much anymore, since the new
"Gimp kurz und gut" reference for 1.2 will go into print soon...
--Sven
2000-04-02 Garry R. Osgood <gosgood@idt.net>
* gimp/app/colormap_dialog.i.c
As Mr. Lamb, report originator noted, an easy
fix. in ipal_set_image() line 688
Reorganized the initialization of the
indexed palette object so as not to run afoul
of gasserts() inhabiting ipal_draw() and client
routines. These entailed initialing ipal->col_index,
ipal->dnd_col_index prior to call to ipal_draw()
* app/bezier_select.c
Curves/Path tool
Fixed propblem with deleting points. You can now delete the first
and last point on any open curve (as well as mid-points).
Also fixed some problems where some points would leave the markers
on screen after they had been deleted.
Note you have always been able to delete whole curves by pressing
the "shift" key when over a point to be deleted in "remove mode".
2000-04-02 Michael Natterer <mitch@gimp.org>
* app/interface.c: completely overworked the widget packing of the
display shell. This was necessary because the table insisted on
giving the vertical scrollbar more allocation than it needed when
first displaying an image which is smaller than the minimal
statusbar width. Replaced the tables with packing boxes.
See the comments I've added to create_display_shell() if you
really want to see the ugly details.
Also, to get rid of the 2-pixel spacing which appears at the
bottom of the display whenever the statusarea is hidden,
gdisp->statusarea is now the eventbox, not the hbox it contains.
* pixmaps/navbutton.xpm: made it 2x2 pixels larger.
2000-04-01 Garry R. Osgood <gosgood@idt.net>
* gimp/app/bezier_select.c
No fooling, #6903 was not that hard to close;
in bezier_edit_point_on_curve(),when point
deletion reduces a curve below the minimum
with which the implementation can cope (2
anchors, four controls) we put it out of its
misery with an invocation of delete_whole_curve().
2000-04-01 Michael Natterer <mitch@gimp.org>
* app/disp_callbacks.c: when dropping a drawable, do the
undo_push_group_start() before creating the new layer, otherwise
the undo system will show obscure misbehaviour (the undo group is
pushed correctly but no undo will be possible until an other undo
is pushed).
* app/paint_funcs.c: Fixed the off by one error that was the cause
of bug #4980. Fixed a bug that caused images to have their
centers shifted slightly when resizing. Removed a couple of
unused variables.
2000-03-31 Michael Natterer <mitch@gimp.org>
* app/gimpdnd.[ch]: minor cleanups.
* libgimp/gimpwidgets.c: don't set a border width for the
radio_group's vbox if no frame around it was requested.
* plug-ins/common/sample_colorize.c: add a separator between
image and sample.
* plug-ins/common/iwarp.c: use the libgimp ui functions, removed
callbacks, a global s/gfloat/gdouble/, replaced the booleans
toggling the transform mode with a single variable containing an
enum value, indentation.