Named cut and copy are now performed after the user is asked for a name,
so cancelling the dialog should work correctly. There might be a problem, because now named_edit_cut() and named_edit_copy() always return TRUE. Before they returned FALSE when there was nothing to copy (tiles==NULL). However I had no problems at all when testing my code.... --Sven
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
Tue Apr 14 10:11:04 MEST 1998 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
|
* app/global_edit.c: Named cut and copy are now performed after
|
||||||
|
the user is asked for a name, so cancelling the dialog works
|
||||||
|
correctly.
|
||||||
|
|
||||||
Mon Apr 13 15:17:51 PDT 1998 Manish Singh <yosh@gimp.org>
|
Mon Apr 13 15:17:51 PDT 1998 Manish Singh <yosh@gimp.org>
|
||||||
|
|
||||||
* moved man page from docs to top-level so it's always installed
|
* moved man page from docs to top-level so it's always installed
|
||||||
|
@ -638,15 +638,14 @@ paste_named_buffer (GDisplay *gdisp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
new_named_buffer_callback (GtkWidget *w,
|
new_named_buffer (TileManager *tiles,
|
||||||
gpointer client_data,
|
char *name)
|
||||||
gpointer call_data)
|
|
||||||
{
|
{
|
||||||
PixelRegion srcPR, destPR;
|
PixelRegion srcPR, destPR;
|
||||||
TileManager *tiles;
|
|
||||||
NamedBuffer *nb;
|
NamedBuffer *nb;
|
||||||
|
|
||||||
tiles = (TileManager *) client_data;
|
if (! tiles) return;
|
||||||
|
|
||||||
nb = (NamedBuffer *) g_malloc (sizeof (NamedBuffer));
|
nb = (NamedBuffer *) g_malloc (sizeof (NamedBuffer));
|
||||||
|
|
||||||
nb->buf = tile_manager_new (tiles->levels[0].width, tiles->levels[0].height, tiles->levels[0].bpp);
|
nb->buf = tile_manager_new (tiles->levels[0].width, tiles->levels[0].height, tiles->levels[0].bpp);
|
||||||
@ -654,56 +653,69 @@ new_named_buffer_callback (GtkWidget *w,
|
|||||||
pixel_region_init (&destPR, nb->buf, 0, 0, tiles->levels[0].width, tiles->levels[0].height, TRUE);
|
pixel_region_init (&destPR, nb->buf, 0, 0, tiles->levels[0].width, tiles->levels[0].height, TRUE);
|
||||||
copy_region (&srcPR, &destPR);
|
copy_region (&srcPR, &destPR);
|
||||||
|
|
||||||
nb->name = g_strdup ((char *) call_data);
|
nb->name = g_strdup ((char *) name);
|
||||||
named_buffers = g_slist_append (named_buffers, (void *) nb);
|
named_buffers = g_slist_append (named_buffers, (void *) nb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
new_named_buffer (TileManager *new_tiles)
|
cut_named_buffer_callback (GtkWidget *w,
|
||||||
|
gpointer client_data,
|
||||||
|
gpointer call_data)
|
||||||
{
|
{
|
||||||
/* Create the dialog box to ask for a name */
|
TileManager *new_tiles;
|
||||||
query_string_box ("Named Buffer", "Enter a name for this buffer", NULL,
|
GDisplay *gdisp;
|
||||||
new_named_buffer_callback, new_tiles);
|
char *name;
|
||||||
|
|
||||||
|
gdisp = (GDisplay *) client_data;
|
||||||
|
name = g_strdup ((char *) call_data);
|
||||||
|
|
||||||
|
new_tiles = edit_cut (gdisp->gimage, gimage_active_drawable (gdisp->gimage));
|
||||||
|
if (new_tiles)
|
||||||
|
new_named_buffer (new_tiles, name);
|
||||||
|
gdisplays_flush ();
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
named_edit_cut (void *gdisp_ptr)
|
named_edit_cut (void *gdisp_ptr)
|
||||||
{
|
{
|
||||||
TileManager *new_tiles;
|
|
||||||
GDisplay *gdisp;
|
GDisplay *gdisp;
|
||||||
|
|
||||||
/* stop any active tool */
|
/* stop any active tool */
|
||||||
gdisp = (GDisplay *) gdisp_ptr;
|
gdisp = (GDisplay *) gdisp_ptr;
|
||||||
active_tool_control (HALT, gdisp_ptr);
|
active_tool_control (HALT, gdisp_ptr);
|
||||||
|
|
||||||
new_tiles = edit_cut (gdisp->gimage, gimage_active_drawable (gdisp->gimage));
|
query_string_box ("Cut Named", "Enter a name for this buffer", NULL,
|
||||||
|
cut_named_buffer_callback, gdisp);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
if (! new_tiles)
|
static void
|
||||||
return FALSE;
|
copy_named_buffer_callback (GtkWidget *w,
|
||||||
else
|
gpointer client_data,
|
||||||
{
|
gpointer call_data)
|
||||||
new_named_buffer (new_tiles);
|
{
|
||||||
gdisplays_flush ();
|
TileManager *new_tiles;
|
||||||
return TRUE;
|
GDisplay *gdisp;
|
||||||
}
|
char *name;
|
||||||
|
|
||||||
|
gdisp = (GDisplay *) client_data;
|
||||||
|
name = g_strdup ((char *) call_data);
|
||||||
|
|
||||||
|
new_tiles = edit_copy (gdisp->gimage, gimage_active_drawable (gdisp->gimage));
|
||||||
|
if (new_tiles)
|
||||||
|
new_named_buffer (new_tiles, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
named_edit_copy (void *gdisp_ptr)
|
named_edit_copy (void *gdisp_ptr)
|
||||||
{
|
{
|
||||||
TileManager *new_tiles;
|
|
||||||
GDisplay *gdisp;
|
GDisplay *gdisp;
|
||||||
|
|
||||||
gdisp = (GDisplay *) gdisp_ptr;
|
gdisp = (GDisplay *) gdisp_ptr;
|
||||||
new_tiles = edit_copy (gdisp->gimage, gimage_active_drawable (gdisp->gimage));
|
|
||||||
|
query_string_box ("Copy Named", "Enter a name for this buffer", NULL,
|
||||||
if (! new_tiles)
|
copy_named_buffer_callback, gdisp);
|
||||||
return FALSE;
|
return TRUE;
|
||||||
else
|
|
||||||
{
|
|
||||||
new_named_buffer (new_tiles);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -638,15 +638,14 @@ paste_named_buffer (GDisplay *gdisp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
new_named_buffer_callback (GtkWidget *w,
|
new_named_buffer (TileManager *tiles,
|
||||||
gpointer client_data,
|
char *name)
|
||||||
gpointer call_data)
|
|
||||||
{
|
{
|
||||||
PixelRegion srcPR, destPR;
|
PixelRegion srcPR, destPR;
|
||||||
TileManager *tiles;
|
|
||||||
NamedBuffer *nb;
|
NamedBuffer *nb;
|
||||||
|
|
||||||
tiles = (TileManager *) client_data;
|
if (! tiles) return;
|
||||||
|
|
||||||
nb = (NamedBuffer *) g_malloc (sizeof (NamedBuffer));
|
nb = (NamedBuffer *) g_malloc (sizeof (NamedBuffer));
|
||||||
|
|
||||||
nb->buf = tile_manager_new (tiles->levels[0].width, tiles->levels[0].height, tiles->levels[0].bpp);
|
nb->buf = tile_manager_new (tiles->levels[0].width, tiles->levels[0].height, tiles->levels[0].bpp);
|
||||||
@ -654,56 +653,69 @@ new_named_buffer_callback (GtkWidget *w,
|
|||||||
pixel_region_init (&destPR, nb->buf, 0, 0, tiles->levels[0].width, tiles->levels[0].height, TRUE);
|
pixel_region_init (&destPR, nb->buf, 0, 0, tiles->levels[0].width, tiles->levels[0].height, TRUE);
|
||||||
copy_region (&srcPR, &destPR);
|
copy_region (&srcPR, &destPR);
|
||||||
|
|
||||||
nb->name = g_strdup ((char *) call_data);
|
nb->name = g_strdup ((char *) name);
|
||||||
named_buffers = g_slist_append (named_buffers, (void *) nb);
|
named_buffers = g_slist_append (named_buffers, (void *) nb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
new_named_buffer (TileManager *new_tiles)
|
cut_named_buffer_callback (GtkWidget *w,
|
||||||
|
gpointer client_data,
|
||||||
|
gpointer call_data)
|
||||||
{
|
{
|
||||||
/* Create the dialog box to ask for a name */
|
TileManager *new_tiles;
|
||||||
query_string_box ("Named Buffer", "Enter a name for this buffer", NULL,
|
GDisplay *gdisp;
|
||||||
new_named_buffer_callback, new_tiles);
|
char *name;
|
||||||
|
|
||||||
|
gdisp = (GDisplay *) client_data;
|
||||||
|
name = g_strdup ((char *) call_data);
|
||||||
|
|
||||||
|
new_tiles = edit_cut (gdisp->gimage, gimage_active_drawable (gdisp->gimage));
|
||||||
|
if (new_tiles)
|
||||||
|
new_named_buffer (new_tiles, name);
|
||||||
|
gdisplays_flush ();
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
named_edit_cut (void *gdisp_ptr)
|
named_edit_cut (void *gdisp_ptr)
|
||||||
{
|
{
|
||||||
TileManager *new_tiles;
|
|
||||||
GDisplay *gdisp;
|
GDisplay *gdisp;
|
||||||
|
|
||||||
/* stop any active tool */
|
/* stop any active tool */
|
||||||
gdisp = (GDisplay *) gdisp_ptr;
|
gdisp = (GDisplay *) gdisp_ptr;
|
||||||
active_tool_control (HALT, gdisp_ptr);
|
active_tool_control (HALT, gdisp_ptr);
|
||||||
|
|
||||||
new_tiles = edit_cut (gdisp->gimage, gimage_active_drawable (gdisp->gimage));
|
query_string_box ("Cut Named", "Enter a name for this buffer", NULL,
|
||||||
|
cut_named_buffer_callback, gdisp);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
if (! new_tiles)
|
static void
|
||||||
return FALSE;
|
copy_named_buffer_callback (GtkWidget *w,
|
||||||
else
|
gpointer client_data,
|
||||||
{
|
gpointer call_data)
|
||||||
new_named_buffer (new_tiles);
|
{
|
||||||
gdisplays_flush ();
|
TileManager *new_tiles;
|
||||||
return TRUE;
|
GDisplay *gdisp;
|
||||||
}
|
char *name;
|
||||||
|
|
||||||
|
gdisp = (GDisplay *) client_data;
|
||||||
|
name = g_strdup ((char *) call_data);
|
||||||
|
|
||||||
|
new_tiles = edit_copy (gdisp->gimage, gimage_active_drawable (gdisp->gimage));
|
||||||
|
if (new_tiles)
|
||||||
|
new_named_buffer (new_tiles, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
named_edit_copy (void *gdisp_ptr)
|
named_edit_copy (void *gdisp_ptr)
|
||||||
{
|
{
|
||||||
TileManager *new_tiles;
|
|
||||||
GDisplay *gdisp;
|
GDisplay *gdisp;
|
||||||
|
|
||||||
gdisp = (GDisplay *) gdisp_ptr;
|
gdisp = (GDisplay *) gdisp_ptr;
|
||||||
new_tiles = edit_copy (gdisp->gimage, gimage_active_drawable (gdisp->gimage));
|
|
||||||
|
query_string_box ("Copy Named", "Enter a name for this buffer", NULL,
|
||||||
if (! new_tiles)
|
copy_named_buffer_callback, gdisp);
|
||||||
return FALSE;
|
return TRUE;
|
||||||
else
|
|
||||||
{
|
|
||||||
new_named_buffer (new_tiles);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -638,15 +638,14 @@ paste_named_buffer (GDisplay *gdisp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
new_named_buffer_callback (GtkWidget *w,
|
new_named_buffer (TileManager *tiles,
|
||||||
gpointer client_data,
|
char *name)
|
||||||
gpointer call_data)
|
|
||||||
{
|
{
|
||||||
PixelRegion srcPR, destPR;
|
PixelRegion srcPR, destPR;
|
||||||
TileManager *tiles;
|
|
||||||
NamedBuffer *nb;
|
NamedBuffer *nb;
|
||||||
|
|
||||||
tiles = (TileManager *) client_data;
|
if (! tiles) return;
|
||||||
|
|
||||||
nb = (NamedBuffer *) g_malloc (sizeof (NamedBuffer));
|
nb = (NamedBuffer *) g_malloc (sizeof (NamedBuffer));
|
||||||
|
|
||||||
nb->buf = tile_manager_new (tiles->levels[0].width, tiles->levels[0].height, tiles->levels[0].bpp);
|
nb->buf = tile_manager_new (tiles->levels[0].width, tiles->levels[0].height, tiles->levels[0].bpp);
|
||||||
@ -654,56 +653,69 @@ new_named_buffer_callback (GtkWidget *w,
|
|||||||
pixel_region_init (&destPR, nb->buf, 0, 0, tiles->levels[0].width, tiles->levels[0].height, TRUE);
|
pixel_region_init (&destPR, nb->buf, 0, 0, tiles->levels[0].width, tiles->levels[0].height, TRUE);
|
||||||
copy_region (&srcPR, &destPR);
|
copy_region (&srcPR, &destPR);
|
||||||
|
|
||||||
nb->name = g_strdup ((char *) call_data);
|
nb->name = g_strdup ((char *) name);
|
||||||
named_buffers = g_slist_append (named_buffers, (void *) nb);
|
named_buffers = g_slist_append (named_buffers, (void *) nb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
new_named_buffer (TileManager *new_tiles)
|
cut_named_buffer_callback (GtkWidget *w,
|
||||||
|
gpointer client_data,
|
||||||
|
gpointer call_data)
|
||||||
{
|
{
|
||||||
/* Create the dialog box to ask for a name */
|
TileManager *new_tiles;
|
||||||
query_string_box ("Named Buffer", "Enter a name for this buffer", NULL,
|
GDisplay *gdisp;
|
||||||
new_named_buffer_callback, new_tiles);
|
char *name;
|
||||||
|
|
||||||
|
gdisp = (GDisplay *) client_data;
|
||||||
|
name = g_strdup ((char *) call_data);
|
||||||
|
|
||||||
|
new_tiles = edit_cut (gdisp->gimage, gimage_active_drawable (gdisp->gimage));
|
||||||
|
if (new_tiles)
|
||||||
|
new_named_buffer (new_tiles, name);
|
||||||
|
gdisplays_flush ();
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
named_edit_cut (void *gdisp_ptr)
|
named_edit_cut (void *gdisp_ptr)
|
||||||
{
|
{
|
||||||
TileManager *new_tiles;
|
|
||||||
GDisplay *gdisp;
|
GDisplay *gdisp;
|
||||||
|
|
||||||
/* stop any active tool */
|
/* stop any active tool */
|
||||||
gdisp = (GDisplay *) gdisp_ptr;
|
gdisp = (GDisplay *) gdisp_ptr;
|
||||||
active_tool_control (HALT, gdisp_ptr);
|
active_tool_control (HALT, gdisp_ptr);
|
||||||
|
|
||||||
new_tiles = edit_cut (gdisp->gimage, gimage_active_drawable (gdisp->gimage));
|
query_string_box ("Cut Named", "Enter a name for this buffer", NULL,
|
||||||
|
cut_named_buffer_callback, gdisp);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
if (! new_tiles)
|
static void
|
||||||
return FALSE;
|
copy_named_buffer_callback (GtkWidget *w,
|
||||||
else
|
gpointer client_data,
|
||||||
{
|
gpointer call_data)
|
||||||
new_named_buffer (new_tiles);
|
{
|
||||||
gdisplays_flush ();
|
TileManager *new_tiles;
|
||||||
return TRUE;
|
GDisplay *gdisp;
|
||||||
}
|
char *name;
|
||||||
|
|
||||||
|
gdisp = (GDisplay *) client_data;
|
||||||
|
name = g_strdup ((char *) call_data);
|
||||||
|
|
||||||
|
new_tiles = edit_copy (gdisp->gimage, gimage_active_drawable (gdisp->gimage));
|
||||||
|
if (new_tiles)
|
||||||
|
new_named_buffer (new_tiles, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
named_edit_copy (void *gdisp_ptr)
|
named_edit_copy (void *gdisp_ptr)
|
||||||
{
|
{
|
||||||
TileManager *new_tiles;
|
|
||||||
GDisplay *gdisp;
|
GDisplay *gdisp;
|
||||||
|
|
||||||
gdisp = (GDisplay *) gdisp_ptr;
|
gdisp = (GDisplay *) gdisp_ptr;
|
||||||
new_tiles = edit_copy (gdisp->gimage, gimage_active_drawable (gdisp->gimage));
|
|
||||||
|
query_string_box ("Copy Named", "Enter a name for this buffer", NULL,
|
||||||
if (! new_tiles)
|
copy_named_buffer_callback, gdisp);
|
||||||
return FALSE;
|
return TRUE;
|
||||||
else
|
|
||||||
{
|
|
||||||
new_named_buffer (new_tiles);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
Reference in New Issue
Block a user