mirror of
https://github.com/aseprite/aseprite.git
synced 2025-02-11 00:40:08 +00:00
Fixed a bug with multiple editors, paste command, and cleaning the editor's cursor.
This commit is contained in:
parent
3d6af97999
commit
0adb37f2bb
@ -1,3 +1,9 @@
|
|||||||
|
2009-03-01 David A. Capello <davidcapello@gmail.com>
|
||||||
|
|
||||||
|
* src/widgets/editor/cursor.cpp (editor_clean_cursor): Fixed a
|
||||||
|
problem where old_clipping_region can be NULL if multiple editors
|
||||||
|
are in use and PASTE command is executed.
|
||||||
|
|
||||||
2009-02-25 David A. Capello <davidcapello@gmail.com>
|
2009-02-25 David A. Capello <davidcapello@gmail.com>
|
||||||
|
|
||||||
* src/commands/cmd_save_file.cpp (cmd_save_file_copy_as_execute):
|
* src/commands/cmd_save_file.cpp (cmd_save_file_copy_as_execute):
|
||||||
|
1
NEWS.txt
1
NEWS.txt
@ -7,6 +7,7 @@ NEWS
|
|||||||
|
|
||||||
+ Added "Save Copy As" command (feature #2636076).
|
+ Added "Save Copy As" command (feature #2636076).
|
||||||
+ Fixed compilation support for gcc 64 bits.
|
+ Fixed compilation support for gcc 64 bits.
|
||||||
|
+ Fixed a bug with multiple editors and paste command.
|
||||||
|
|
||||||
0.6.1
|
0.6.1
|
||||||
-----
|
-----
|
||||||
|
@ -65,6 +65,9 @@ static int cursor_negative;
|
|||||||
|
|
||||||
static int saved_pixel[MAX_SAVED];
|
static int saved_pixel[MAX_SAVED];
|
||||||
static int saved_pixel_n;
|
static int saved_pixel_n;
|
||||||
|
|
||||||
|
// These clipping regions are shared between all editors, so we cannot
|
||||||
|
// make assumptions about their old state
|
||||||
static JRegion clipping_region;
|
static JRegion clipping_region;
|
||||||
static JRegion old_clipping_region;
|
static JRegion old_clipping_region;
|
||||||
|
|
||||||
@ -156,6 +159,8 @@ void editor_draw_cursor(JWidget widget, int x, int y)
|
|||||||
editor->cursor_editor_y = y;
|
editor->cursor_editor_y = y;
|
||||||
|
|
||||||
/* save the clipping-region to know where to clean the pixels */
|
/* save the clipping-region to know where to clean the pixels */
|
||||||
|
if (old_clipping_region)
|
||||||
|
jregion_free(old_clipping_region);
|
||||||
old_clipping_region = clipping_region;
|
old_clipping_region = clipping_region;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,7 +199,9 @@ void editor_clean_cursor(JWidget widget)
|
|||||||
editor->cursor_thick = 0;
|
editor->cursor_thick = 0;
|
||||||
|
|
||||||
jregion_free(clipping_region);
|
jregion_free(clipping_region);
|
||||||
jregion_free(old_clipping_region);
|
if (old_clipping_region)
|
||||||
|
jregion_free(old_clipping_region);
|
||||||
|
|
||||||
clipping_region = NULL;
|
clipping_region = NULL;
|
||||||
old_clipping_region = NULL;
|
old_clipping_region = NULL;
|
||||||
}
|
}
|
||||||
@ -361,7 +368,8 @@ static void cleanpixel(BITMAP *bmp, int x, int y, int color)
|
|||||||
if (saved_pixel_n < MAX_SAVED) {
|
if (saved_pixel_n < MAX_SAVED) {
|
||||||
if (point_inside_region(x, y, clipping_region))
|
if (point_inside_region(x, y, clipping_region))
|
||||||
putpixel(bmp, x, y, saved_pixel[saved_pixel_n++]);
|
putpixel(bmp, x, y, saved_pixel[saved_pixel_n++]);
|
||||||
else if (point_inside_region(x, y, old_clipping_region))
|
else if (old_clipping_region &&
|
||||||
|
point_inside_region(x, y, old_clipping_region))
|
||||||
saved_pixel_n++;
|
saved_pixel_n++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user