ChangeLog 71.2 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
2008-11-02  Martin Nordholts  <martinn@svn.gnome.org>

	* app/core/gimpitem.[ch]: Move the base GeglNode here in
	preparation for moving the GimpLayer gegl:shift op to here as
	well. After all, the offsets are properties of GimpItem and not
	GimpLayer.

	* app/core/gimpdrawable.[ch]: Delegate appropriate stuff to the
	GimpItem base class, like part of the visibility toggling and the
	creation and destruction of the GimpItem node.

	* app/core/gimplayer.c
	* app/core/gimpchannel.c
	* app/core/gimpdrawablestack.c: Changed accordingly, use the new
	function names.

	* app/core/gimpitempropundo.c
	* app/vectors/gimpvectors-warp.c
	* app/vectors/gimpvectorsmodundo.c: Include gegl.h instead of
	glib-object.h

22 23 24
2008-11-01  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimprectangletool.c
Michael Natterer's avatar
Michael Natterer committed
25 26
	(gimp_rectangle_tool_cursor_update): set the MOVE cursor modifier
	when we are in MOVING mode.
27 28 29 30 31 32 33 34

	* app/tools/gimptexttool.[ch]: remove members x1,x2,y1,y2 and use
	the rectangle tool's bounding box for creating the text layer (x2
	and y2) were unused anyway. Add boolean member "moving". Implement
	oper_update() and set the tool to moving mode when ALT is pressed.
	Changed button_press(), button_release() and motion() accordingly.
	Some more cleanup and removal of comented out code.

35 36 37 38 39
2008-11-01  Sven Neumann  <sven@gimp.org>

	* configure.in: include pangoft2 in PANGOCAIRO_CFLAGS and
	PANGOCAIRO_LIBS. We are still using API that is in PangoFT2.

40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
2008-11-01  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptool.[ch]
	* app/tools/tool_manager.[ch]: made all GimpCoords* in the tool
	API const.

	* app/tools/gimpaligntool.c
	* app/tools/gimpblendtool.c
	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpbrushtool.c
	* app/tools/gimpbucketfilltool.c
	* app/tools/gimpcolorpickertool.c
	* app/tools/gimpcolortool.c
	* app/tools/gimpconvolvetool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimpdodgeburntool.c
	* app/tools/gimpeditselectiontool.[ch]
	* app/tools/gimperasertool.c
	* app/tools/gimpfliptool.c
	* app/tools/gimpforegroundselecttool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimpmagnifytool.c
	* app/tools/gimpmeasuretool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimppainttool.c
	* app/tools/gimpperspectiveclonetool.c
	* app/tools/gimprectangleselecttool.c
	* app/tools/gimprectangletool.[ch]
	* app/tools/gimpregionselecttool.c
	* app/tools/gimpselectiontool.[ch]
	* app/tools/gimpsourcetool.c
	* app/tools/gimptexttool.c
	* app/tools/gimptransformtool.c
	* app/tools/gimpvectortool.c: changed accordingly and added const
	to all GimpCoords* in utility functions too.

	* app/tools/gimptexttool.c: don't modify the passed coords. In
	fact, simply removed the code that did because it had no effect.

Martin Nordholts's avatar
Martin Nordholts committed
81 82
2008-11-01  Martin Nordholts  <martinn@svn.gnome.org>

83 84 85 86 87
	* app/gegl/gimpoperationpointlayermode.c
	(gimp_operation_point_layer_mode_process): Replaced the XXX for
	Soft light with a FIXME.

2008-11-01  Martin Nordholts  <martinn@svn.gnome.org>
88

Martin Nordholts's avatar
Martin Nordholts committed
89 90
	* libgimpcolor/gimphsl.c (gimp_hsl_set): Added 'Since: GIMP 2.8'.

91 92 93 94 95 96 97 98 99 100 101 102 103
2008-11-01  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperation*.c: Prefix the GIMP GEGL operations with
	"gimp:" instead of "gimp-" so we follow the GEGL prefix style and
	better serialize to XML.

	* app/tools/gimp*tool.c

	* app/core/gimpdrawable-*.c
	* app/core/gimpdrawable.c
	* app/core/gimpimagemap.c
	* app/core/gimpprojection.c: Changed accordingly.

104 105 106 107 108 109 110
2008-11-01  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c: Introduced helper macros
	fooC to properly un-multiply pre-multiplied data without causing
	NaNs. This fixes some compositing issues involving complete
	transparency.

111 112 113 114 115
2008-11-01  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c: Renamed fooC aliases to
	fooCa since they represent pre-multiplied color data.

116 117 118 119 120 121 122
2008-11-01  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c: Get rid of GRand in
	process() and use a lut instead. A little benchmark showed a
	performance improvement of 78%. Also added defines for the the
	size of the area of which Dissolve repeats it dissolve pattern.

123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
2008-10-31  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c
	(gimp_operation_point_layer_mode_process): Implemented Erase, Anti
	Erase, Color Erase and Replace. These are not normal layer modes
	and handle alpha in their own way. In addition to this, the
	behavior of Replace doesn't map very well to GEGL which uses
	infinite sized "layers".

	Completely works the same:
	 o Erase
	 o Anti Erase
	 o Color Erase

	Works different but similar:
	 o Replace

	* app/paint-funcs/paint-funcs.[ch]: Expose
	paint_funcs_color_erase_helper() so it can be used in the
	GimpOperationPointLayerMode implementation. Once the migration is
	complete this function can be moved entirely to the op and be
	tailored to work on premultiplied data.

146 147 148 149 150 151 152
2008-10-31  Sven Neumann  <sven@gimp.org>

	Bug 558660 – help behavior for locales without manual translation
	
	* app/widgets/gimphelp.c (gimp_help_user_manual_is_installed):
	as a fallback check for the english user manual.

153 154 155 156 157
2008-10-31  Sven Neumann  <sven@gimp.org>

	* libgimp/gimpprocview.c: added basic gtk-doc comment for
	gimp_proc_view_new().

158 159 160 161 162 163
2008-10-31  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptexttool.c (gimp_text_tool_key_press): bail out
	when the passed display is != tool->display. Makes the keyboard
	work in other displays while the text tools is active.

164 165 166 167 168 169 170 171 172
2008-10-31  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpdrawtool.[ch]: add gimp_draw_tool_draw_text_cursor()
	which draws a properly transformed cursor that always has the same
	line width.

	* app/tools/gimptexttool.c (gimp_text_tool_draw): use it instead
	of drawing a cursor here that is broken at anything but 1:1 zoom.

173 174 175 176 177 178
2008-10-31  Michael Natterer  <mitch@gimp.org>

	* app/actions/text-tool-actions.c
	* app/actions/text-tool-commands.c: add missing includes and
	remove unused variable.

Sven Neumann's avatar
Sven Neumann committed
179
2008-10-31  Sven Neumann  <sven@gimp.org>
180 181 182 183 184

	* configure.in: also check for freetype2 when checking for
	pangocairo. Should fix the build on systems where the FT2 include
	path is not included otherwise.

185 186 187 188
2008-10-31  Sven Neumann  <sven@gimp.org>

	* configure.in: lowered minimum required version of Cairo to 1.6.0.

Sven Neumann's avatar
Sven Neumann committed
189 190 191 192 193 194 195 196 197
2008-10-31  Sven Neumann  <sven@gimp.org>

	* INSTALL: 
	* configure.in: removed checks for PangoFT2.

	* app/config/Makefile.am
	* app/text/Makefile.am
	* app/Makefile.am: removed use of PANGOFT2_CFLAGS and PANGOFT2_LIBS.

198 199 200 201 202
2008-10-31  Sven Neumann  <sven@gimp.org>

	* app/text/gimpfont.c
	* app/text/gimpfontlist.c: render font previews using PangoCairo.

203 204 205 206 207 208
2008-10-31  Sven Neumann  <sven@gimp.org>

	* configure.in: bumped minimum required version of Cairo to 1.6.4.

	* app/core/gimpscanconvert.c: use cairo_format_stride_for_width().

209 210 211
2008-10-31  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c
212 213 214
	(gimp_operation_point_layer_mode_process): Formating,
	simplification and fixed operator precedence for the seed (not
	that it matters much).
215

