Commit graph

883 commits

Author SHA1 Message Date
Michael Natterer 0b8c4b3ec9 app/widgets/Makefile.am app/widgets/widgets-types.h new GtkUIManager
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 16:33:17 +00:00
Michael Natterer 25589863a3 app/display/gimpdisplayshell-callbacks.c app/display/gimpdisplayshell.c
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 16:54:44 +00:00
Michael Natterer b80d76ab50 update the whole image.
2004-04-05  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage.c (gimp_image_real_mode_changed): update the
	whole image.

	* app/display/gimpdisplay-handlers.c: removed obsolete
	"mode_changed" and "colormap_changed" handlers because GimpImage's
	default handlers already update the whole image.
2004-04-05 15:38:26 +00:00
Sven Neumann f87c500007 app/display/gimpdisplayshell-callbacks.c
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 17:17:40 +00:00
Sven Neumann b179d2a76b Cache the GC for drawing the grid as suggested in bug #138081:
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-04 15:53:21 +00:00
Michael Natterer a666668ce8 call gimp_display_shell_expose_full() so the whole canvas gets cleared
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 13:12:07 +00:00
Michael Natterer e0d1ddb070 added run-time version check and do the workaround for bug #136636 only if
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 15:58:48 +00:00
Pedro Gimeno 9127a54dec Fixed several off-by-one problems in display:
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 21:59:41 +00:00
Sven Neumann 520ee8b3ac added gimp_text_layer_set(), a function that calls g_object_set() on the
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 22:12:18 +00:00
Michael Natterer 2e2e65f841 added runtime check for GTK+ >= 2.4.0 and make sure the menubar's accels
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 12:52:27 +00:00
Sven Neumann 17679a610b added a missing call to gimp_image_flush().
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-18 15:27:23 +00:00
Sven Neumann f67c16ec60 removed all idle handling here. Changes to the text-layer's text object
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-14 18:48:00 +00:00
Sven Neumann f81e2f3d68 implement GimpDrawable functions that affect the tiles and mark the text
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-13 15:07:33 +00:00
Sven Neumann 8a2b0af371 only set the text layer's color if a color is being dropped. Fixes crash
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-12 00:50:36 +00:00
Michael Natterer 423837e26e redid last change so it calls tool_manager_cursor_update_active() *before*
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 17:52:56 +00:00
Michael Natterer a15f6489e8 added new local state "gboolean force_cursor_updating" which makes the
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 17:41:41 +00:00
Michael Natterer 2b7101979a work around bug #136636 (Win32 only) and ask the current device for its
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 17:17:15 +00:00
Michael Natterer 4f59b04454 disabled debugging output when pushing/popping the move too using <space>.
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 15:32:27 +00:00
Simon Budig 70671753ae app/base/cpu-accel.c app/display/gimpdisplayshell-dnd.c
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-10 15:10:34 +00:00
Sven Neumann 6792fc429d removed some obsolete headers 2004-03-08 16:40:46 +00:00
Sven Neumann 92f46813e0 redone this change. We should probably add a GimpMessageDialog to avoid
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 16:34:09 +00:00
Dave Neary ac3b82f5a4 First attempt to resolve bug #107009. This changes the wording on the
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-03-08 15:12:50 +00:00
Sven Neumann cdc2f0ded6 check display->shell before using it. It might be NULL if the function is
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-26 14:01:57 +00:00
Michael Natterer eb7f99bb8f added #defines for GimpCoords' default pressure, tilt and wheel values.
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 22:36:50 +00:00
Simon Budig 8b18fc8547 corrected the value ranges and default values for GDK_AXIS_XTILT and
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 20:30:44 +00:00
Michael Natterer 02065884f2 return the snapped coordinates as gdouble, not gint because we must not
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-23 18:23:31 +00:00
Michael Natterer 799ea1f107 themes/Default/images/Makefile.am
2004-02-19  Michael Natterer  <mitch@gimp.org>

	* themes/Default/images/Makefile.am
	* themes/Default/images/stock-display-filter-16.png
	* themes/Default/images/stock-display-filter-24.png
	* libgimpwidgets/gimpstock.[ch]: added Jimmac's glasses.

	* app/display/gimpdisplayshell-filter-dialog.c
	* app/gui/image-menu.c: and use them.
