[Commits] [SCM] claws branch, master, updated. 3.18.0-348-g59cc913fa

paul at claws-mail.org paul at claws-mail.org
Thu Mar 24 11:28:22 UTC 2022


The branch, master has been updated
       via  59cc913fa7c8ba77b3fec9f2c0ffdca324702c3d (commit)
      from  0dea882a3af437fb71a169445904966a758a7b3e (commit)

Summary of changes:
 src/gtk/about.c    |  4 +--
 src/gtk/gtkutils.c |  8 ++---
 src/main.c         |  6 ++--
 src/stock_pixmap.c | 86 +++++++++++++++++++++++++++++++++++++++++++++---------
 src/stock_pixmap.h | 20 +++++++++----
 src/wizard.c       | 10 +++----
 6 files changed, 102 insertions(+), 32 deletions(-)


- Log -----------------------------------------------------------------
commit 59cc913fa7c8ba77b3fec9f2c0ffdca324702c3d
Author: Paul <paul at claws-mail.org>
Date:   Thu Mar 24 11:28:17 2022 +0000

    prevent claws-mail logo from being themed

diff --git a/src/gtk/about.c b/src/gtk/about.c
index 43f632dde..0e55dee34 100644
--- a/src/gtk/about.c
+++ b/src/gtk/about.c
@@ -1,5 +1,5 @@
 /*
- * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
+ * Claws Mail -- a GTK based, lightweight, and fast e-mail client
  * Copyright (C) 1999-2022 the Claws Mail team and Hiroyuki Yamamoto
  *
  * This program is free software; you can redistribute it and/or modify
@@ -830,7 +830,7 @@ static void about_create(void)
 	gtk_table_set_row_spacings (GTK_TABLE (table), 8);
 	gtk_table_set_col_spacings (GTK_TABLE (table), 8);
 
-	image = stock_pixmap_widget(STOCK_PIXMAP_CLAWS_MAIL_LOGO);
+	image = priv_pixmap_widget(PRIV_PIXMAP_CLAWS_MAIL_LOGO);
 	gtk_table_attach (GTK_TABLE (table), image, 0, 1, 0, 1,
 			(GtkAttachOptions) (GTK_EXPAND),
 			(GtkAttachOptions) (0), 0, 0);
diff --git a/src/gtk/gtkutils.c b/src/gtk/gtkutils.c
index e77450f79..1f4171dea 100644
--- a/src/gtk/gtkutils.c
+++ b/src/gtk/gtkutils.c
@@ -1,6 +1,6 @@
 /*
- * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2021 the Claws Mail team and Hiroyuki Yamamoto
+ * Claws Mail -- a GTK based, lightweight, and fast e-mail client
+ * Copyright (C) 1999-2022 the Claws Mail team and Hiroyuki Yamamoto
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -714,8 +714,8 @@ void gtkut_widget_set_app_icon(GtkWidget *widget)
 	cm_return_if_fail(gtk_widget_get_window(widget) != NULL);
 	if (!icon_list) {
 		GdkPixbuf *icon = NULL, *big_icon = NULL;
-		stock_pixbuf_gdk(STOCK_PIXMAP_CLAWS_MAIL_ICON, &icon);
-		stock_pixbuf_gdk(STOCK_PIXMAP_CLAWS_MAIL_LOGO, &big_icon);
+		priv_pixbuf_gdk(PRIV_PIXMAP_CLAWS_MAIL_ICON, &icon);
+		priv_pixbuf_gdk(PRIV_PIXMAP_CLAWS_MAIL_LOGO, &big_icon);
 		if (icon)
 			icon_list = g_list_append(icon_list, icon);
 		if (big_icon)
diff --git a/src/main.c b/src/main.c
index b074ba145..f844abb9d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,6 +1,6 @@
 /*
- * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2016 Hiroyuki Yamamoto and the Claws Mail team
+ * Claws Mail -- a GTK based, lightweight, and fast e-mail client
+ * Copyright (C) 1999-2022 the Claws Mail team and Hiroyuki Yamamoto
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -1362,7 +1362,7 @@ int main(int argc, char *argv[])
 	}
 #endif
 	gtkut_widget_init();
-	stock_pixbuf_gdk(STOCK_PIXMAP_CLAWS_MAIL_ICON, &icon);
+	priv_pixbuf_gdk(PRIV_PIXMAP_CLAWS_MAIL_ICON, &icon);
 	gtk_window_set_default_icon(icon);
 
 	folderview_initialize();
diff --git a/src/stock_pixmap.c b/src/stock_pixmap.c
index d78e95a30..1cfce521b 100644
--- a/src/stock_pixmap.c
+++ b/src/stock_pixmap.c
@@ -1,6 +1,6 @@
 /*
- * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2016 Hiroyuki Yamamoto and the Claws Mail team
+ * Claws Mail -- a GTK based, lightweight, and fast e-mail client
+ * Copyright (C) 1999-2022 the Claws Mail team and Hiroyuki Yamamoto
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -236,6 +236,18 @@
 #include "pixmaps/mark_read.xpm"
 #include "pixmaps/mark_unread.xpm"
 
+typedef struct _PrivPixmapData	PrivPixmapData;
+
+struct _PrivPixmapData
+{
+	gchar **data;
+	cairo_surface_t *pixmap;
+	cairo_pattern_t *mask;
+	gchar *file;
+	gchar *icon_path;
+	GdkPixbuf *pixbuf;
+};
+
 typedef struct _StockPixmapData	StockPixmapData;
 
 struct _StockPixmapData
@@ -252,10 +264,6 @@ typedef struct _OverlayData OverlayData;
 
 struct _OverlayData
 {
-	gboolean is_pixmap;
-	cairo_surface_t *base_pixmap;
-	cairo_surface_t *overlay_pixmap;
-
 	GdkPixbuf *base_pixbuf;
 	GdkPixbuf *overlay_pixbuf;
 
@@ -271,6 +279,18 @@ struct _OverlayData
 
 static void stock_pixmap_find_themes_in_dir(GList **list, const gchar *dirname);
 
+static PrivPixmapData privpixmaps[] =
+{
+    {claws_mail_icon_xpm              , NULL, NULL, "claws_mail_icon", NULL, NULL},
+    {claws_mail_icon_64_xpm           , NULL, NULL, "claws_mail_icon_64", NULL, NULL},
+#ifndef GENERIC_UMPC
+    {claws_mail_logo_xpm              , NULL, NULL, "claws_mail_logo", NULL, NULL},
+#else
+    {claws_mail_logo_small_xpm        , NULL, NULL, "claws_mail_logo_small", NULL, NULL},
+#endif
+    {empty_xpm                        , NULL, NULL, "empty", NULL, NULL}
+};
+
 static StockPixmapData pixmaps[] =
 {
     {addr_one_xpm                     , NULL, NULL, "addr_one", NULL, NULL},
@@ -412,19 +432,12 @@ static StockPixmapData pixmaps[] =
     {privacy_emblem_failed_xpm        , NULL, NULL, "privacy_emblem_failed", NULL, NULL},
     {privacy_emblem_warn_xpm          , NULL, NULL, "privacy_emblem_warn", NULL, NULL},
     {mime_message_xpm                 , NULL, NULL, "mime_message", NULL, NULL},
-    {claws_mail_icon_xpm              , NULL, NULL, "claws_mail_icon", NULL, NULL},
-    {claws_mail_icon_64_xpm           , NULL, NULL, "claws_mail_icon_64", NULL, NULL},
     {read_xpm                         , NULL, NULL, "read", NULL, NULL},
     {delete_btn_xpm                   , NULL, NULL, "delete_btn", NULL, NULL},
     {delete_dup_btn_xpm               , NULL, NULL, "delete_dup_btn", NULL, NULL},
     {cancel_xpm                       , NULL, NULL, "cancel", NULL, NULL},
     {trash_btn_xpm                    , NULL, NULL, "trash_btn", NULL, NULL},
     {claws_mail_compose_logo_xpm      , NULL, NULL, "claws_mail_compose_logo", NULL, NULL},
-#ifndef GENERIC_UMPC
-    {claws_mail_logo_xpm              , NULL, NULL, "claws_mail_logo", NULL, NULL},
-#else
-    {claws_mail_logo_small_xpm        , NULL, NULL, "claws_mail_logo_small", NULL, NULL},
-#endif
     {dir_noselect_close_xpm           , NULL, NULL, "dir_noselect_close", NULL, NULL},
     {dir_noselect_close_mark_xpm      , NULL, NULL, "dir_noselect_close_mark", NULL, NULL},
     {dir_noselect_open_xpm            , NULL, NULL, "dir_noselect_open", NULL, NULL},
@@ -491,6 +504,18 @@ const char **stock_pixmap_theme_extensions(void)
 }
 
 /* return newly constructed GtkPixmap from GdkPixmap */