216 217 218 219 220 221 222 223 224 225 226 227 228
2008-10-31  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c
	(gimp_operation_point_layer_mode_process): The GEGL API actually
	allows us to handle the Dissolve layer mode as a point op. The
	GEGL implementation of Dissolve uses a faster implementation for
	deterministic behavior than the legacy Dissolve implementation.
	The end result should be identical (although not on the
	pixel-level).

	Completely works the same:
	 o Dissolve

229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245
2008-10-31  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptexttool.c (gimp_text_tool_key_press): bail out
	instead of crashing if the tool has no display.

	(gimp_text_tool_draw)
	(gimp_text_tool_draw_preedit)
	(gimp_text_tool_draw_selection)
	(gimp_text_tool_xy_to_offset): need to adjust all drawing and
	event coordinates by a possible negative offset between logical
	rectangle and ink rectangle (if the ink rectangle is larger than
	the logical one).

	* app/display/gimpdisplayshell-callbacks.c
	(gimp_display_shell_canvas_tool_events): continue normally if
	tool_manager_key_press_active() returns FALSE.

246 247 248 249 250
2008-10-30  Sven Neumann  <sven@gimp.org>

	* app/text/gimp-fonts.c
	* app/text/gimpfont-utils.c: removed unused includes.

251 252 253 254 255 256 257 258 259 260
2008-10-30  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptexttool.c: remove lots of unused variables,
	apparently my builds were without proper warnings for some time.
	Some formatting cleanup and code reordering.

	* app/actions/text-tool-actions.c
	* menus/text-tool-menu.xml: rename "text-tool-input-methods"
	to "text-tool-input-methods-menu".

Sven Neumann's avatar
Sven Neumann committed
261 262 263 264 265 266 267
2008-10-30  Sven Neumann  <sven@gimp.org>

	* app/text/gimptextlayout.c: fixed order of includes.

	* app/text/gimptext-compat.c: ported to PangoCairo like the rest
	of the text rendering code.

268 269 270 271 272
2008-10-30  Sven Neumann  <sven@gimp.org>

	* app/text/gimptextlayout-render.c: removed an obsolete and
	misleading comment.

273 274 275 276 277 278
2008-10-29  Sven Neumann  <sven@gimp.org>

	* libgimp/gimp.def
	* libgimpbase/gimpbase.def
	* libgimpcolor/gimpcolor.def: updated with new symbols.

279 280 281 282 283 284 285 286 287
2008-10-29  Martin Nordholts  <martinn@svn.gnome.org>

	Bug 558215 – unit and zoom entries in Statusbar not visible

	* app/display/gimpdisplayshell-callbacks.c
	(gimp_display_shell_canvas_size_allocate): Don't try to be clever,
	call gimp_display_shell_scaled() whenever the canvas size changes
	so a newly created display shell gets updated properly.

288 289 290 291 292 293 294 295 296 297
2008-10-29  Sven Neumann  <sven@gimp.org>

	Bug 558451 – Cannot build GIMP using Sun CC on Solaris 2.8

	* app/pdb/gimp-pdb-compat.c
	* app/gegl/gimpoperationtilesink.c
	* app/gegl/gimpoperationtilesource.c
	* app/tools/gimpgegltool.c: applied patches from Eric Lamarque
	fixing the build using Sun CC on Solaris.

298 299 300 301 302 303 304 305 306 307 308 309 310 311
2008-10-29  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c
	(gimp_operation_point_layer_mode_process): Implemented the layer
	modes Hue, Saturation, Color and Value.

	Works the same for 100% opaque layers:
	 o Hue
	 o Saturation
	 o Color
	 o Value

	* libgimpcolor/gimphsl.[ch]: Added gimp_hsl_set().

312 313 314 315 316
2008-10-29  Michael Natterer  <mitch@gimp.org>

	* plug-ins/common/file-pdf.c: a comment was still saying
	"poppler.c".

317 318 319 320 321 322 323 324
2008-10-29  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpselection.[ch]: change member "gboolean stroking"
	into "gint stroking_count". Add push/pop API to increase/decrease
	the counter. Pretend the selection is empty if the counter is > 0.
	Enables correctly rendering vector layers even if there is a
	selection.

325 326 327 328 329 330 331 332
2008-10-29  Sven Neumann  <sven@gimp.org>

	Bug 558420 – projection incorrect with alpha-less layers

	* app/core/gimpprojection-construct.c (gimp_projection_initialize):
	need to initialize the projection if the covering layer is not
	opaque.

333 334 335 336 337 338 339
2008-10-29  Sven Neumann  <sven@gimp.org>

        Bug 557950 – Scaling in Gimp 2.6 is much slower than in Gimp 2.4

        * app/paint-funcs/scale-region.c: don't do multi-pass scaling
	when we are scaling up.

340 341 342 343 344 345 346 347
2008-10-29  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpstrokeeditor.c: move the "Antialias" toggle from
	here...

	* app/widgets/gimpfilleditor.c: ...to here because it makes sense
	for both filling and stroking.

348 349 350 351 352 353
2008-10-29  Sven Neumann  <sven@gimp.org>

	* plug-ins/script-fu/scripts/Makefile.am
	* plug-ins/script-fu/scripts/gimp-online.scm: renamed from
	web-browser.scm.

Martin Nordholts's avatar
Martin Nordholts committed
354 355
2008-10-29  Martin Nordholts  <martinn@svn.gnome.org>

356
	* configure.in: Properly save CFLAGS temporarily.
Martin Nordholts's avatar
Martin Nordholts committed
357

358 359 360 361 362
2008-10-28  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpmagnifytool.c (gimp_magnify_tool_button_release):
	turn nested if()s into a switch(release_type).

Martin Nordholts's avatar
Martin Nordholts committed
363 364 365 366 367 368 369 370
2008-10-28  Martin Nordholts  <martinn@svn.gnome.org>

	Bug 556603 – Zoom region always zooms in center of image

	* app/tools/gimpmagnifytool.c (gimp_magnify_tool_button_release):
	When zooming with a click, use gimp_display_shell_scale() instead
	of local zoom logic.

371 372 373 374 375 376 377 378 379 380
2008-10-28  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpwidgets-utils.[ch]: added "gboolean below" to
	gimp_enum_radio_frame_add() and gimp_enum_radio_box_add() and
	place the widget right of the radio button unless "below" is TRUE.

	* app/dialogs/convert-dialog.c
	* app/dialogs/layer-add-mask-dialog.c
	* app/tools/gimpbucketfilloptions.c
	* app/tools/gimpclonetool.c
Michael Natterer's avatar
Michael Natterer committed
381 382 383 384 385
	* app/tools/gimpperspectiveclonetool.c: pass TRUE so everything
	stays as-is.

	* app/widgets/gimpfilleditor.c: pass FALSE if we are editing the
	context's "foreground" and "pattern" properties.
386

387 388 389 390 391 392 393 394
2008-10-28  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c
	(gimp_operation_point_layer_mode_process): Put the existing blend
	formulas in expanded switch cases again. We need to keep the more
	complicated layer modes like Hue, Value and Saturation in expanded
	switch cases anyway.

Michael Natterer's avatar
Michael Natterer committed
395 396 397 398 399 400 401 402 403
2008-10-27  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptexttool.c: some minor cleanups.

	(gimp_text_tool_draw): draw a cursor of two pixels width which is
	between glyphs so it is visible both at the left and the right
	border or the rectangle. Also make it look a little more
	cursor-like.

404 405 406 407 408 409 410
2008-10-27  Michael Natterer  <mitch@gimp.org>

	* app/actions/text-tool-actions.c
	* app/actions/text-tool-commands.[ch]
	* menus/text-tool-menu.xml: rename action "path-from-text" to
	"text-to-path".

411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432
2008-10-27  Michael Natterer  <mitch@gimp.org>

	* menus/text-tool-menu.xml
	* app/actions/text-tool-actions.c
	* app/actions/text-tool-commands.[ch]: add "Text along Path" to the
	text tool context menu.

	* app/tools/gimptextoptions.[ch]: remove the text along path
	button here.

	* app/tools/gimptexttool.c: changed accordingly.

	* app/tools/gimptexttool.[ch]: move public functions together,
	move all virtual function implementations together and put them in
	order, made the text along path function public, factor out
	gimp_text_tool_xy_to_offset() instead of duplicaing this code
	three times, remove gimp_rectangle_tool_frame_item() because it
	doesn't belong here.

	* app/tools/gimprectangletool.[ch]: add
	gimp_rectangle_tool_frame_item() here. Enselic, please process ;)