2004-02-19 16:51:44 +00:00
Simon Budig 097801d7a7 app/config/gimpguiconfig.[ch] Added new GUI option: snapping distance
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 20:31:11 +00:00
Simon Budig 40ac20ff92 app/display/gimpdisplayshell.c Adjusted snapping distance to 8 pixels,
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-18 18:37:49 +00:00
Michael Natterer 361369bcfa disconnect from the correct config objects. Fixes bug #134694.
2004-02-18  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell-handlers.c
	(gimp_display_shell_disconnect): disconnect from the correct
	config objects. Fixes bug #134694.
2004-02-18 02:33:49 +00:00
Sven Neumann 1c8b260864 fixed my last change here; of course only the guide GCs need a stipple
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-16 12:03:52 +00:00
Michael Natterer 25b81b1570 Fixed lots of QuickMask brokenness by letting the image adjust its
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-14 15:37:23 +00:00
Simon Budig ae81af14f4 make the snapping width a parameter of the snapping functions.
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-13 13:31:16 +00:00
Sven Neumann 5f91135389 use GDK_CAP_NOT_LAST as the cap_style for all canvas drawing.
2004-02-12  Sven Neumann  <sven@gimp.org>

	* app/display/gimpcanvas.c (gimp_canvas_gc_new): use
	GDK_CAP_NOT_LAST as the cap_style for all canvas drawing.
2004-02-12 16:01:18 +00:00
Sven Neumann b9f19e30a9 when dropping a color on a text layer, change the text color. This is a
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.
2004-02-11 21:42:22 +00:00
Hans Breuer 5cbb416a91 new file to keep common definitions for the msc build use common
2004-02-07  Hans Breuer  <hans@breuer.org>

	* gimpdefs.msc : new file to keep common definitions for the msc build
	* **/makefile.msc : use common defintions, e.g. GIMP_VER
	* Makefile.am : add the former to EXTRA_DIST
2004-02-07 23:01:33 +00:00
Michael Natterer 9304d27d00 intersect the passed in area with the real area of the image in display
2004-02-07  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell-draw.c
	(gimp_display_shell_draw_area): intersect the passed in area with
	the real area of the image in display coordinates and render the
	projection only if there actually is an intersection.
	Use gimp_rectangle_intersect() instead of handmade CLAMP()
	constructs. Fixes bug #113142.
2004-02-07 01:41:30 +00:00
Michael Natterer bfe203c2e2 removed all drawing functions. The file was still too large.
2004-02-07  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell.[ch]: removed all drawing functions.
	The file was still too large.

	* app/display/Makefile.am
	* app/display/gimpdisplayshell-draw.[ch]: new files containing
	the drawing functions.

	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpdisplayshell-handlers.c
	* app/tools/gimpmovetool.c: changed #includes accordingly.

	* app/display/gimpdisplay-handlers.c
	(gimp_display_size_changed_handler): added some #if 0'ed code I'm
	not sure about. Actually, some of the handlers in this file could
	need the same code, so it could be abstracted as
	gimp_display_stop_draw() or something. Please have a look.
2004-02-07 00:16:52 +00:00
Michael Natterer 561a60b010 fixed integer/boolean confusion: s/0/FALSE/.
2004-02-05  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell.c (gimp_display_shell_mask_bounds):
	fixed integer/boolean confusion: s/0/FALSE/.

	(gimp_display_shell_draw_cursor): draw the cursor only if
	shell->have_cursor is TRUE.

	* app/display/gimpdisplayshell-callbacks.c
	(gimp_display_shell_canvas_expose): call the above unconditionally.
2004-02-05 23:55:03 +00:00
Michael Natterer d88c150c4b use gdouble instead of gfloat for x and y scale factors so gfloat's
2004-02-04  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell-render.c (struct RenderInfo)
	(render_image_accelerate_scaling): use gdouble instead of gfloat
	for x and y scale factors so gfloat's limited precision can't add
	up to off-by-one pixel errors. Fixes display artefacts (missing
	updates) at the bottom and right sides of updated areas at certain
	irrational zoom factors like 1:3.
2004-02-04 02:00:04 +00:00
Sven Neumann 0deb5ccf3f improved dialog layout.
2004-02-03  Sven Neumann  <sven@gimp.org>

	* app/display/gimpdisplayshell-scale.c
	(gimp_display_shell_scale_dialog): improved dialog layout.
