After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 136623 - text layer paint problems
text layer paint problems
Status: RESOLVED FIXED
Product: GIMP
Classification: Other
Component: General
git master
Other Linux
: Normal blocker
: 2.0
Assigned To: GIMP Bugs
GIMP Bugs
Depends on:
Blocks: 136740
 
 
Reported: 2004-03-09 09:24 UTC by Jakub Steiner
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Jakub Steiner 2004-03-09 09:24:50 UTC
I've encoutered a misbehaviour when painting on text layers which led to a
crash using undo afterwards.

To reproduce:

1) create new image
2) create some text
3) enlarge the text-layer size to match the image (layer to imageres size)
4) paint on the layer with a brush
5) select keep transparent in the layer's window
6) fill the layer by dragging a color onto the canvas

Now something funky happens, the text position changes to 0,0 and all the
painted stuff is gone. From now on the state is very incosistent, causing
repaint problems and eventually ending up in a crash.

the consecutive crash backtrace:

  • #0 g_on_error_stack_trace
    from /usr/lib/libglib-2.0.so.0
  • #1 g_on_error_query
    from /usr/lib/libglib-2.0.so.0
  • #2 gimp_eek
  • #3 gimp_fatal_error
  • #4 gimp_sigfatal_handler
    at main.c line 602
  • #5 <signal handler called>
  • #6 tile_release
    at tile.c line 175
  • #7 undo_pop_image
  • #8 gimp_undo_real_pop
  • #9 gimp_marshal_VOID__ENUM_POINTER
  • #10 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #11 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #12 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #13 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #14 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #15 gimp_undo_pop
  • #16 gimp_undo_stack_pop
  • #17 gimp_marshal_VOID__ENUM_POINTER
  • #18 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #19 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #20 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #21 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #22 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #23 gimp_undo_pop
  • #24 gimp_undo_stack_pop_undo
  • #25 gimp_image_undo_pop_stack
  • #26 gimp_image_undo
    at gimpimage-undo.c line 56
  • #27 edit_undo_cmd_callback
  • #28 gtk_item_factory_new
    from /usr/lib/libgtk-x11-2.0.so.0
  • #29 g_cclosure_marshal_VOID__VOID
  • #30 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #31 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #32 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #33 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #34 gtk_widget_can_activate_accel
  • #35 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #36 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #37 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #38 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #39 gtk_accel_group_activate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #40 gtk_accel_groups_activate
  • #41 _gtk_window_activate_key
    from /usr/lib/libgtk-x11-2.0.so.0
  • #42 _gtk_window_query_nonaccels
  • #43 _gtk_marshal_BOOLEAN__BOXED
  • #44 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #45 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #46 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #47 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #48 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #49 gtk_widget_send_expose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #50 gtk_widget_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #51 gtk_propagate_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #52 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #53 _gdk_events_queue
    from /usr/lib/libgdk-x11-2.0.so.0
  • #54 unblock_source
    from /usr/lib/libglib-2.0.so.0
  • #55 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #56 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #57 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #58 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #59 app_run
  • #60 main
    at main.c line 470
  • #61 __libc_start_main
    from /lib/tls/libc.so.6

Comment 1 Sven Neumann 2004-03-09 10:09:12 UTC
This doesn't surprise me at all. Will get fixed along with the other
text problems.
Comment 2 Raphaël Quinet 2004-03-09 21:16:18 UTC
*** Bug 136645 has been marked as a duplicate of this bug. ***
Comment 3 Dave Neary 2004-03-10 10:54:57 UTC
Setting severity to blocker for the bugs which definitely need to be fixed
before 2.0. 

Dave.
Comment 4 Sven Neumann 2004-03-13 15:08:20 UTC
Fixed in CVS. I will have to work on this a little more but I think I
can get text handling work reasonably well until tomorrow...

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.