## gimpimageundo gimpimageundo — Control of image undo/redo. |

## Functions

gboolean | gimp_image_undo_group_start ()
gboolean | gimp_image_undo_group_end ()
gboolean | gimp_image_undo_is_enabled ()
gboolean | gimp_image_undo_disable ()
gboolean | gimp_image_undo_enable ()
gboolean | gimp_image_undo_freeze ()
gboolean | gimp_image_undo_thaw ()

## Description

Control of image undo/redo.

## Functions

### gimp_image_undo_group_start ()

    gboolean
    gimp_image_undo_group_start (gint32 image_ID);

Starts a group undo.

This function is used to start a group undo--necessary for logically combining two or more undo operations into a single operation. This call must be used in conjunction with a `gimp_image_undo_group_end()` call.

#### Parameters

image_ID | The ID of the image in which to open an undo group. |

#### Returns

TRUE on success.

### gimp_image_undo_group_end ()

    gboolean
    gimp_image_undo_group_end (gint32 image_ID);

Finish a group undo.

This function must be called once for each `gimp_image_undo_group_start()` call that is made.

#### Parameters

image_ID | The ID of the image in which to close an undo group. |

#### Returns

TRUE on success.

### gimp_image_undo_is_enabled ()

    gboolean
    gimp_image_undo_is_enabled (gint32 image_ID);

Check if the image's undo stack is enabled.

This procedure checks if the image's undo stack is currently enabled or disabled. This is useful when several plug-ins or scripts call each other and want to check if their caller has already used `gimp_image_undo_disable()` or `gimp_image_undo_freeze()`.

#### Parameters

image_ID | The image. |

#### Returns

TRUE if undo is enabled for this image.

### gimp_image_undo_disable ()

    gboolean
    gimp_image_undo_disable (gint32 image_ID);

Disable the image's undo stack.

This procedure disables the image's undo stack, allowing subsequent operations to ignore their undo steps. This is generally called in conjunction with `gimp_image_undo_enable()` to temporarily disable an image undo stack. This is advantageous because saving undo steps can be time and memory intensive.

#### Parameters

image_ID | The image. |

#### Returns

TRUE if the image undo has been disabled.

### gimp_image_undo_enable ()

    gboolean
    gimp_image_undo_enable (gint32 image_ID);

Enable the image's undo stack.

This procedure enables the image's undo stack, allowing subsequent operations to store their undo steps. This is generally called in conjunction with `gimp_image_undo_disable()` to temporarily disable an image undo stack.

#### Parameters

image_ID | The image. |

#### Returns

TRUE if the image undo has been enabled.

### gimp_image_undo_freeze ()

    gboolean
    gimp_image_undo_freeze (gint32 image_ID);

Freeze the image's undo stack.

This procedure freezes the image's undo stack, allowing subsequent operations to ignore their undo steps. This is generally called in conjunction with `gimp_image_undo_thaw()` to temporarily disable an image undo stack. This is advantageous because saving undo steps can be time and memory intensive. `gimp_image_undo_freeze()` / `gimp_image_undo_thaw()` and `gimp_image_undo_disable()` / `gimp_image_undo_enable()` differ in that the former does not free up all undo steps when undo is thawed, so is more suited to interactive in-situ previews. It is important in this case that the image is back to the same state it was frozen in before thawing, else 'undo' behaviour is undefined.

#### Parameters

image_ID | The image. |

#### Returns

TRUE if the image undo has been frozen.

### gimp_image_undo_thaw ()

    gboolean
    gimp_image_undo_thaw (gint32 image_ID);

Thaw the image's undo stack.

This procedure thaws the image's undo stack, allowing subsequent operations to store their undo steps. This is generally called in conjunction with `gimp_image_undo_freeze()` to temporarily freeze an image undo stack. `gimp_image_undo_thaw()` does NOT free the undo stack as `gimp_image_undo_enable()` does, so is suited for situations where one wishes to leave the undo stack in the same state in which one found it despite non-destructively playing with the image in the meantime. An example would be in-situ plug-in previews. Balancing freezes and thaws and ensuring image consistency is the responsibility of the caller.

#### Parameters

image_ID | The image. |

#### Returns

TRUE if the image undo has been thawed.