Sven Neumann's avatar
Sven Neumann committed
433 434 435 436
2008-10-27  Sven Neumann  <sven@gimp.org>

	* app/actions/text-tool-actions.c: changed menu labels.

437 438 439 440 441
2008-10-27  Sven Neumann  <sven@gimp.org>

	* app/actions/text-editor-commands.c (text_editor_load_response):
	hide the file dialog instead of destroying it.

Sven Neumann's avatar
Sven Neumann committed
442 443 444 445 446 447 448
2008-10-27  Sven Neumann  <sven@gimp.org>

	* app/tools/gimptexttool.c: removed unused includes.

	* app/actions/text-tool-commands.c (text_tool_load_cmd_callback):
	fixed file dialog for opening text files.

449 450 451 452 453 454
2008-10-27  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptexttool.c (gimp_text_tool_key_press): take the
	layout line's x coordinate into account so the stuff works for
	right-aligned or centered text.

455 456 457 458 459 460 461 462 463 464
2008-10-27  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptexttool.c (gimp_text_tool_key_press): argh, need
	to speak in byte offsets not character offsets. Do so and avoid
	getting the buffer's text on each keystroke just to do the
	char/byte conversion. Will use the same method for all the other
	places which do similar things.

	(gimp_text_tool_connect): minor cleanup.

465 466 467 468 469
2008-10-27  Sven Neumann  <sven@gimp.org>

	* app/text/gimptextlayer.c (gimp_text_layer_render_layout):
	iterate over the tiles instead of rendering row-by-row.

470 471 472 473 474
2008-10-27  Sven Neumann  <sven@gimp.org>

	* app/text/gimptextlayout.c (gimp_text_get_pango_context): use the
	Y resolution when creating the fontmap.

Sven Neumann's avatar
Sven Neumann committed
475 476 477 478 479
2008-10-27  Sven Neumann  <sven@gimp.org>

	* app/text/gimptextlayout-render.c (gimp_text_layout_render_trafo):
	minor cleanup.

480 481 482 483
2008-10-27  Sven Neumann  <sven@gimp.org>

	* app/text/gimptext-bitmap.c: cleanup, removed unused includes.

484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506
2008-10-27  Sven Neumann  <sven@gimp.org>

	* libgimpbase/gimpbaseenums.[ch]: added new enum GimpTextHintStyle.

	* libgimp/gimpenums.c.tail
	* tools/pdbgen/enums.pl: regenerated.

	* app/text/gimptext.[ch]: added new property "hint-style". Removed
	"autohint" property and mapped the boolean property "hinting" to
	the new enum property "hint-style".

	* app/text/gimptextlayout-render.c (gimp_text_layout_render_flags):
	use "hint-style".

	* app/tools/gimptextoptions.[ch]: changed tool options accordingly.

	* tools/pdbgen/pdb/text_layer.pdb: deprecated the "hinting" API
	and introduced getters and setters for "hint-style".

	* app/pdb/text-layer-cmds.c
	* app/pdb/internal-procs.c
	* libgimp/gimptextlayer_pdb.[ch]: regenerated.

507 508 509 510 511 512 513 514 515
2008-10-27  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpdrawtool.[ch]: add gimp_draw_tool_set_clip_rect()
	which transforms the passed in GdkRectangle before setting it
	on the canvas.

	* app/tools/gimptexttool.c (gimp_text_tool_draw): use it instead
	of gimp_canvas_set_clip_rect().

516 517 518 519 520 521 522 523 524 525 526
2008-10-27  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptexttool.h: add integer x_pos member to remember
	the x cursor position when moving up and down across shorter
	lines.

	* app/tools/gimptexttool.c (gimp_text_tool_key_press): implement
	moving the cursor up and down. The x_pos probably needs to be
	reset in a few more places but it seems to work pretty nicely
	already.

527 528 529 530
2008-10-26  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptexttool.c: handle Tab, some more cleanup.

Sven Neumann's avatar
Sven Neumann committed
531 532 533 534 535
2008-10-26  Sven Neumann  <sven@gimp.org>

	* app/text/gimptextlayout-render.c (gimp_text_layout_render_flags):
	formatting.

536 537 538 539
2008-10-26  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptexttool.c: more cleanup, mostly formatting.

540 541 542 543 544
2008-10-26  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c: Clamp Grain Extract,
	Grain Merge and Divide.

Michael Natterer's avatar
Michael Natterer committed
545 546 547 548 549 550 551 552 553
2008-10-26  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptexttool.c: some formatting cleanup.

	* app/tools/gimprectangletool.c: add one space.

	* app/actions/text-tool-actions.c: look at GDK_SELECTION_CLIPBOARD,
	not PRIMARY, to set the sensitivity of "Paste".

554 555 556 557 558 559 560 561 562 563 564 565 566 567
2008-10-26  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptexttool.[ch]: some general formatting cleanup.

	(gimp_text_tool_key_press): implement ctrl-moving the cursor by
	words, handle Delete.

	(gimp_text_tool_delete_text): add boolean "backspace" parameter
	and delete forward when it's FALSE.

	* app/actions/text-tool-commands.c: pass an arbitrary TRUE to
	gimp_text_tool_delete_text() (it's not used because when called
	from here, there is always a selection).

568 569 570 571 572
2008-10-26  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c: Remove braces in
	formulas, makes everything look cleaner.

573 574 575 576 577 578 579
2008-10-26  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c: Clamp Addition and
	Subtract so that we acheieve consistent blending results. Also,
	our Addition is fine, it is the formula for 'plus' in the SVG 1.2
	draft that is wrong as far as I can see.

580 581 582 583 584 585
2008-10-26  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c: Continue the quest of
	overviewable and readable blend formulas. The macro now expands to
	entire case-statements.

586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619
2008-10-26  Michael Natterer  <mitch@gimp.org>

	Merge on-canvas GSoC project:

	* configure.in: check for pangocairo.

	* app/Makefile.am
	* app/text/Makefile.am: add its CFLAGS and LIBS.

	* app/text/gimptext-bitmap.[ch]
	* app/text/gimptext-private.h
	* app/text/gimptext-vectors.[ch]
	* app/text/gimptextlayer.c
	* app/text/gimptextlayout-render.c
	* app/text/gimptextlayout.c: port to pangocairo.

	* menus/Makefile.am
	* menus/text-tool-menu.xml
	* app/menus/menus.c
	* app/actions/Makefile.am
	* app/actions/actions.c
	* app/actions/text-tool-actions.[ch]
	* app/actions/text-tool-commands.[ch]: add a context menu for the
	text tool similar to GtkEntry's context menu.

	* app/tools/gimprectangletool.[ch]: add "narrow-mode" property.

	* app/tools/gimptextoptions.[ch]
	* app/widgets/gimptexteditor.[ch]: take a text buffer for the
	standalone text editor window instead of creating one internally.

	* app/tools/gimptexttool.[ch]: all the new wonderful on-canvas
	text editing logic. Wheee!

Sven Neumann's avatar
Sven Neumann committed
620 621
2008-10-26  Sven Neumann  <sven@gimp.org>

Sven Neumann's avatar
Sven Neumann committed
622
	* app/tools/gimptool.c (gimp_tool_get_popup)
Sven Neumann's avatar
Sven Neumann committed
623 624 625
	* app/tools/tool_manager.c (tool_manager_get_popup_active): added
	missing return value.

626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645
2008-10-26  Michael Natterer  <mitch@gimp.org>

	Add some infrastructure for the on-canvas text editing GSoC
	project:

	* app/tools/gimptoolcontrol.[ch]: add boolean wants_all_key_events
	member and API to set and get it.

	* app/tools/gimptool.[ch]: add GimpTool::get_popup() which returns
	the tool's context menu if it has one, or NULL otherwise.

	* app/tools/tool_manager.[ch]: add tool_manager_get_popup_active()
	wrapper.

	* app/display/gimpdisplayshell-callbacks.c: check if the tool has
	a popup menu and show it instead of the usual right-click menu.

	Also call the tool's key_press() unconditionally if it wants all
	key events, but this code needs more thinking.

646 647 648 649 650
2008-10-26  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c: Increase readability by
	introducing short aliases.

651 652 653 654 655 656
2008-10-26  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c: For blend modes with
	conditions, fix so that the conditions are per color
	channel. Acheived by introducing a nice little preprocessor macro.

