GIMP issueshttps://gitlab.gnome.org/GNOME/gimp/-/issues2024-03-17T12:31:55Zhttps://gitlab.gnome.org/GNOME/gimp/-/issues/10989gimp crashed2024-03-17T12:31:55ZAnik Mondalgimp crashed<!-- ⚠️ IMPORTANT: READ ME! ⚠️
This is the default template for bug reports.
For feature requests or performance issues, please switch instead to the appropriate template in the "Choose a template" list.
It is important that you fill al...<!-- ⚠️ IMPORTANT: READ ME! ⚠️
This is the default template for bug reports.
For feature requests or performance issues, please switch instead to the appropriate template in the "Choose a template" list.
It is important that you fill all the fields of the template.
-->
### Environment/Versions
- GIMP version: 2.99.18
- Package: flatpak
- Operating System: linux
<!--Note: bug reporters are expected to have verified the bug still exists
either in the last stable version of GIMP or on updated development code
(master branch).-->
### Description of the bug
<!--Please describe your issue with details.
Add screenshot or other files if needed.(write it after the > symbol)-->
Plug-in crashed: "gfig"
(/app/lib/gimp/2.99/plug-ins/gfig/gfig)
The dying plug-in may have messed up GIMP's internal state. You may want to save your images and restart GIMP to be on the safe side.
*** Just changed the stroke's brush and got crashed.
### Reproduction
Is the bug reproducible? <!--[Always / Randomly / Happened only once ] (write it after the > symbol)-->
Reproduction steps:
1. opened gfig
2. clicked on stroke brush selector
3. selected another brush
4. tried to create a shape
5. then gimp crashed the pop-up appeared
…
Expected result:
Actual result:
### Additional information
Happens with all other brushes without the default onehttps://gitlab.gnome.org/GNOME/gimp/-/issues/10012Gfig menu buttons icon broken for dark themes2024-03-08T16:19:58ZniemandGfig menu buttons icon broken for dark themes### Environment/Versions
- GIMP version: 2.10.34
- Package: gimp-2.10.34-3-x86_64.dmg directly from https://www.gimp.org/downloads/
- Operating System: macOS 12.6.4 (Monterey)
### Description of the bug
Gfig menu buttons icon broken fo...### Environment/Versions
- GIMP version: 2.10.34
- Package: gimp-2.10.34-3-x86_64.dmg directly from https://www.gimp.org/downloads/
- Operating System: macOS 12.6.4 (Monterey)
### Description of the bug
Gfig menu buttons icon broken for Create line, Create rectangle, Create circle, etc. See attached screenshot.![GIMP_Gfig_broken_Screen_Shot_2023-09-15_at_7.16.59_AM](/uploads/22f1c18c6750f34a48f09d72a0b940e0/GIMP_Gfig_broken_Screen_Shot_2023-09-15_at_7.16.59_AM.png)
### Reproduction
Is the bug reproducible? Always
Reproduction steps:
1. Filters -> Render -> Gfig...
2. Observe Gfig dialog box appear with broken icon for menu buttons for Create line, Create rectangle, Create circle, etc.
Expected result:
Gfig dialog box appears with correct icons for menu buttons.
Actual result:
Gfig dialog box appears with broken icons for menu buttons.
### Additional information
nonehttps://gitlab.gnome.org/GNOME/gimp/-/issues/9746Brushes scattering with Gfig open (and wish it was part of Tools)2024-02-20T10:41:08ZmrbunnylamakinsBrushes scattering with Gfig open (and wish it was part of Tools)### Environment/Versions
- GIMP version:2.10.34
- Package: <!--[flatpak? Installer from gimp.org? If another installer, tell us where from] (write it after the > symbol)--> Installer from gimp.org
- Operating System: <!--[Windows? mac...### Environment/Versions
- GIMP version:2.10.34
- Package: <!--[flatpak? Installer from gimp.org? If another installer, tell us where from] (write it after the > symbol)--> Installer from gimp.org
- Operating System: <!--[Windows? macOS? Linux? All?] (write it after the > symbol) --> Windows 8.1
<!--Note: bug reporters are expected to have verified the bug still exists
either in the last stable version of GIMP or on updated development code
(master branch).-->
### Description of the bug
<!--Please describe your issue with details.
Add screenshot or other files if needed.(write it after the > symbol)-->
### Reproduction
Is the bug reproducible? <!--[Always / Randomly / Happened only once ] (write it after the > symbol)--> Always
Reproduction steps:
1. Drawing anything in Gfig
2.
3.
…
Expected result: To draw Lines and Shapes with smooth lines
Actual result: Scattered paint brush shapes Rather than smooth stroke of pencil or brush following the line
### Additional information
I have tried different brushes and they all acted the same along with changing various settings for the brushes and pencil and so forth.
![Screenshot_19](/uploads/377f54f96c3a5fd6cfbb7bc8b50eb808/Screenshot_19.png)
![Screenshot_20](/uploads/aa39445c27c0738f6406b6a402f76f3b/Screenshot_20.png)
If you have a backtrace for a crash or a warning, paste it here.https://gitlab.gnome.org/GNOME/gimp/-/issues/8907Gfig should be called shapepainter2024-03-11T10:44:38ZSimon HallefältGfig should be called shapepainterHave been using GIMP for quite some time and have thought that there is no shape painter in the app. Only discovered Gfig from a youtube video that was recommended to me. The name should be changed to help people find this extremely func...Have been using GIMP for quite some time and have thought that there is no shape painter in the app. Only discovered Gfig from a youtube video that was recommended to me. The name should be changed to help people find this extremely functional tool that almost no one knows about as the name does not describe the function.
Filters -> Render -> Gfighttps://gitlab.gnome.org/GNOME/gimp/-/issues/8176Gfig stroke size2022-06-11T15:33:31Z4e576rt8uh9ij9okpGfig stroke sizeHello,
it's almost impossible to draw a polygon easily in Gimp.
Even Paint.net is able to draw such shapes and Gimp isn't?
Gfig allows people to draw such shapes but it has 2 things that make this whole function useless.
1. Unable to cha...Hello,
it's almost impossible to draw a polygon easily in Gimp.
Even Paint.net is able to draw such shapes and Gimp isn't?
Gfig allows people to draw such shapes but it has 2 things that make this whole function useless.
1. Unable to change the stroke size of Gfig lines. The lines are so thick that it's basically useless.
2. The measurements in the preview window doesn't align with the project measurements.https://gitlab.gnome.org/GNOME/gimp/-/issues/6693Gfig Crashes When Using the "Select an Object" Tool2024-02-20T10:07:14ZMichael DaviesGfig Crashes When Using the "Select an Object" Tool### Environment/Versions
- GIMP version: 2.10.24
- Package: <!--[flatpak? Installer from gimp.org? If another installer, tell us where from] (write it after the > symbol)--> Windows installer from main downloads page on GIMP.org.
- Oper...### Environment/Versions
- GIMP version: 2.10.24
- Package: <!--[flatpak? Installer from gimp.org? If another installer, tell us where from] (write it after the > symbol)--> Windows installer from main downloads page on GIMP.org.
- Operating System: <!--[Windows? macOS? Linux? All?] (write it after the > symbol) --> Windows 10
<!--Note: bug reporters are expected to have verified the bug still exists
either in the last stable version of GIMP or on updated development code
(master branch).-->
### Description of the bug
<!--Please describe your issue with details.
Add screenshot or other files if needed.(write it after the > symbol)--> When using the Gfig filter, if I click on the "Select an Object" tool at any point in my workflow (i.e. before I draw an object, or after drawing one or multiple objects/shapes) the filter crashes. THe plugin then closes down and I receive two error messages (shown in the attached photos). When I re-open Gfig, it creates a new Gfig layer (even if I'm already on the original Gfig layer - in other words that original layer is no longer editable) and starts from a new session (i.e. the window is blank - no more shapes to edit, I have to start over). This happens 100% of the time I use this filter.
![gimp_error_message_1_gfig_crash](/uploads/185f90e7942534bf96ab92d12e683b96/gimp_error_message_1_gfig_crash.jpg)
![gimp_error_message_2_gfig_crash](/uploads/7887827e695e5599ad3087fe9d4275b6/gimp_error_message_2_gfig_crash.jpg)
### Reproduction
Is the bug reproducible? <!--[Always / Randomly / Happened only once ] (write it after the > symbol)--> Always.
Reproduction steps:
1. Open Gfig filter (Filters>Render>Gfig)
2. Click on "Select an Object" icon/tool
3. Filter crashes, error messages pop up
…
Expected result: tool allows me to select a shape.
Actual result: filter crashes.
### Additional information
From Error Console:
GIMP Error
Plug-in crashed: "gfig.exe"
(C:\Program Files\GIMP 2\lib\gimp\2.0\plug-ins\gfig\gfig.exe)
The dying plug-in may have messed up GIMP's internal state. You may want to save your images and restart GIMP to be on the safe side.
GIMP Warning
Plug-in 'Gfig' left image undo in inconsistent state, closing open undo groups.
Stacktrace from @schumaml:
```
Thread 1 "gfig" received signal SIGSEGV, Segmentation fault.
_gdk_x11_cursor_update_theme (cursor=0xb46063a0)
at ../../../../../gdk/x11/gdkcursor-x11.c:569
569 ../../../../../gdk/x11/gdkcursor-x11.c: No such file or directory.
(gdb) bt full
#0 _gdk_x11_cursor_update_theme (cursor=0xb46063a0)
at ../../../../../gdk/x11/gdkcursor-x11.c:569
Python Exception <class 'gdb.MemoryError'> Cannot access memory at address 0x90:
xdisplay = #1 0xb773b454 in gdk_window_x11_set_cursor
(window=0x9f3598 [GdkWindow], cursor=0xb46063a0)
at ../../../../../gdk/x11/gdkwindow-x11.c:2798
private = 0x9f3598 [GdkWindow]
impl = 0xba4ec0 [GdkWindowImplX11]
cursor_private = 0xb46063a0
xcursor = <optimized out>
#2 0xb7711675 in update_cursor (display=display@entry=0x9e3090 [GdkDisplayX11])
at ../../../../gdk/gdkwindow.c:9604
cursor_window = 0xc460d8 [GdkWindow]
parent = <optimized out>
toplevel = 0x9f3598 [GdkWindow]
pointer_window = <optimized out>
impl_iface = <optimized out>
grab = <optimized out>
#3 0xb7713d1c in _gdk_display_set_window_under_pointer
(window=0xc460d8 [GdkWindow], display=0x9e3090 [GdkDisplayX11])
at ../../../../gdk/gdkwindow.c:10317
#4 _gdk_display_set_window_under_pointer
(display=0x9e3090 [GdkDisplayX11], window=0xc460d8 [GdkWindow])
at ../../../../gdk/gdkwindow.c:10302
#5 0xb77175d6 in proxy_pointer_event
(serial=5185, source_event=0xc4f5a0, display=0x9e3090 [GdkDisplayX11])
at ../../../../gdk/gdkwindow.c:10700
pointer_window = 0xc460d8 [GdkWindow]
state = 16
toplevel_x = 400
toplevel_window = <optimized out>
event_window = 0x9f3598 [GdkWindow]
event = <optimized out>
toplevel_y = 114
time_ = 165960287
non_linear = <optimized out>
event_window = <optimized out>
event_private = <optimized out>
x = 400
y = 114
unlink_event = 0
button_release_grab = <optimized out>
is_toplevel = <optimized out>
#6 _gdk_windowing_got_event (display=0x9e3090 [GdkDisplayX11], event_link=0xcde720 = {...}, event=0xc4f5a0, serial=5185) at ../../../../gdk/gdkwindow.c:11125
event_window = <optimized out>
event_private = <optimized out>
x = 400
y = 114
unlink_event = 0
button_release_grab = <optimized out>
is_toplevel = <optimized out>
#7 0xb772c4ab in _gdk_events_queue (display=0x9e3090 [GdkDisplayX11]) at ../../../../../gdk/x11/gdkevents-x11.c:2361
node = 0xcde720 = {0xc4f5a0}
event = 0xc4f5a0
xevent = {type = 6, xany = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387}, xkey = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387, root = 604, subwindow = 0, time = 165960287, x = 400, y = 114, x_root = 690, y_root = 360, state = 16, keycode = 4294967040, same_screen = 1}, xbutton = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387, root = 604, subwindow = 0, time = 165960287, x = 400, y = 114, x_root = 690, y_root = 360, state = 16, button = 4294967040, same_screen = 1}, xmotion = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387, root = 604, subwindow = 0, time = 165960287, x = 400, y = 114, x_root = 690, y_root = 360, state = 16, is_hint = 0 '\000', same_screen = 1}, xcrossing = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387, root = 604, subwindow = 0, time = 165960287, x = 400, y = 114, x_root = 690, y_root = 360, mode = 16, detail = -256, same_screen = 1, focus = -1, state = 4294967295}, xfocus = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387, mode = 604, detail = 0}, xexpose = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387, x = 604, y = 0, width = 165960287, height = 400, count = 114}, xgraphicsexpose = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, drawable = 88080387, x = 604, y = 0, width = 165960287, height = 400, count = 114, major_code = 690, minor_code = 360}, xnoexpose = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, drawable = 88080387, major_code = 604, minor_code = 0}, xvisibility = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387, state = 604}, xcreatewindow = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, parent = 88080387, window = 604, x = 0, y = 165960287, width = 400, height = 114, border_width = 690, override_redirect = 360}, xdestroywindow = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, event = 88080387, window = 604}, xunmap = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, event = 88080387, window = 604, from_configure = 0}, xmap = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, event = 88080387, window = 604, override_redirect = 0}, xmaprequest = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, parent = 88080387, window = 604}, xreparent = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, event = 88080387, window = 604, parent = 0, x = 165960287, y = 400, override_redirect = 114}, xconfigure = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, event = 88080387, window = 604, x = 0, y = 165960287, width = 400, height = 114, border_width = 690, above = 360, override_redirect = 16}, xgravity = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, event = 88080387, window = 604, x = 0, y = 165960287}, xresizerequest = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387, width = 604, height = 0}, xconfigurerequest = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, parent = 88080387, window = 604, x = 0, y = 165960287, width = 400, height = 114, border_width = 690, above = 360, detail = 16, value_mask = 4294967040}, xcirculate = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, event = 88080387, window = 604, place = 0}, xcirculaterequest = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, parent = 88080387, window = 604, place = 0}, xproperty = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387, atom = 604, time = 0, state = 165960287}, xselectionclear = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387, selection = 604, time = 0}, xselectionrequest = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, owner = 88080387, requestor = 604, selection = 0, target = 165960287, property = 400, time = 114}, xselection = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, requestor = 88080387, selection = 604, target = 0, property = 165960287, time = 400}, xcolormap = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387, colormap = 604, new = 0, state = 165960287}, xclient = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387, message_type = 604, format = 0, data = {b = "_Z\344\t\220\001\000\000r\000\000\000\262\002\000\000h\001\000", s = {23135, 2532, 400, 0, 114, 0, 690, 0, 360, 0}, l = {165960287, 400, 114, 690, 360}}}, xmapping = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387, request = 604, first_keycode = 0, count = 165960287}, xerror = {type = 6, display = 0x1441, resourceid = 0, serial = 10314128, error_code = 3 '\003', request_code = 0 '\000', minor_code = 64 '@'}, xkeymap = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, window = 88080387, key_vector = "\\\002\000\000\000\000\000\000_Z\344\t\220\001\000\000r\000\000\000\262\002\000\000h\001\000\000\020\000\000"}, xgeneric = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, extension = 88080387, evtype = 604}, xcookie = {type = 6, serial = 5185, send_event = 0, display = 0x9d6190, extension = 88080387, evtype = 604, cookie = 0, data = 0x9e45a5f}, pad = {6, 5185, 0, 10314128, 88080387, 604, 0, 165960287, 400, 114, 690, 360, 16, -256, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1}}
xdisplay = 0x9d6190
#8 0xb772c53e in gdk_event_dispatch (source=0x9f46e0, callback=0x0, user_data=0x0) at ../../../../../gdk/x11/gdkevents-x11.c:2419
display = 0x9e3090 [GdkDisplayX11]
event = <optimized out>
#9 0xb73f88cd in g_main_dispatch (context=0x9a8560) at ../../../glib/gmain.c:3325
dispatch = 0xb772c510 <gdk_event_dispatch>
prev_source = 0x0
begin_time_nsec = 0
was_in_call = 0
user_data = 0x0
callback = 0x0
cb_funcs = <optimized out>
cb_data = <optimized out>
need_destroy = <optimized out>
source = 0x9f46e0
current = 0x9bd2e0
i = 0
__func__ = "g_main_dispatch"
#10 g_main_context_dispatch (context=0x9a8560) at ../../../glib/gmain.c:4043
#11 0xb73f8b69 in g_main_context_iterate (context=0x9a8560, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4119
max_priority = 0
timeout = 0
some_ready = 1
nfds = 4
allocated_nfds = <optimized out>
fds = <optimized out>
#12 0xb73f8ec1 in g_main_loop_run (loop=<optimized out>) at ../../../glib/gmain.c:4317
__func__ = "g_main_loop_run"
#13 0xb78beaf5 in IA__gtk_main () at ../../../../gtk/gtkmain.c:1270
tmp_list = 0x0
functions = 0x0
init = <optimized out>
loop = 0xbd7850
#14 0x00433a23 in gfig_dialog () at /home/schumaml/Development/source/gimp-2-10/plug-ins/gfig/gfig-dialog.c:534
main_hbox = 0xb3ddc0 [GtkHBox]
vbox = <optimized out>
gfig = 0xc1f840
parasite = <optimized out>
newlayer = <optimized out>
menubar = <optimized out>
toolbar = <optimized out>
combo = <optimized out>
frame = <optimized out>
img_width = <optimized out>
img_height = <optimized out>
img_type = <optimized out>
toggle = <optimized out>
right_vbox = <optimized out>
hbox = <optimized out>
ui_manager = <optimized out>
empty_label = <optimized out>
path = <optimized out>
#15 0x0042d4fd in run (name=0x9c1cd0 "plug-in-gfig", nparams=3, param=0x9c8380, nreturn_vals=0xbfe8ede4, return_vals=0xbfe8ede0) at /home/schumaml/Development/source/gimp-2-10/plug-ins/gfig/gfig.c:220
values = {{type = GIMP_PDB_STATUS, data = {d_int32 = 3, d_int16 = 3, d_int8 = 3 '\003', d_float = 1.4821969375237396e-323, d_string = 0x3 <error: Cannot access memory at address 0x3>, d_int32array = 0x3, d_int16array = 0x3, d_int8array = 0x3 <error: Cannot access memory at address 0x3>, d_floatarray = 0x3, d_stringarray = 0x3, d_colorarray = 0x3, d_color = {r = 1.4821969375237396e-323, g = 0, b = 0, a = 0}, d_region = {x = 3, y = 0, width = 0, height = 0}, d_display = 3, d_image = 3, d_item = 3, d_layer = 3, d_layer_mask = 3, d_channel = 3, d_drawable = 3, d_selection = 3, d_boundary = 3, d_path = 3, d_vectors = 3, d_unit = 3, d_parasite = {name = 0x3 <error: Cannot access memory at address 0x3>, flags = 0, size = 0, data = 0x0}, d_tattoo = 3, d_status = GIMP_PDB_SUCCESS}}}
drawable_id = <optimized out>
run_mode = <optimized out>
status = GIMP_PDB_SUCCESS
pwidth = <optimized out>
pheight = <optimized out>
#16 0xb7d066db in gimp_proc_run (proc_run=<optimized out>) at /home/schumaml/Development/source/gimp-2-10/libgimp/gimp.c:2453
proc_return = {name = 0xb7d223a0 <_gimp_unit_cache_get_number_of_units> "\351\033v\377\377\215\264&", nparams = 3084010232, params = 0xb7d24304}
return_vals = 0x451b20 <values>
n_return_vals = 1
msg = {type = 5, data = 0x9c3450}
basename = <optimized out>
env_string = <optimized out>
debug_string = <optimized out>
__func__ = "gimp_main"
#17 gimp_loop () at /home/schumaml/Development/source/gimp-2-10/libgimp/gimp.c:2265
msg = {type = 5, data = 0x9c3450}
basename = <optimized out>
env_string = <optimized out>
debug_string = <optimized out>
__func__ = "gimp_main"
#18 gimp_main (info=0x450e30 <PLUG_IN_INFO>, argc=6, argv=0xbfe8ef24) at /home/schumaml/Development/source/gimp-2-10/libgimp/gimp.c:671
basename = <optimized out>
env_string = <optimized out>
debug_string = <optimized out>
__func__ = "gimp_main"
#19 0x0042d19e in main (argc=6, argv=0xbfe8ef24) at /home/schumaml/Development/source/gimp-2-10/plug-ins/gfig/gfig.c:107
```https://gitlab.gnome.org/GNOME/gimp/-/issues/5302gfig - increase preview size to a bigger value2020-06-28T17:32:39ZJohn Helourgfig - increase preview size to a bigger valueHello,
please increase the value #define PREVIEW_SIZE 400 /gfig-preview.h/ to a bigger one (e.g. 1024) or make the drawing area sizeable (e.g. when user changes gfig window size). Many thanks.Hello,
please increase the value #define PREVIEW_SIZE 400 /gfig-preview.h/ to a bigger one (e.g. 1024) or make the drawing area sizeable (e.g. when user changes gfig window size). Many thanks.https://gitlab.gnome.org/GNOME/gimp/-/issues/3787Gfig brush spacing and opacity not working2024-02-21T09:10:07ZLibertyMountAddUpGfig brush spacing and opacity not workingGIMP version: 2.10.12
Operating System: W10 64 bit
Package: Gimp.org exe installer.
# Description of the bug
Brush spacing set in Gfig/Stroke/Browse dialog is not reflected in shapes.
# Reproduction
Always.
Reproduction steps:
1. O...GIMP version: 2.10.12
Operating System: W10 64 bit
Package: Gimp.org exe installer.
# Description of the bug
Brush spacing set in Gfig/Stroke/Browse dialog is not reflected in shapes.
# Reproduction
Always.
Reproduction steps:
1. Open Gfig.
2. Paint a shape.
3. Open stroke brush dialog.
4. Change spacing markedly.
5. Close dialog and repeat step 2.
Expected result: Spacing is reflected in shaping.
Actual result: Initial brush spacing is alwasy used.https://gitlab.gnome.org/GNOME/gimp/-/issues/273undo gfig can make GIMP critical2024-03-08T23:45:27ZBugzillaundo gfig can make GIMP critical## Submitted by quazgar
**[Link to original bug (#533307)](https://bugzilla.gnome.org/show_bug.cgi?id=533307)**
## Description
Small note first: Something very similar also happens with 2.4.5, but I'll rather describe the svn behav...## Submitted by quazgar
**[Link to original bug (#533307)](https://bugzilla.gnome.org/show_bug.cgi?id=533307)**
## Description
Small note first: Something very similar also happens with 2.4.5, but I'll rather describe the svn behaviour first.
Using the gfig plugin (and probably its undo stack handling) can result in an infinite loop, rendering GIMP unusable.
Steps to reproduce:
1) Open an image
2) Do something that causes an addition to the undo stack (like painting a stroke with a paint tool)
3) Make sure the Undo dialog is open and accessible
4) Open the gfig plugin
5) In the Undo dialog, try to revert to one step before by clicking on one of the previous stages there.
What happens:
Gimp freezes, sometimes the gfig plugin dialog itself seems to be still usable.
What should happen:
Probably nothing, but it definitely should not freeze.
Notes:
There will be a continuous stream of this message when started from a console:
Gimp-Core-CRITICAL **: gimp_image_undo: assertion `image->pushing_undo_group == GIMP_UNDO_GROUP_NONE' failed
Version: git masterhttps://gitlab.gnome.org/GNOME/gimp/-/issues/149Gfig plug-in would benefit from zoom ability2020-06-28T17:33:30ZBugzillaGfig plug-in would benefit from zoom ability## Submitted by Shawn Silsbee
**[Link to original bug (#306965)](https://bugzilla.gnome.org/show_bug.cgi?id=306965)**
## Description
Add a zoom tool to Gfig or display the image being edited in Gfig at the same
zoom level it was at ...## Submitted by Shawn Silsbee
**[Link to original bug (#306965)](https://bugzilla.gnome.org/show_bug.cgi?id=306965)**
## Description
Add a zoom tool to Gfig or display the image being edited in Gfig at the same
zoom level it was at in the main image window. This feature would make it much
easier to perform operations which require precision down to one pixel.
Other information:
Version: 2.2.x