From 9c5f39c1911c18366f3f00007a25e7d456a6d4e6 Mon Sep 17 00:00:00 2001 From: BST 1999 Andy Thomas Date: Fri, 25 Jun 1999 21:19:58 +0000 Subject: [PATCH] lc_dialog.c Fri Jun 25 22:09:04 BST 1999 Andy Thomas * 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. --- ChangeLog | 11 ++++++++ app/lc_dialog.c | 72 ++++++++++++++++++++++++++++--------------------- 2 files changed, 53 insertions(+), 30 deletions(-) diff --git a/ChangeLog b/ChangeLog index b36a3d6bc7..d3a9089fcb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Fri Jun 25 22:09:04 BST 1999 Andy Thomas + + * 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 * plug-ins/common/mkgen.pl diff --git a/app/lc_dialog.c b/app/lc_dialog.c index 67a5071a5a..5db4dfe5df 100644 --- a/app/lc_dialog.c +++ b/app/lc_dialog.c @@ -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);