657 658 659 660 661 662 663 664 665
2008-10-26  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c: Enable the [0..1]
	clamping of the output for Dodge and Burn. Without the clamping
	one gets inconsistent results when blending together identical
	layers but with different opacities. Maybe we should make the
	clamping configurable and introduce a HDR compositing mode or
	something?

666 667 668 669 670 671 672 673 674
2008-10-26  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c: Implemented Grain
	Extract and Grain Merge. Also corrected the formula for Divide.

	Works the same for 100% opaque layers:
	 o Grain Extract
	 o Grain Merge

675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716
2008-10-25  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c: Implement a bunch of
	layer modes. Use the exact SVG 1.2 formula for layer modes that
	have a counterpart in SVG 1.2. Don't clamp the result to [0..1]
	for Dodge and Burn though as we don't need to. Maybe we *should*
	clamp from a compositing point of view, I'm not sure. Also
	reformat the code a bit for readability.

	Keep in mind that we now treat the opacity of all layers the same
	indepentant of the layer mode. That is why most of the new
	implementations doesn't work the same as the legacy ones when
	transparency is involved, only when the layers are completely
	opaque. Another important property for all layer modes implemented
	below is that compositing onto complete transparency gives the
	same result as if the layer would have been in Normal blending
	mode.

	The status of the new layer mode implementations compared to the
	legacy implementations is as follows:

	Completely works the same:
	 o Behind

	Works the same for 100% opaque layers:
	 o Multiply
	 o Screen
	 o Difference
	 o Darken
	 o Lighten
	 o Dodge
	 o Burn
	 o Hard Light
	 o Subtract
	 o Divide

	Works different but similar:
	 o Overlay

	Work in progress:
	 o Soft Light

717 718 719 720 721 722 723 724
2008-10-25  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationpointlayermode.c: Completed the rename
	with gimp:layer-mode -> gimp:point-layer-mode and also did some
	formating.

	* app/core/gimplayer.c: Changed accordingly.

725 726 727 728 729 730 731
2008-10-25  Martin Nordholts  <martinn@svn.gnome.org>

	* plug-ins/file-psd/psd-save.c
	* plug-ins/file-psd/psd-util.c: Add support for reading/writing
	PSDs with the Linear Dodge layer mode which is the same as GIMPs
	Addition layer mode.

732 733 734 735 736 737 738 739 740 741 742
2008-10-25  Michael Natterer  <mitch@gimp.org>

	Bug 557870 – "Qmask" message popping up here and there

	* app/display/gimpdisplayshell-title.c
	(gimp_display_shell_format_title): use
	gimp_viewable_get_description() instead of gimp_object_get_name()
	for displaying the active drawable's name so the quick mask and
	the floating selection have the same names as in the
	layers/channels dialogs.

Martin Nordholts's avatar
Martin Nordholts committed
743 744 745 746 747 748 749 750 751 752 753 754
2008-10-25  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationlayermode.[ch]: Rename to

	* app/gegl/gimpoperationpointlayermode.[ch]: so that we can later
	create a common GimpOperationLayerMode class/interface for
	non-point layer modes like GimpOperationDissolveLayerMode.

	* app/gegl/Makefile.am
	* app/gegl/gimp-gegl.c
	* app/gegl/gegl-types.h: Adjust accordingly.

755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777
2008-10-25  Martin Nordholts  <martinn@svn.gnome.org>

	Instead of having one GEGL operation per layer mode, make
	GimpOperationLayerMode instantiable and add a GimpLayerModeEffects
	property to it that we check in ::process() to blend pixels
	together.

	* app/gegl/gimpoperationlayermode.[ch]: Do the change described
	above. Currently only Normal and Addition are implemented. Normal
	so that we don't need a special case for the gegl:normal op. Also,
	the Dissolve layer mode is not a point op and needs to be
	implemented elsewhere.

	* app/gegl/gimpoperation*mode.c: Removed.

	* app/gegl/gimp-gegl-utils.[ch]: Removed
	gimp_layer_mode_to_gegl_operation().

	* app/core/gimplayer.c

	* app/gegl/Makefile.am
	* app/gegl/gimp-gegl.c: Adapt.

778 779 780 781 782 783 784 785 786 787 788 789
2008-10-25  Michael Natterer  <mitch@gimp.org>

	Merge a modified and enhanced patch from the vector layer branch:

	* app/core/gimpdrawable-stroke.[ch]: add new public API
	gimp_drawable_fill_boundary() and gimp_drawable_fill_vectors().

	Split the internal code up so that there are functions which turn
	the BoundSegs and GimpVectors into a GimpScanConvert and changed
	gimp_drawable_stroke_scan_convert() so it can either fill the
	shape or stroke it.

790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816
2008-10-25  Michael Natterer  <mitch@gimp.org>

	More merging from SOC 2006's vector layer branch:

	* app/core/gimpitem.[ch]: add "gboolean push_undo" to
	GimpItem::stroke().

	* app/core/gimpdrawable-stroke.[ch]
	* app/paint/gimppaintcore-stroke.[ch]
	* app/paint/gimppaintcore.[ch] (gimp_paint_core_finish): add
	"push_undo" parameters here too.

	* app/actions/select-commands.c
	* app/actions/vectors-commands.c
	* app/core/gimpchannel.c
	* app/core/gimpselection.c
	* app/dialogs/stroke-dialog.c
	* app/tools/gimppainttool.c
	* app/vectors/gimpvectors.c
	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/paint_tools.pdb
	* tools/pdbgen/pdb/paths.pdb: pass TRUE all over the place.

	* app/pdb/edit-cmds.c
	* app/pdb/paint-tools-cmds.c
	* app/pdb/paths-cmds.c: regenerated.

817 818 819 820 821 822 823 824 825 826 827
2008-10-25  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationlayermode.c: Make layer modes work on
	premultiplied data. This makes compositing 40% faster on my test
	image with 10 interlaced Normal and Addition mode layers.

	* app/gegl/gimpoperationadditionmode.c: Switch to the
	premultiplied algorithm and remove the experimental ones. The new
	Addition mode has two important differences over the legacy
	Addition mode:

Martin Nordholts's avatar
Martin Nordholts committed
828 829 830
	 o Addition mode now really is commutative as the GIMP
	   documentation says (this isn't the case for the legacy Addition
	   mode implementation).
831

Martin Nordholts's avatar
Martin Nordholts committed
832 833 834
	 o Layers in Addition mode are just as opaque as Normal
	   layers. That is, their effect on the composite alpha channel is
	   the same. For discussion, refer to bug #387449.
835

Michael Natterer's avatar
Michael Natterer committed
836 837 838 839
2008-10-25  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimppaintoptions.h: formatting.

840 841 842 843 844 845
2008-10-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpcontext.c (gimp_context_parent_notify): bail out if
	the notification is not about one of our own properties
	(but from a subclass).

846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864
2008-10-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpstrokeoptions.[ch]: add "gboolean use_context_color"
	parameter to gimp_stroke_options_new() and set the passed context
	as parent of the new options only if it's TRUE. Also fixed the
	GimpConfig::duplicate() implementation to really duplicate the
	object and not just return an object containing default values.

	* app/core/gimpfilloptions.[ch]: add gimp_fill_options_new().

	* app/actions/select-commands.c
	* app/dialogs/stroke-dialog.c
	* app/actions/vectors-commands.c
	* tools/pdbgen/pdb/edit.pdb
	* tools/pdbgen/pdb/paths.pdb: pass TRUE to gimp_stroke_options_new().

	* app/pdb/edit-cmds.c
	* app/pdb/paths-cmds.c: regenerated.

865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883
2008-10-25  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpfilloptions.[ch]: add non-serializable properties
	pattern-view-type and pattern-view-size which are used only by the
	new UI below.

	* app/widgets/gimpfilleditor.[ch]: added boolean edit-context
	property. If TRUE, add widgets to edit the context's foreground and
	pattern. Add "edit_context" parameter to gimp_fill_editor_new().

	* app/widgets/gimpstrokeeditor.[ch]: add the same parameter here.

	* app/widgets/gimpwidgets-utils.[ch]: add gimp_enum_radio_box_add()
	which does the same as the existing gimp_enum_radio_frame_add().

	* app/dialogs/stroke-dialog.c: pass FALSE for "edit_context"
	because this dialog takes its foreground and pattern from the user
	context and doesn't need it's own GUI for them.

