summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/dialogs/about.c45
1 files changed, 39 insertions, 6 deletions
diff --git a/src/gui/dialogs/about.c b/src/gui/dialogs/about.c
index 7868e19..b594d06 100644
--- a/src/gui/dialogs/about.c
+++ b/src/gui/dialogs/about.c
@@ -41,6 +41,9 @@
/* Réagit à l'appui d'une touche sur la fenêtre 'A propos'. */
static gboolean close_about_window_on_escape(GtkWidget *, GdkEventKey *, gpointer);
+/* Dessine un fond adapté pour la fenêtre sans toucher au thème. */
+static gboolean draw_black_background(GtkWidget *, cairo_t *, gpointer);
+
/******************************************************************************
@@ -58,7 +61,6 @@ static gboolean close_about_window_on_escape(GtkWidget *, GdkEventKey *, gpointe
GtkWidget *create_about_dialog(GtkWindow *parent)
{
GtkWidget *result; /* Fenêtre à renvoyer */
- GdkRGBA color; /* Couleur de fond noire */
GtkWidget *fixed; /* Support global */
gchar *filename; /* Chemin d'accès au fichier */
GtkWidget *image; /* Image chargée */
@@ -79,13 +81,12 @@ GtkWidget *create_about_dialog(GtkWindow *parent)
g_signal_connect(result, "key_press_event", G_CALLBACK(close_about_window_on_escape), NULL);
- gdk_rgba_parse(&color, "black");
- gtk_widget_override_background_color(GTK_WIDGET(result), GTK_STATE_FLAG_NORMAL, &color);
-
fixed = gtk_fixed_new();
gtk_widget_show(fixed);
gtk_container_add(GTK_CONTAINER(result), fixed);
+ g_signal_connect(fixed, "draw", G_CALLBACK(draw_black_background), NULL);
+
/* Images principales */
filename = find_pixmap_file("chrysalide-full.png");
@@ -138,13 +139,13 @@ GtkWidget *create_about_dialog(GtkWindow *parent)
/******************************************************************************
* *
-* Paramètres : window = fenêtre visée par la procédure. *
+* Paramètres : widget = fenêtre visée par la procédure. *
* event = informations liées à l'événement. *
* dummy = donnée non utilisée ici. *
* *
* Description : Réagit à l'appui d'une touche sur la fenêtre 'A propos'. *
* *
-* Retour : TRUE pour poursuivre la propagation, FALSE autrement. *
+* Retour : TRUE pour interrompre la propagation, FALSE autrement. *
* *
* Remarques : - *
* *
@@ -164,3 +165,35 @@ static gboolean close_about_window_on_escape(GtkWidget *widget, GdkEventKey *eve
return result;
}
+
+
+/******************************************************************************
+* *
+* Paramètres : widget = fenêtre visée par la procédure. *
+* event = informations liées à l'événement. *
+* dummy = donnée non utilisée ici. *
+* *
+* Description : Dessine un fond adapté pour la fenêtre sans toucher au thème.*
+* *
+* Retour : TRUE pour interrompre la propagation, FALSE autrement. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static gboolean draw_black_background(GtkWidget *widget, cairo_t *cr, gpointer dummy)
+{
+ int width; /* Largeur du composant */
+ int height; /* Hauteur du composant */
+
+ width = gtk_widget_get_allocated_width(widget);
+ height = gtk_widget_get_allocated_height(widget);
+
+ cairo_set_source_rgb(cr, 0.0, 0.0, 0.0);
+
+ cairo_rectangle(cr, 0, 0, width, height);
+ cairo_fill(cr);
+
+ return FALSE;
+
+}