+GtkWidget *priv_pixmap_widget(PrivPixmap icon)
+{
+	GdkPixbuf *pixbuf;
+
+	cm_return_val_if_fail(icon < N_PRIV_PIXMAPS, NULL);
+
+	if (priv_pixbuf_gdk(icon, &pixbuf) != -1)
+		return gtk_image_new_from_pixbuf(pixbuf);
+
+	return NULL;
+}
+
 GtkWidget *stock_pixmap_widget(StockPixmap icon)
 {
 	GdkPixbuf *pixbuf;
@@ -680,6 +705,30 @@ GdkPixbuf *pixbuf_from_svg_like_icon(char *filename, GError **error, StockPixmap
 /*!
  *\brief
  */
+gint priv_pixbuf_gdk(PrivPixmap icon, GdkPixbuf **pixbuf)
+{
+	PrivPixmapData *pix_d;
+
+	if (pixbuf)
+		*pixbuf = NULL;
+
+	cm_return_val_if_fail(icon < N_PRIV_PIXMAPS, -1);
+
+	pix_d = &privpixmaps[icon];
+
+	if (!pix_d->pixbuf)
+		pix_d->pixbuf = gdk_pixbuf_new_from_xpm_data((const gchar **) pix_d->data);
+
+	cm_return_val_if_fail(pix_d->pixbuf != NULL, -1);
+
+	if (pixbuf)
+		*pixbuf = pix_d->pixbuf;
+
+	/* pixbuf should have one ref outstanding */
+
+	return 0;
+}
+
 gint stock_pixbuf_gdk(StockPixmap icon, GdkPixbuf **pixbuf)
 {
 	StockPixmapData *pix_d;
@@ -882,6 +931,17 @@ gchar *stock_pixmap_get_name (StockPixmap icon)
 
 }
 
+PrivPixmap priv_pixmap_get_icon (gchar *file)
+{
+	gint i;
+
+	for (i = 0; i < N_PRIV_PIXMAPS; i++) {
+		if (strcmp (pixmaps[i].file, file) == 0)
+			return i;
+	}
+	return -1;
+}
+
 StockPixmap stock_pixmap_get_icon (gchar *file)
 {
 	gint i;
diff --git a/src/stock_pixmap.h b/src/stock_pixmap.h
index 24538e2af..35565933a 100644
--- a/src/stock_pixmap.h
+++ b/src/stock_pixmap.h
@@ -1,6 +1,6 @@
 /*
- * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2016 Hiroyuki Yamamoto and the Claws Mail team
+ * Claws Mail -- a GTK based, lightweight, and fast e-mail client
+ * Copyright (C) 1999-2022 the Claws Mail team and Hiroyuki Yamamoto
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,6 +22,15 @@
 #include <glib.h>
 #include <gtk/gtk.h>
 
+typedef enum
+{
+	PRIV_PIXMAP_CLAWS_MAIL_ICON,
+	PRIV_PIXMAP_CLAWS_MAIL_ICON_64,
+	PRIV_PIXMAP_CLAWS_MAIL_LOGO,
+	PRIV_PIXMAP_EMPTY,              /* last entry */
+	N_PRIV_PIXMAPS
+} PrivPixmap;
+
 typedef enum
 {
 	STOCK_PIXMAP_ADDR_ONE,
@@ -163,15 +172,12 @@ typedef enum
 	STOCK_PIXMAP_PRIVACY_EMBLEM_FAILED,
 	STOCK_PIXMAP_PRIVACY_EMBLEM_WARN,
 	STOCK_PIXMAP_MIME_MESSAGE,
-	STOCK_PIXMAP_CLAWS_MAIL_ICON,
-	STOCK_PIXMAP_CLAWS_MAIL_ICON_64,
 	STOCK_PIXMAP_READ,
 	STOCK_PIXMAP_DELETE,
 	STOCK_PIXMAP_DELETE_DUP,
 	STOCK_PIXMAP_CANCEL,
 	STOCK_PIXMAP_TRASH,
 	STOCK_PIXMAP_MAIL_COMPOSE_LOGO,
-	STOCK_PIXMAP_CLAWS_MAIL_LOGO,
 	STOCK_PIXMAP_DIR_NOSELECT_CLOSE, 
 	STOCK_PIXMAP_DIR_NOSELECT_CLOSE_MARK, 
 	STOCK_PIXMAP_DIR_NOSELECT_OPEN, 
@@ -235,6 +241,10 @@ typedef enum {
 	OVERLAY_BOTTOM_RIGHT
 } OverlayPosition;
 
+GtkWidget *priv_pixmap_widget	(PrivPixmap	  icon);
+PrivPixmap priv_pixmap_get_icon    (gchar *file);
+gint priv_pixbuf_gdk		(PrivPixmap icon, GdkPixbuf **pixbuf);
+
 GtkWidget *stock_pixmap_widget	(StockPixmap	  icon);
 gint stock_pixbuf_gdk		(StockPixmap icon, GdkPixbuf **pixbuf);
 
diff --git a/src/wizard.c b/src/wizard.c
index 743cc4448..0c1d4e7c1 100644
--- a/src/wizard.c
+++ b/src/wizard.c
@@ -1,6 +1,6 @@
 /*
- * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2021 the Claws Mail team and Colin Leroy
+ * Claws Mail -- a GTK based, lightweight, and fast e-mail client
+ * Copyright (C) 1999-2022 the Claws Mail team and Colin Leroy
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -848,7 +848,7 @@ static GtkWidget* create_page (WizardWindow *wizard, const char * title)
 
 	/* create the titlebar */
 	hbox = gtk_hbox_new (FALSE, 12);
-	image = stock_pixmap_widget(STOCK_PIXMAP_CLAWS_MAIL_ICON);
+	image = priv_pixmap_widget(PRIV_PIXMAP_CLAWS_MAIL_ICON);
 	gtk_box_pack_start (GTK_BOX(hbox), image, FALSE, FALSE, 0);
      	title_string = g_strconcat ("<span size=\"xx-large\" weight=\"ultrabold\">", title ? title : "", "</span>", NULL);
 	w = gtk_label_new (title_string);
@@ -1821,7 +1821,7 @@ gboolean run_wizard(MainWindow *mainwin, gboolean create_mailbox) {
 	page = create_page(wizard, _("Welcome to Claws Mail"));
 	
 	wizard->pages = g_slist_append(wizard->pages, page);
-	widget = stock_pixmap_widget(STOCK_PIXMAP_CLAWS_MAIL_LOGO);
+	widget = priv_pixmap_widget(PRIV_PIXMAP_CLAWS_MAIL_LOGO);
 
 	gtk_box_pack_start (GTK_BOX(page), widget, FALSE, FALSE, 0);
 	
@@ -1903,7 +1903,7 @@ gboolean run_wizard(MainWindow *mainwin, gboolean create_mailbox) {
 	page = create_page(wizard, _("Configuration finished"));
 	
 	wizard->pages = g_slist_append(wizard->pages, page);
-	widget = stock_pixmap_widget(STOCK_PIXMAP_CLAWS_MAIL_LOGO);
+	widget = priv_pixmap_widget(PRIV_PIXMAP_CLAWS_MAIL_LOGO);
 
 	gtk_box_pack_start (GTK_BOX(page), widget, FALSE, FALSE, 0);
 	

-----------------------------------------------------------------------


hooks/post-receive
-- 
Claws Mail


More information about the Commits mailing list