884 885 886 887 888 889 890 891 892 893
2008-10-24  Michael Natterer  <mitch@gimp.org>

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpfilleditor.[ch]: new widget factored out of
	GimpStrokeEditor.

	* app/widgets/gimpstrokeeditor.[ch]: derive from GimpFillEditor
	and remove UI for the properties of GimpFillOptions.

894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918
2008-10-24  Michael Natterer  <mitch@gimp.org>

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimpstrokedesc.[ch]: remove this mis-engineered
	abstraction...

	* app/core/gimpstrokeoptions.[ch]: ...and add its properties and
	API here.

	* app/core/gimpitem.[ch]: GimpItem::stroke() take a
	GimpStrokeOptions instead of a GimpStrokeDesc.

	* app/core/gimpchannel.c
	* app/core/gimpselection.c
	* app/vectors/gimpvectors.c
	* app/actions/select-commands.c
	* app/actions/vectors-commands.c
	* app/dialogs/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.

919 920 921 922 923 924 925
2008-10-24  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpdialogfactory.c (gimp_dialog_factories_toggle):
	to be on the safe side, always show hidden dialogs when the Tab
	key is used. It should not be possible to get a Tab key-press
	while all displays are iconified, but you never know ...

926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941
2008-10-24  Sven Neumann  <sven@gimp.org>

	Bug 556896 – Dialogs don't get minimized with single image window

	* app/widgets/gimpdialogfactory.[ch]: renamed the new methods to
	gimp_dialog_factories_{show|hide}_with_display().
	Remember if the dialogs were hidden using
	gimp_dialog_factories_hide_with_display() or using
	gimp_dialog_factories_toggle() and keep this into account when
	making them visible again. This ensures that dialogs that were
	hidden using the Tab key won't be shown when the image window is
	uniconified.

	* app/display/gimpdisplayshell.c
	(gimp_display_shell_window_state_event): changed accordingly.

942 943 944 945 946 947 948
2008-10-24  Michael Natterer  <mitch@gimp.org>

	Another merge from the vector layer branch:

	* app/core/gimpstrokedesc.c (gimp_stroke_desc_new): make sure
	each stroke desc always has GimpPaintInfo.

949 950 951 952 953 954 955 956
2008-10-24  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationadditionmode.c: For alpha compositing
	consistency, all layers should affect alpha in the same way
	independent of layer mode. Replace the compositing algorithm with
	a version without the flaws discovered so far in the previous
	ones. Don't use it yet though as it requires premultiplied data.

957 958 959 960 961 962
2008-10-24  Sven Neumann  <sven@gimp.org>

	* app/paint-funcs/scale-region.c (scale): use the inverse of the
	scale factor so that we can multiply instead of dividing in the
	loops.

963 964 965 966 967 968 969 970
2008-10-23  Michael Natterer  <mitch@gimp.org>

	* app/core/core-enums.[ch]: rename GimpStrokeStyle to GimpFillStyle.

	* app/core/gimpfilloptions.[ch]
	* app/core/gimpdrawable-stroke.c
	(gimp_drawable_stroke_scan_convert): changed accordingly.

971 972 973 974 975 976 977 978 979 980 981 982 983 984 985
2008-10-23  Michael Natterer  <mitch@gimp.org>

	Merge a part of SOC 2006's vector layer branch:

	* app/core/Makefile.am
	* app/core/core-types.h
	* app/core/gimpfilloptions.[ch]: new GimpContext subclass factored
	out of GimpStrokeOptions. Has "style" and "antialias" properties.

	* app/core/gimpstrokeoptions.[ch]: derive from GimpFillOptions
	and remove said properties.

	* app/core/gimpdrawable-stroke.c
	(gimp_drawable_stroke_scan_convert): changed accordingly.

986 987 988 989 990 991 992
2008-10-23  Michael Natterer  <mitch@gimp.org>

	* app/plug-in/gimppluginprocframe.c
	(gimp_plug_in_proc_frame_dispose): set proc_frame->procedure to
	NULL *after* calling gimp_plug_in_cleanup(). Fixes the crash on
	windows in bug #557061 (but not the bug).

993 994 995 996 997 998 999 1000 1001
2008-10-23  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell.h: don't #include
	"libgimpwidgets/gimpwidgets.h".

	* app/display/gimpdisplayshell-draw.c
	* app/display/gimpdisplayshell-scale.c
	* app/tools/gimpeditselectiontool.c: include it here.

1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017
2008-10-23  Sven Neumann  <sven@gimp.org>

	Bug 556896 – Dialogs don't get minimized with single image window

	* app/display/gimpdisplay-foreach.[ch]: added utility function to
	get the number of visible (not withdrawn or iconified) displays.

	* app/widgets/gimpdialogfactory.[ch]: added functions to hide and
	show the dock windows. Changed gimp_dialog_factories_toggle() to
	use the new functions.

	* app/display/gimpdisplayshell.c
	(gimp_display_shell_window_state_event): hide the docks if the
	last display is iconified. Unhide them if a display is
	uniconified. Probably needs more work ...

1018 1019 1020 1021 1022 1023 1024 1025
2008-10-23  Sven Neumann  <sven@gimp.org>

	* configure.in: removed check for Carbon and added a test for the
	target OS being Darwin instead.

	* app/config/gimpguiconfig.c: use PLATFORM_OSX instead of
	HAVE_CARBON to determine the default "web-browser" command.

1026 1027 1028 1029 1030 1031
2008-10-22  Sven Neumann  <sven@gimp.org>

	* plug-ins/print/print-preview.c (print_preview_leave_notify_event):
	check the crossing mode and don't unset the "inside" flag when the
	event is caused by a pointer grab/ungrab.

1032 1033 1034 1035 1036 1037 1038 1039
2008-10-22  Martin Nordholts  <martinn@svn.gnome.org>

	Bug 556804 – Zoom drop down doesn't update

	* app/display/gimpdisplayshell-scale.c
	* app/display/gimpdisplayshell-callbacks.c: Fix calls to
	gimp_display_shell_scaled() when Resize window on zoom is enabled.

1040 1041 1042 1043 1044 1045 1046 1047 1048 1049
2008-10-22  Sven Neumann  <sven@gimp.org>

	Bug 524615 – Print not to scale

	* plug-ins/print/print.c: set the unit for dimensions on the Cairo
	context used for printing to GTK_UNIT_PIXELS.

	* plug-ins/print/print-draw-page.c (print_draw_page): changed the
	Cairo scale factors accordingly. Seems to fix printing on Windows.

1050 1051 1052 1053 1054 1055
2008-10-22  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpprogressbox.c: set box->progress to NULL in
	destroy() and check for progress being NULL in various places so
	we don't crash on API calls after the widget is destroyed.

1056 1057 1058 1059 1060 1061 1062 1063 1064
2008-10-22  Sven Neumann  <sven@gimp.org>

	Bug 555246 – gimp crashes when a file is opened while a preview is
	generating

	* app/widgets/gimpthumbbox.c: set box->progress to NULL in
	destroy() and check for progress being NULL in various places so
	we don't crash on API calls after the widget is destroyed.

1065 1066 1067 1068 1069 1070 1071 1072
2008-10-22  Sven Neumann  <sven@gimp.org>

	Bug 556741 – Alpha layer automatically added (in psd format) but
	not desired

	* plug-ins/file-psd/psd-save.c: applied patch from Dennis Ranke
	that flattens the projection for indexed images.

1073 1074 1075 1076 1077
2008-10-22  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimagefile.c
	* app/plug-in/gimpplugin-progress.c: formatting.

1078 1079
2008-10-21  Michael Natterer  <mitch@gimp.org>

1080 1081 1082
	Bug 555246 – gimp crashes when a file is opened while a preview is
	generating

1083 1084 1085 1086
	* app/widgets/gimpfiledialog.c: set dialog->progress to NULL in
	destroy() and check for progress being NULL in various places so
	we don't crash on API calls after the widget is destroyed.

Sven Neumann's avatar
Sven Neumann committed
1087
2008-10-21  Sven Neumann  <sven@gimp.org>
1088 1089

	* app/tools/gimpgegltool.c (gimp_param_spec_duplicate):
Sven Neumann's avatar
Sven Neumann committed
1090 1091
	GEGL_IS_PARAM_SPEC_PATH() became GEGL_IS_PARAM_SPEC_FILE_PATH()
	in GEGL 0.0.21.
