changeset 31650:8b3846ae64fe

(build_desired_tool_bar_string): For a toolbar item in disabled state, don't apply an image transformation algorithm if the user specified an image for the disabled state. Use `:algorthm disabled' for creating a disabled item's image if the user hasn't specified an image.
author Gerd Moellmann <gerd@gnu.org>
date Fri, 15 Sep 2000 21:01:14 +0000
parents fe990a5df9d3
children aef83f9e7dac
files src/xdisp.c
diffstat 1 files changed, 10 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Fri Sep 15 21:00:32 2000 +0000
+++ b/src/xdisp.c	Fri Sep 15 21:01:14 2000 +0000
@@ -6846,7 +6846,7 @@
 
       int enabled_p = !NILP (PROP (TOOL_BAR_ITEM_ENABLED_P));
       int selected_p = !NILP (PROP (TOOL_BAR_ITEM_SELECTED_P));
-      int margin, relief;
+      int margin, relief, idx;
       extern Lisp_Object QCrelief, QCmargin, QCalgorithm, Qimage;
       extern Lisp_Object Qlaplace;
 
@@ -6855,8 +6855,6 @@
       image = PROP (TOOL_BAR_ITEM_IMAGES);
       if (VECTORP (image))
 	{
-	  enum tool_bar_item_image idx;
-	  
 	  if (enabled_p)
 	    idx = (selected_p
 		   ? TOOL_BAR_IMAGE_ENABLED_SELECTED
@@ -6866,9 +6864,11 @@
 		   ? TOOL_BAR_IMAGE_DISABLED_SELECTED
 		   : TOOL_BAR_IMAGE_DISABLED_DESELECTED);
 	  
-	  xassert (XVECTOR (image)->size >= idx);
-	  image = XVECTOR (image)->contents[idx];
-	}
+	  xassert (ASIZE (image) >= idx);
+	  image = AREF (image, idx);
+	}
+      else
+	idx = -1;
 
       /* Ignore invalid image specifications.  */
       if (!valid_image_p (image))
@@ -6907,10 +6907,11 @@
       if (margin)
 	plist = Fplist_put (plist, QCmargin, make_number (margin));
 	  
-      /* If button is not enabled, make the image appear disabled by
+      /* If button is not enabled, and we don't have special images
+	 for the disabled state, make the image appear disabled by
 	 applying an appropriate algorithm to it.  */
-      if (!enabled_p)
-	plist = Fplist_put (plist, QCalgorithm, Qlaplace);
+      if (!enabled_p && idx < 0)
+	plist = Fplist_put (plist, QCalgorithm, Qdisabled);
       
       /* Put a `display' text property on the string for the image to
 	 display.  Put a `menu-item' property on the string that gives