lc_dialog.c

Fri Jun 25 22:09:04 BST 1999 Andy Thomas <alt@gimp.org>

	* lc_dialog.c

	Fixed problem when preview sizes are changed in L&C&P
	dialog and then the busy cursors stuff tried to change
	the cursor on a dialog that has been removed. (ie
	the LCP dialog should be unregistered when it is destroyed)

	Small previews in LCP dialog image menu do not get created when 		no preview preference is set.
This commit is contained in:
BST 1999 Andy Thomas 1999-06-25 21:19:58 +00:00 committed by Andy Thomas
parent bb0fa4ef9a
commit 9c5f39c191
2 changed files with 53 additions and 30 deletions

View File

@ -1,3 +1,14 @@
Fri Jun 25 22:09:04 BST 1999 Andy Thomas <alt@gimp.org>
* lc_dialog.c
Fixed problem when preview sizes are changed in L&C&P
dialog and then the busy cursors stuff tried to change
the cursor on a dialog that has been removed. (ie
the LCP dialog should be unregistered when it is destroyed)
Small previews in LCP dialog image menu do not get created when no preview preference is set.
Thu Jun 24 18:13:35 PDT 1999 Manish Singh <yosh@gimp.org>
* plug-ins/common/mkgen.pl

View File

@ -256,6 +256,8 @@ lc_dialog_rebuild (int new_preview_size)
{
flag = 1;
gimage = lc_dialog->gimage;
/* Unregister the dialog */
dialog_unregister (lc_dialog->shell);
lc_dialog_free ();
}
@ -292,14 +294,18 @@ void
lc_dialog_menu_preview_dirty (GtkObject *obj,
gpointer client_data)
{
if(!preview_size)
return;
/* Update preview at a less busy time */
/* printf("menu_preview_dirty:: adding %p to obj %p\n",client_data,obj); */
gtk_idle_add((GtkFunction)image_menu_preview_update_do,(gpointer)obj);
}
void
lc_dialog_preview_update(GimpImage *gimage)
{
if(!preview_size)
return;
layers_dialog_invalidate_previews(gimage);
gtk_idle_add((GtkFunction)image_menu_preview_update_do,gimage);
}
@ -566,40 +572,46 @@ lc_dialog_create_image_menu_cb (gpointer im,
gtk_container_add (GTK_CONTAINER (menu_item), hbox);
gtk_widget_show(hbox);
vbox = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
gtk_widget_show(vbox);
wcolor_box = gtk_preview_new(GTK_PREVIEW_COLOR);
gtk_preview_set_dither (GTK_PREVIEW (wcolor_box), GDK_RGB_DITHER_MAX);
lc_dialog_fill_preview_with_thumb(wcolor_box,
gimage,
MENU_THUMBNAIL_WIDTH,
MENU_THUMBNAIL_HEIGHT);
gtk_widget_set_usize( GTK_WIDGET (wcolor_box) ,
MENU_THUMBNAIL_WIDTH ,
MENU_THUMBNAIL_HEIGHT);
gtk_container_add(GTK_CONTAINER(vbox), wcolor_box);
gtk_widget_show(wcolor_box);
if(preview_size)
{
vbox = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
gtk_widget_show(vbox);
wcolor_box = gtk_preview_new(GTK_PREVIEW_COLOR);
gtk_preview_set_dither (GTK_PREVIEW (wcolor_box), GDK_RGB_DITHER_MAX);
lc_dialog_fill_preview_with_thumb(wcolor_box,
gimage,
MENU_THUMBNAIL_WIDTH,
MENU_THUMBNAIL_HEIGHT);
gtk_widget_set_usize( GTK_WIDGET (wcolor_box) ,
MENU_THUMBNAIL_WIDTH ,
MENU_THUMBNAIL_HEIGHT);
gtk_container_add(GTK_CONTAINER(vbox), wcolor_box);
gtk_widget_show(wcolor_box);
if(gtk_object_get_data(GTK_OBJECT (gimage),"menu_preview_dirty") == NULL)
{
/* Only add this signal once */
gtk_object_set_data(GTK_OBJECT (gimage),"menu_preview_dirty",(gpointer)1);
gtk_signal_connect_after (GTK_OBJECT (gimage), "dirty",
GTK_SIGNAL_FUNC(lc_dialog_menu_preview_dirty),NULL);
}
gtk_object_set_data(GTK_OBJECT(menu_item),"menu_preview",wcolor_box);
gtk_object_set_data(GTK_OBJECT(menu_item),"menu_preview_gimage",gimage);
}
gtk_container_add (GTK_CONTAINER (data->menu), menu_item);
wlabel = gtk_label_new(menu_item_label);
gtk_misc_set_alignment(GTK_MISC(wlabel), 0.0, 0.5);
gtk_box_pack_start(GTK_BOX(hbox), wlabel, TRUE, TRUE, 4);
gtk_widget_show(wlabel);
gtk_container_add (GTK_CONTAINER (data->menu), menu_item);
if(gtk_object_get_data(GTK_OBJECT (gimage),"menu_preview_dirty") == NULL)
{
/* Only add this signal once */
gtk_object_set_data(GTK_OBJECT (gimage),"menu_preview_dirty",(gpointer)1);
gtk_signal_connect_after (GTK_OBJECT (gimage), "dirty",
GTK_SIGNAL_FUNC(lc_dialog_menu_preview_dirty),NULL);
}
gtk_object_set_data(GTK_OBJECT(menu_item),"menu_preview",wcolor_box);
gtk_object_set_data(GTK_OBJECT(menu_item),"menu_preview_gimage",gimage);
gtk_widget_show (menu_item);