1092

1093 1094 1095 1096 1097 1098
2008-10-21  Sven Neumann  <sven@gimp.org>

	* app/tools/gimpgegltool.c (gimp_gegl_tool_dialog): for the
	combo-box, strip known prefixes from the GEGL operation names and
	use icons instead.

1099 1100 1101 1102 1103 1104 1105
2008-10-21  Sven Neumann  <sven@gimp.org>

	* app/actions/file-commands.c (file_open_recent_cmd_callback): ref
	the GimpDisplay and GimpImageFile objects while holding a
	reference to them. Fixes a potential crash if GIMP is closed while
	the image is being loaded.

1106 1107 1108 1109 1110 1111 1112 1113
2008-10-20  Martin Nordholts  <martinn@svn.gnome.org>

	* menus/image-menu.xml.in
	* app/actions/debug-actions.c
	* app/actions/debug-commands.c: Create dump and non-dump
	groups. Also added a tooltip to the Benchmark Projection action
	and removed report of number of layers.

1114 1115 1116 1117 1118 1119
2008-10-20  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimperrorconsole.c (gimp_error_console_init): don't
	make the font size even smaller. We already use a smaller font in
	the dock windows.

1120 1121 1122 1123 1124 1125 1126
2008-10-20  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpgradienteditor.c (view_events) (control_events):
	use pointer coordinates from the passed event instead of calling
	gtk_widget_get_pointer().

2008-10-20  Sven Neumann  <sven@gimp.org>
1127 1128 1129 1130 1131

	* plug-ins/common/bump-map.c (dialog_preview_events): use pointer
	coordinates from the passed event instead of calling
	gtk_widget_get_pointer().

1132
2008-10-20  Sven Neumann  <sven@gimp.org>
1133 1134 1135 1136 1137

	* plug-ins/common/iwarp.c: set the OK and Reset button insensitive
	until the user has defined a deformation to apply. Cleaned up
	event handling.