2004-02-03 15:51:25 +00:00
David Odin 99f0b5a4d4 gimp_canvas_draw_segments(): Do not call gdk_draw_segments() with more
* app/display/gimpcanvas.c: gimp_canvas_draw_segments():
	  Do not call gdk_draw_segments() with more than 32000 segments at a
	  time, because XDrawSegments should never be called with more
	  segments than that. This should really be fixed at the gdk level,
	  though.

	This fixes bug #122026.
2004-02-02 18:38:24 +00:00
Simon Budig 1ab2c64a12 initialize variable to avoid stupid compiler warning.
2004-02-01  Simon Budig  <simon@gimp.org>

	* app/display/gimpdisplayshell-scale.c: initialize variable
	to avoid stupid compiler warning.
2004-02-01 00:36:53 +00:00
Simon Budig 645a1ab652 Store the zoom factor as float, not as a ratio.
2004-01-29  Simon Budig  <simon@gimp.org>

	* app/display/gimpdisplayshell.[ch]: Store the zoom factor as
	float, not as a ratio.

	* app/display/gimpdisplayshell-scale.[ch]: change the API to
	expose the Float instead a weirdly encoded integer. Implement
	functions to get a ratio from the scale factor. Implement a set
	as presets as discussed on the mailinglist. Changed Zoom->Other
	dialog to enable entering a float.

	* app/display/gimpdisplayshell-title.c
	* app/display/gimpnavigationview.c
	* app/gui/image-menu.c
	* app/gui/info-window.c
	* app/tools/gimpmagnifytool.c: changed accordingly.

	* app/core/gimp.[ch]
	* app/display/gimpdisplay.[ch]
	* app/gui/gui-vtable.c
	* app/widgets/widgets-enums.h: Made the various display-creating
	functions accept a float for the scale. Introduce a new
	GimpZoomType: GIMP_ZOOM_TO. Generally adjust the API to use
	floats instead of weird integers.

	* app/core/gimp-edit.c
	* app/core/gimptemplate.c
	* app/display/gimpdisplayshell-callbacks.c
	* app/file/file-open.c
	* app/gui/image-commands.c
	* app/gui/view-commands.[ch]
	* tools/pdbgen/pdb/display.pdb
	* app/widgets/gimpimageview.c
	* app/widgets/gimptoolbox-dnd.c: changed accordingly

	* app/pdb/display_cmds.c: regenerated
2004-01-29 22:22:29 +00:00
Michael Natterer c92a4e693d added '%P' which expands to the PDB id of the active drawable. Moved local
2004-01-27  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell-title.c
	(gimp_display_shell_format_title): added '%P' which expands to the
	PDB id of the active drawable. Moved local variables to local
	scopes where they are needed.

	* app/config/gimpconfig-dump.c: document it.
2004-01-27 12:43:53 +00:00
Michael Natterer f406b73da6 some cleanup.
2004-01-27  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell-dnd.c: some cleanup.

	(gimp_display_shell_bucket_fill): don't use the bucket fill
	options but behave like "Edit -> Fill" and fill with NORMAL/100%.
	Fixes bug #132596.
