]> git.eshelyaron.com Git - emacs.git/commitdiff
* gtkutil.c (xg_get_image_for_pixmap): If the image is from a file,
authorJan Djärv <jan.h.d@swipnet.se>
Wed, 4 Jan 2006 21:13:49 +0000 (21:13 +0000)
committerJan Djärv <jan.h.d@swipnet.se>
Wed, 4 Jan 2006 21:13:49 +0000 (21:13 +0000)
 let GTK do all image processing.  Importing Emacs own pixmaps to GTK
 looks bad for inactive tool bar items with some Gnome themes.

src/ChangeLog
src/gtkutil.c

index 75a0dcc58905f4b9bc3e4278e4db84c9a80d8c34..b72a38da57ab23566fe18ab58762986d935a9784 100644 (file)
@@ -1,3 +1,9 @@
+2006-01-04  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
+
+       * gtkutil.c (xg_get_image_for_pixmap): If the image is from a file,
+       let GTK do all image processing.  Importing Emacs own pixmaps to GTK
+       looks bad for inactive tool bar items with some Gnome themes.
+
 2006-01-04  Eli Zaretskii  <eliz@gnu.org>
 
        * .gdbinit: Avoid a warning message when x_error_quitter is not
index cb8e5a21860cb87e2552293381a52392eee150df..ce66c5de35eda4ffc6ee57d1520226f4462c2701 100644 (file)
@@ -322,43 +322,43 @@ xg_get_image_for_pixmap (f, img, widget, old_widget)
   GdkPixmap *gmask;
   GdkDisplay *gdpy;
 
-  /* If we are on a one bit display, let GTK do all the image handling.
+  /* If we have a file, let GTK do all the image handling.
      This seems to be the only way to make insensitive and activated icons
-     look good.  */
-  if (x_screen_planes (f) == 1)
-    {
-      Lisp_Object specified_file = Qnil;
-      Lisp_Object tail;
-      extern Lisp_Object QCfile;
-
-      for (tail = XCDR (img->spec);
-          NILP (specified_file) && CONSP (tail) && CONSP (XCDR (tail));
-          tail = XCDR (XCDR (tail)))
-       if (EQ (XCAR (tail), QCfile))
-         specified_file = XCAR (XCDR (tail));
+     look good in all cases.  */
+  Lisp_Object specified_file = Qnil;
+  Lisp_Object tail;
+  extern Lisp_Object QCfile;
 
-       if (STRINGP (specified_file))
-         {
+  for (tail = XCDR (img->spec);
+       NILP (specified_file) && CONSP (tail) && CONSP (XCDR (tail));
+       tail = XCDR (XCDR (tail)))
+    if (EQ (XCAR (tail), QCfile))
+      specified_file = XCAR (XCDR (tail));
 
-           Lisp_Object file = Qnil;
-           struct gcpro gcpro1;
-           GCPRO1 (file);
+  if (STRINGP (specified_file))
+    {
+      Lisp_Object file = Qnil;
+      struct gcpro gcpro1;
+      GCPRO1 (file);
 
-           file = x_find_image_file (specified_file);
-           /* We already loaded the image once before calling this
-              function, so this should not fail.  */
-           xassert (STRINGP (file) != 0);
+      file = x_find_image_file (specified_file);
+      /* We already loaded the image once before calling this
+         function, so this should not fail.  */
+      xassert (STRINGP (file) != 0);
 
-           if (! old_widget)
-             old_widget = GTK_IMAGE (gtk_image_new_from_file (SSDATA (file)));
-           else
-             gtk_image_set_from_file (old_widget, SSDATA (file));
+      if (! old_widget)
+        old_widget = GTK_IMAGE (gtk_image_new_from_file (SSDATA (file)));
+      else
+        gtk_image_set_from_file (old_widget, SSDATA (file));
 
-           UNGCPRO;
-           return GTK_WIDGET (old_widget);
-         }
+      UNGCPRO;
+      return GTK_WIDGET (old_widget);
     }
 
+  /* No file, do the image handling ourselves.  This will look very bad
+     on a monochrome display, and sometimes bad on all displays with
+     certain themes.  */
+
   gdpy = gdk_x11_lookup_xdisplay (FRAME_X_DISPLAY (f));
   gpix = gdk_pixmap_foreign_new_for_display (gdpy, img->pixmap);
   gmask = img->mask ? gdk_pixmap_foreign_new_for_display (gdpy, img->mask) : 0;