David Odin's avatar
David Odin committed
1138 1139 1140 1141
2008-10-20  David Odin  <dindinx@gimp.org>

	* plug-ins/common/*.c: untabified

1142 1143 1144 1145 1146 1147 1148
2008-10-19  Michael Natterer  <mitch@gimp.org>

	* app/actions/debug-actions.c
	* app/actions/debug-commands.[ch]
	* menus/image-menu.xml.in: rename
	debug-dump-projection-benchmarking to debug-benchmark-projection.

Sven Neumann's avatar
Sven Neumann committed
1149 1150 1151 1152
2008-10-19  Sven Neumann  <sven@gimp.org>

	* plug-ins/metadata/xmp-parse.c: use GSlice to allocate structs.

1153 1154 1155 1156
2008-10-19  Sven Neumann  <sven@gimp.org>

	* plug-ins/metadata/xmp-encode.c
	* plug-ins/metadata/xmp-parse.c
Sven Neumann's avatar
Sven Neumann committed
1157

1158 1159 1160 1161
	* plug-ins/metadata/metadata.c
	* plug-ins/metadata/xmpdump.c: removal of unused includes and
	other minor cleanups.

1162 1163 1164 1165 1166
2008-10-19  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationadditionmode.c: Remove local channel
	offset defines.

1167 1168 1169 1170 1171 1172
2008-10-19  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperation*mode.c: Refer to the input as 'in'
	instead of 'src', the layer as 'layer' instead of 'aux', and the
	result as 'out' instead of 'dest'.

1173 1174 1175
2008-10-19  Martin Nordholts  <martinn@svn.gnome.org>

	* app/base/base-types.h: Rename the convenient channel offset
Martin Nordholts's avatar
Martin Nordholts committed
1176
	defines from CHANNEL_PIX to CHANNEL as this increases readability.
1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211

	* app/base/color-balance.c
	* app/base/colorize.c
	* app/base/desaturate.c
	* app/base/hue-saturation.c
	* app/base/siox.c
	* app/base/threshold.c

	* app/core/gimp-edit.c
	* app/core/gimp-transform-region.c
	* app/core/gimpchannel.c
	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpdrawable-convert.c
	* app/core/gimpdrawable-stroke.c
	* app/core/gimpdrawable.c
	* app/core/gimpimage-convert.c
	* app/core/gimpimage.c
	* app/core/gimppalette-import.c
	* app/core/gimppickable.c

	* app/gegl/gimpoperation*mode.c
	* app/gegl/gimpoperationcolorbalance.c
	* app/gegl/gimpoperationcolorize.c
	* app/gegl/gimpoperationhuesaturation.c
	* app/gegl/gimpoperationlevels.c
	* app/gegl/gimpoperationposterize.c
	* app/gegl/gimpoperationthreshold.c

	* app/paint-funcs/subsample-region.c

	* app/paint/gimpclone.c
	* app/paint/gimppaintbrush.c

	* app/widgets/gimpviewrenderer.c: Adapt.

1212 1213 1214 1215 1216 1217 1218 1219 1220
2008-10-19  Sven Neumann  <sven@gimp.org>

	Bug 493778 – metadata plug-in crashes on some images

	* plug-ins/metadata/xmp-encode.c (gen_property): introduced a
	utility function to create XML elements. Deal gracefully with NULL
	and empty values. Does not fix the crash, but fixes a warning that
	has been reported in the same bug report.

1221 1222 1223 1224 1225
2008-10-19  Martin Nordholts  <martinn@svn.gnome.org>

	* app/base/base-types.h: There is nothing magic or ugly about the
	convenient defines, remove comments saying so.

1226 1227 1228 1229 1230 1231 1232 1233 1234 1235
2008-10-19  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationadditionmode.c: Refer to the input as 'in'
	instead of 'src', the layer as 'layer' instead of 'aux', and the
	result as 'out' instead of 'dest'. The old terminology clashes
	with at least the SVG 1.2 compositing terminology [1] and there is
	no reason for creating confusion.

	[1] http://www.w3.org/TR/2004/WD-SVG12-20041027/rendering.html

1236 1237 1238 1239 1240 1241
2008-10-19  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationadditionmode.c: Use local variants of
	channel offset defines, namely RED instead of RED_PIX etc, to
	increase readability.

1242 1243 1244 1245 1246 1247 1248
2008-10-19  Martin Nordholts  <martinn@svn.gnome.org>

	* app/actions/debug-commands.c
	(debug_dump_projection_benchmarking_cmd_callback): In addition to
	priting how long it takes to validate the projection, also print
	the number of layers in the image.

1249 1250 1251 1252
2008-10-19  Martin Nordholts  <martinn@svn.gnome.org>

	* menus/image-menu.xml.in
	* app/actions/debug-actions.c
1253
	* app/actions/debug-commands.[ch]: Added a 'Dump Projection
1254 1255 1256
	Benchmarking' item to the Debug Menu so that we can test how
	different GEGL graph setups affect performance.

1257 1258 1259 1260 1261 1262 1263 1264 1265
2008-10-19  Michael Natterer  <mitch@gimp.org>

	* configure.in: add -Wmissing-format-attribute to CFLAGS.

	* plug-ins/imagemap/imap_main.c
	* plug-ins/imagemap/imap_object.h
	* plug-ins/imagemap/imap_source.c
	* plug-ins/imagemap/imap_statusbar.h: add G_GNUC_PRINTF().

1266 1267 1268 1269
2008-10-18  Michael Natterer  <mitch@gimp.org>

	* configure.in: add -Wstrict-prototypes to CFLAGS.

1270 1271 1272
2008-10-18  Sven Neumann  <sven@gimp.org>

	Applied patch from Alexia Death as attached to bug #471344:
Martin Nordholts's avatar
Martin Nordholts committed
1273

1274 1275 1276 1277 1278 1279 1280 1281
	* app/core/Makefile.am
	* app/core/gimpcoords-interpolate.[ch]: new files with
	interpolation code taken from ...

	* app/vectors/gimpbezierstroke.c: ... here.

	* app/Makefile.am (AM_LDFLAGS): make it link.

1282 1283 1284 1285 1286 1287
2008-10-17  Sven Neumann  <sven@gimp.org>

	* plug-ins/file-psd/psd-save.c (xfwrite): fixed handling of empty
	strings. Don't quit silently, write an error message to stderr at
	least.

Sven Neumann's avatar
Sven Neumann committed
1288
2008-10-17  Sven Neumann  <sven@gimp.org>
1289 1290 1291 1292 1293

	* app/core/gimp.[ch]: added signal Gimp::image-opened to announce
	that an image has been loaded and a display was created for it.

	* app/file/file-open.c (file_open_with_proc_and_display): call
Sven Neumann's avatar
Sven Neumann committed
1294
	gimp_image_opened() to emit the new signal.
1295 1296 1297 1298 1299 1300 1301

	* app/gui/dbus-service.xml
	* app/gui/gimpdbusservice.[ch]: propagate the 'opened' signal to
	listeners of the "org.gimp.GIMP.UI" DBus service.

	* app/gui/gui-unique.c: formatting.

1302 1303
2008-10-16  Sven Neumann  <sven@gimp.org>

Sven Neumann's avatar
Sven Neumann committed
1304 1305 1306 1307 1308 1309 1310 1311 1312
	* app/widgets/gimpviewrenderervectors.c
	(gimp_view_renderer_vectors_draw): just some cleanup.

2008-10-16  Sven Neumann  <sven@gimp.org>

	Bug 556248 – Scaling gives 'jagged' edges

	* app/paint-funcs/scale-region.c (scale): calculate pixel
	contributions based on pixel centers, not on pixel origins.
1313

1314
2008-10-15  Jakub Steiner <jimmac@gimp.org>
1315

1316 1317
	* themes/Default/images/stock-gegl.svg:
	* themes/Default/images/stock-gegl-22.svg:
1318 1319
	* themes/Default/images/stock-gegl-22.png: remove white from the
	shadow to render correctly on dark backgrounds.
1320

1321 1322 1323 1324 1325 1326 1327
2008-10-15  Michael Natterer  <mitch@gimp.org>

	* tools/pdbgen/pdb.pl: reindent the list of PDB types and remove
	the unused and deprecated types "boundary" and "region". Also
	remove "status" because it is unused (and unneeded and
	unimplemented).

1328 1329 1330 1331 1332
2008-10-15  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpgegltool.c (gimp_gegl_tool_operation_blacklisted):
	add the gegl: prefix here too.

1333 1334 1335
	(gimp_gegl_tool_get_config): canonicalize the type name of the
	created config class or we crash.

1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353
2008-10-14  Michael Natterer  <mitch@gimp.org>

	* configure.in
	* app/sanity.c: require GEGL >= 0.0.21.

	* app/core/gimpchannel.c
	* app/core/gimpdrawable-brightness-contrast.c
	* app/core/gimpdrawable-invert.c
	* app/core/gimpimage.c
	* app/core/gimpimagemap.c
	* app/core/gimplayer.c
	* app/gegl/gimp-gegl-utils.c
	* app/tools/gimpbrightnesscontrasttool.c: GEGL operation names
	are now "gegl:"-prefixed.

	* app/core/gimpimagemap.c: set the node's "dont-cache" property
	unconditionally.

1354 1355 1356 1357 1358
2008-10-14  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpdialogfactory.c (gimp_dialog_factory_add_dialog):
	let new docks appear at the pointer position.

1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371
2008-10-14  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable.[ch]: add a default implementation of
	GimpDrawable::get_node() which contains a layer mode node.
	Implement GimpItem::visibility_changed() and turn the node into a
	nop when the drawable is invisible. Added public function
	gimp_drawable_get_mode_node() so subclasses can plug stuff
	into its "aux" pad.

	* app/core/gimplayer.[ch]
	* app/core/gimpchannel.[ch]: changed accordingly (remove
	duplicated member and code that is now in GimpDrawable).

Michael Natterer's avatar
Michael Natterer committed
1372
2008-10-14  Michael Natterer  <mitch@gimp.org>
1373 1374 1375 1376 1377 1378 1379 1380 1381 1382

	* app/gegl/gimp-gegl-utils.[ch]: remove function
	gimp_bpp_to_babl_format_linear() and add "gboolean linear"
	parameter to gimp_bpp_to_babl_format().

	* app/gegl/gimpoperationtilesink.c (process)
	* app/gegl/gimpoperationtilesource.c (prepare): simply pass
	self->linear to above changed function instead of selecting
	between the two old functions.

Sven Neumann's avatar
Sven Neumann committed
1383 1384 1385 1386
2008-10-14  Sven Neumann  <sven@gimp.org>

	* app/signals.c (gimp_init_signal_handlers): comments.

1387 1388 1389
2008-10-13  Sven Neumann  <sven@gimp.org>

	Bug 556182 – Could you please explain a few strings [I18N]
Martin Nordholts's avatar
Martin Nordholts committed
1390

1391 1392
	* plug-ins/pygimp/plug-ins/py-slice.py: added translator comments.

1393 1394 1395 1396 1397 1398 1399
2008-10-13  Sven Neumann  <sven@gimp.org>

	* app/Makefile.am
	* app/signals.[ch]: new files with code split out of main.c.

	* app/main.c: changed accordingly.

1400 1401 1402 1403 1404 1405
2008-10-13  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationadditionmode.c
	(gimp_operation_addition_mode_process): Update with a new version
	that is the best known so far (maybe it's even correct?).

1406 1407 1408 1409 1410 1411
2008-10-13  Sven Neumann  <sven@gimp.org>

	Bug 547967 – Improve app/paint-funcs/ maintainability

	Applied patch from Luidnel Maignan that splits the legacy code for
	layer modes into new files.
Martin Nordholts's avatar
Martin Nordholts committed
1412

1413 1414 1415 1416 1417 1418 1419 1420
	* app/paint-funcs/Makefile.am
	* app/paint-funcs/layer-modes.[ch]
	* app/paint-funcs/paint-funcs-utils.h: new files with code taken
	from ...

	* app/paint-funcs/paint-funcs-generic.h
	* app/paint-funcs/paint-funcs.c: ... these two files.

1421 1422 1423 1424 1425 1426
2008-10-13  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimp-gegl-utils.c (gimp_layer_mode_to_gegl_operation):
	remove warning because the missing layer modes are now
	"implemented", ha ha.

Michael Natterer's avatar
Michael Natterer committed
1427 1428 1429 1430 1431 1432 1433
2008-10-12  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimpoperationpointcomposer.[ch]: renamed this class...

	* app/gegl/gimpoperationlayermode.[ch]: ...to this and add
	an own process() virtual function so we are free to hack even
	more badly in order to support legacy layer modes and proper
Sven Neumann's avatar
Sven Neumann committed
1434
	ones which do meaningful things to alpha. Simply redirect
Michael Natterer's avatar
Michael Natterer committed
1435 1436 1437 1438 1439 1440 1441 1442 1443
	GeglOperationPointComposer's compose() calls to our own vfunc
	for now.

	* app/gegl/gegl-types.h
	* app/gegl/Makefile.am: changed accordingly.

	* app/gegl/gimpoperation*mode.[ch]: changed parent class and
	implemented process() method accordingly.

1444 1445 1446 1447 1448 1449 1450 1451 1452
2008-10-12  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimpoperationadditionmode.c: commit some #if 0'ed
	experimental code.

	* app/actions/view-commands.c (view_use_gegl_cmd_callback): use
	gimp_image_update(), simply exposing the shell doesn't reconstruct
	the projection.

1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465
2008-10-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpprojection.h: add a "use_gegl" boolean member.

	* app/core/gimpprojection-construct.c (gimp_projection_construct):
	use the boolean instead of hardcoding FALSE.

	* app/actions/view-actions.c
	* app/actions/view-commands.[ch]: add a "Use GEGL" action and
	callback which sets the boolean and exposes the display.

	* menus/image-menu.xml.in: add it to the "View" menu.

Martin Nordholts's avatar
Martin Nordholts committed
1466 1467 1468 1469 1470
2008-10-11  Martin Nordholts  <martinn@svn.gnome.org>

	* app/gegl/gimpoperationadditionmode.c
	(gimp_operation_addition_mode_process): Implement this one.

1471 1472 1473 1474 1475
2008-10-11  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimp-gegl-utils.c (gimp_layer_mode_to_gegl_operation):
	it's gimp-screen-node not gimp-screen_mode.

1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493
2008-10-11  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimpoperationpointcomposer.[ch]: add an empty abstract
	GeglOperationPointComposer subclass which can be used to hook in
	common debug or test or whatever code for below layer modes.

	* app/gegl/gimpoperation*mode.[ch]: add empty stubs of layer mode
	operations which do nothing but copying input to output.

	* app/gegl/Makefile.am
	* app/gegl/gegl-types.h: add them here and reordered things a bit.

	* app/gegl/gimp-gegl.c (gimp_gegl_init): register the new
	operations.

	* app/gegl/gimp-gegl-utils.c (gimp_layer_mode_to_gegl_operation):
	return the new operations.

Michael Natterer's avatar
Michael Natterer committed
1494 1495 1496 1497
2008-10-11  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimpoperationpointfilter.c: make it abstract.

1498 1499 1500 1501 1502 1503
2008-10-11  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimp-gegl-utils.c (gimp_layer_mode_to_gegl_operation):
	don't return non-existing layer modes (in fact, return "normal"
	for all modes).

1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517
2008-10-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpchannel.[ch]: add a projection node and
	implement GimpDrawable::get_node(). Reconfigure the node in
	visibility_changed(), set_color(), set_opacity() and
	set_show_masked().

	* app/core/gimpimage.c (gimp_image_get_graph): enable code that
	projects the channels stack on top of the layer stack.

	* app/core/gimpprojection-construct.c: remove the call to
	gimp_projection_construct_channels() from the GEGL code path. Also
	don't touch proj->construct_flag.

1518 1519 1520 1521 1522
2008-10-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimplayer.c (gimp_layer_get_node): remove obsolete
	assertion and redundant cast.

1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534
2008-10-11  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawablestack.c: add GimpContainer::add()
	implementation, it's needed after all even though everybody uses
	gimp_container_insert() on drawable stacks.

	(gimp_drawable_stack_remove_node): no need to have a special check
	for newly added nodes, this can't happen any more now that we have
	an add() impl.

	(gimp_drawable_stack_get_graph): free the reverse list.

1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551
2008-10-11  Michael Natterer  <mitch@gimp.org>

	Fix old bug in the GimpContainer implementation that wasn't
	visible before the drawable stack completly b0rked when removing
	the second-last item:

	* app/core/gimpcontainer.c: add default implementations of ::add()
	and ::remove() and update container->num_children there instead of
	in the gimp_container_add() and _remove() wrapper functions.
	This way not only external callbacks connected to the "add" and
	"remove" signals are called with the correct num_children, also
	implemtations of ::add() and ::remove() in subclass have the right
	number available before/after upchaining. Add paranoia code to the
	wrapper functions which check if the subclass reall chains up.

	* app/core/gimplist.c: chain up in add() and remove().

Martin Nordholts's avatar
Martin Nordholts committed
1552 1553 1554 1555 1556
2008-10-11  Martin Nordholts  <martinn@svn.gnome.org>

	* app/widgets/gimpdockseparator.c (gimp_dock_separator_drag_drop):
	Initialize 'index'.

1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571
2008-10-11  Martin Nordholts  <martinn@svn.gnome.org>

	* app/widgets/gimpdockseparator.c (gimp_dock_separator_new): Add a
	GtkAnchorType member to GimpDockSeparator that specifies where a
	dropped dockable shall be inserted.

	(gimp_dock_separator_drag_drop): Get rid of the ugly hack where
	the role of a given separator was based on its position as a child
	in its container. Simply decide what role the separator has by
	loooking at its anchor-member.

	* app/widgets/gimpdock.c (gimp_dock_init)
	(gimp_dock_add_book): Give the GimpDockSeparators their
	appropriate roles directly at their construction.

1572 1573 1574 1575 1576 1577 1578
2008-10-10  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawablestack.c
	(gimp_drawable_stack_add_node)
	(gimp_drawable_stack_remove_node): simplify by getting rid of code
	duplication.

1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589
2008-10-10  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawablestack.[ch]: move all the code that creates
	a graph of drawables and all adding/removing/reordering code from
	GimpImage to this file.

	* app/core/gimpimage.c: remove the code here and use the layer
	stack's subgraph instead. Add #if 0'ed code that blends the
	channels on top of that but that doesn't work because channels
	don't provide nodes yet.

1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600
2008-10-10  Michael Natterer  <mitch@gimp.org>

	* app/core/core-types.h
	* app/core/Makefile.am
	* app/core/gimpdrawablestack.[ch]: new GimpList subclass stub
	which will manage the subgraphs of layers and channels and is also
	the first step towards layer tree.

	* app/core/gimpimage.c (gimp_image_init): keep the layers and
	channels in GimpDrawableStacks instead of plain GimpLists.

1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611
2008-10-10  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable.[ch]: add virtual function
	GimpDrawable::get_node() which returns a node to be plugged into
	the projection.

	* app/core/gimplayer.[ch]: remove public get_node() api and
	implement the virtual function instead.

	* app/core/gimpimage.c: changed accordingly.

1612 1613 1614 1615 1616 1617
2008-10-10  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpmovetool.c (gimp_move_tool_button_release): flush
	the image after setting active items back from temporarily
	selected ones. Fixes menu item sensitivity.

1618 1619 1620 1621 1622 1623 1624 1625
2008-10-10  Michael Natterer  <mitch@gimp.org>

	* app/core/gimplayer.c: implement GimpItem::visibility-changed
	and turn the layer's node into a nop when the layer is invisible.

	(gimp_layer_get_node): connect the stuff to a nop here too for
	invisible layers.

1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658
2008-10-10  Michael Natterer  <mitch@gimp.org>

	Bug 554983 – Layers Projection using GEGL

	First projection using GEGL, wheeeee. Disabled by default because
	it doesn't work with floating selection (and will not, FS
	refactoring is in the queue).

	* app/core/gimpimage.[ch]: add gimp_image_get_graph() which
	returns a GeglNode representing the image's projection.

	(gimp_image_add_layer_node)
	(gimp_image_remove_layer_node): new utility functions to add and
	remove layer nodes to/from the graph.

	(gimp_image_add_layer)
	(gimp_image_remove_layer)
	(gimp_image_position_layer): call them to keep the graph up to date.

	* app/core/gimpdrawable.c (gimp_drawable_real_update): invalidate
	the source node.

	* app/core/gimpprojection.[ch]: keep a projection graph around and
	add gimp_projection_get_sink_node() which returns the node that
	writes to the projection tiles.

	* app/core/gimpprojection-construct.c: add
	gimp_projection_construct_gegl() which is a few-liner that uses a
	GeglProcessor to run the projection graph.

	(gimp_projection_construct): call the new function (disabled by
	default).

1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669
2008-10-10  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage.[ch]: add new functions
	gimp_image_get_layer_by_index(), _channel_by_index() and
	_vectors_by_index().

	* app/core/gimpprojection-construct.c
	* app/display/gimpdisplayshell-layer-select.c
	* app/xcf/xcf-load.c: use them instead of looking the items up
	in image->container and casting the return value.

1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680
2008-10-10  Michael Natterer  <mitch@gimp.org>

	* app/core/gimplayer.c (gimp_layer_translate)
	(gimp_layer_get_node): the "shift" operation's x and y properties
	are doubles not ints.

	(gimp_layer_apply_mask): properly disconnect the mask node.

	(gimp_layer_set_opacity): the opacity node has a "value" property,
	not "opacity".

1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708
2008-10-09  Michael Natterer  <mitch@gimp.org>

	Address Bug 554983 – Layers Projection using GEGL

	* app/gegl/gimp-gegl-utils.[ch]: add (imcomplete) function
	gimp_layer_mode_to_gegl_operation() from bug #554983.

	* app/core/gimpdrawable.[ch]: add gimp_drawable_get_source_node()
	which returns a GimpOperationTileSource for the drawable's
	tiles.

	(gimp_drawable_real_set_tiles)
	(gimp_drawable_configure): set the node's "tiles" property.

	* app/core/gimplayer.[ch]: add gimp_layer_get_node() which returns
	a GeglNode with proxy "input" and "output" pads to be plugged
	into the projection graph. The node has children for opacity,
	mask, layer mode and layer offset.

	(gimp_layer_translate)
	(gimp_layer_add_mask)
	(gimp_layer_apply_mask)
	(gimp_layer_set_opacity)
	(gimp_layer_set_mode): reconfigure the respective nodes.

	* app/core/gimpimage.[ch]: keep a "graph" node around and destroy
	it in finalize(). Not even a stub, just a silly GEGL dependency.

1709 1710 1711