2004-01-27 11:30:54 +00:00
Sven Neumann 86f967393d don't draw the outbounds selection when the selection is hidden (bug
2004-01-26  Sven Neumann  <sven@gimp.org>

	* app/display/gimpdisplayshell-selection.c: don't draw the
	outbounds selection when the selection is hidden (bug #132595).
2004-01-26 19:55:34 +00:00
Michael Natterer 613e328f13 added boolean return value to GimpTool::initialize(). Returning FALSE
2004-01-21  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptool.[ch]: added boolean return value to
	GimpTool::initialize(). Returning FALSE means the tool could not
	be initialized and doesn't want to receive button events.
	Return TRUE from the default implementation.

	* app/tools/tool_manager.[ch]: added boolean return value to
	tool_manager_initialize_active(). Don't set the tool's display or
	drawable if initialize() returns FALSE.

	* app/display/gimpdisplayshell-callbacks.c: don't send button
	events to the tool if initialize() returns FALSE.

	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpcolorbalancetool.c
	* app/tools/gimpcolorizetool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpposterizetool.c
	* app/tools/gimpthresholdtool.c: return FALSE for NULL and indexed
	drawables.

	* app/tools/gimpimagemaptool.c: always return TRUE because our
	subclasses already checked if the active drawable is OK.

	* app/tools/gimptransformtool.c: return FALSE for layers with
	masks. Fixes bug #132089. Some random cleanups.
2004-01-21 16:07:48 +00:00
Michael Natterer 370a16fafe don't allow to select anything but the floating selection. Fixes bug
2004-01-18  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage.c (gimp_image_set_active_layer): don't allow
	to select anything but the floating selection. Fixes bug #128025.

	(gimp_image_set_active_layer,channel,vectors): allow to pass NULL
	to unselect the active item. Removed the silly feature that
	passing some random item of another image would select the first
	item in the list (was unused anyway).

	(gimp_image_unset_active_channel): use gimp_image_set_active_channel()
	now that it accepts NULL.

	(gimp_image_add_layer,channel,vectors): cleaned up / simplified.

	(gimp_image_remove_layer,channel,vectors): cleanup,
	simplification, use gimp_image_set_active_layer,channel,vectors()
	now that they accept NULL, make sure the item next to the removed
	item becomes the active one (and not the first in the list, which
	was a severe usability problem in the dialogs).

	* app/core/gimpimage-undo-push.c (undo_pop_layer,channel): pass
	NULL to the set_active functions, cleanup.

	* app/core/gimpimage-duplicate.c: attach the floating selection
	before setting the active layer. Code relied on broken
	gimp_image_set_active_layer() behaviour before.

	* app/core/gimplayer-floating-sel.c: no need to set
	gimage->floating_sel before calling gimp_image_add_layer(). The
	weird GUI mentioned in the comment existed in 1.2 only.

	* app/display/gimpdisplayshell-layer-select.c (layer_select_advance):
	don't assume that setting the active_layer always succeeds.

	* tools/pdbgen/pdb/image.pdb: behave as the documentation says
	and return an execution error if setting the active layer or
	channel failed.

	Unrelated:

	* tools/pdbgen/pdb/image.pdb
	* tools/pdbgen/pdb/layer.pdb: removed leftover cruft from the old
	guchar based color API.

	* tools/pdbgen/pdb/channel.pdb: simplified code which handles the
	channel's color.

	* app/pdb/channel_cmds.c
	* app/pdb/image_cmds.c: regenerated.
2004-01-18 12:16:44 +00:00
Michael Natterer 0af39061b6 Fixed bug #78732 (don't paste off screen):
2004-01-15  Michael Natterer  <mitch@gimp.org>

	Fixed bug #78732 (don't paste off screen):

	* app/display/gimpdisplayshell-transform.[ch]: added new function
	gimp_display_shell_untransform_viewport() which returns the
	visible rectangle of the image in image coordinates.

	* app/core/gimp-edit.[ch] (gimp_edit_paste): added viewport
	parameters and changed positioning of the pasted layer as follows:

	- if there is a selection, center on the selection (just as before).
	- if there is no viewport, center on the active drawable.
	- if the viewport intersects with the active drawable, center
	  on the intersection.
	- if the viewport does *not* intersect with the active drawable,
	  center on the active drawable (off-screen, but better than pasting
	  something that will be invisible due to floating selection clipping).
	- if there is no active drawable, center on the viewport.
	- if there is no active drawable and no viewport, center on the image.

	* app/widgets/gimpbufferview.c (gimp_buffer_view_paste_clicked)
	(gimp_buffer_view_paste_into_clicked)
	* app/display/gimpdisplayshell-dnd.c (gimp_display_shell_drop_buffer)
	* app/gui/edit-commands.c (edit_paste_cmd_callback)
	(edit_paste_into_cmd_callback): ask the shell for the viewport
	and pass it to gimp_edit_paste().

	* app/display/gimpdisplayshell-dnd.c
	(gimp_display_shell_drop_drawable): center the created layer on
	the viewport.

	* app/tools/gimpmovetool.c (gimp_move_tool_button_release): use
	gimp_display_shell_untransform_viewport() (its code was taken from
	here).

	* tools/pdbgen/pdb/edit.pdb: pass "no viewport" to gimp_edit_paste().

	* app/pdb/edit_cmds.c: regenerated.
2004-01-15 14:36:43 +00:00