From 7096616cc65369e9817f832111fcf3e3c48f1abe Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 8 Sep 2006 02:25:04 +0000 Subject: [PATCH] fix splash screen --- gnome-session-2.16.0-shaped.patch | 120 ++++++++++++++++++++++++++++++ gnome-session.spec | 7 +- 2 files changed, 125 insertions(+), 2 deletions(-) create mode 100644 gnome-session-2.16.0-shaped.patch diff --git a/gnome-session-2.16.0-shaped.patch b/gnome-session-2.16.0-shaped.patch new file mode 100644 index 0000000..4a4698b --- /dev/null +++ b/gnome-session-2.16.0-shaped.patch @@ -0,0 +1,120 @@ +--- gnome-session-2.12.0/gnome-session/splash-widget.h.shaped 2005-08-08 03:35:13.000000000 -0400 ++++ gnome-session-2.12.0/gnome-session/splash-widget.h 2006-01-12 02:19:59.000000000 -0500 +@@ -36,7 +36,6 @@ + GnomeIconTheme *icon_theme; + + GdkPixbuf *background; +- GdkPixmap *bg_pixmap; + GList *icons; + PangoLayout *layout; + PangoAttribute *font_size_attr; +@@ -66,13 +65,13 @@ + #define SPLASH_BASE_HEIGHT 220 + + /* offset from bottom of label & font */ +-#define SPLASH_LABEL_V_OFFSET 3 ++#define SPLASH_LABEL_V_OFFSET 18 + #define SPLASH_LABEL_FONT_SIZE 8 + + /* icon border, spacing, offset from bottom and initial size */ +-#define SPLASH_ICON_BORDER 8 ++#define SPLASH_ICON_BORDER 26 + #define SPLASH_ICON_SPACING 4 +-#define SPLASH_ICON_V_OFFSET 14 ++#define SPLASH_ICON_V_OFFSET 28 + #define SPLASH_BASE_ICON_SIZE 36 + #define SPLASH_BASE_ICON_ROWS 1 + +--- gnome-session-2.12.0/gnome-session/splash-widget.c.shaped 2006-01-12 02:19:59.000000000 -0500 ++++ gnome-session-2.12.0/gnome-session/splash-widget.c 2006-01-12 02:22:28.000000000 -0500 +@@ -137,16 +137,6 @@ + if (!GTK_WIDGET_DRAWABLE (widget)) + return FALSE; + +- if (gdk_rectangle_intersect ( +- &event->area, &sw->image_bounds, &exposed)) +- gdk_draw_drawable ( +- GDK_DRAWABLE (widget->window), +- widget->style->black_gc, +- GDK_DRAWABLE (sw->bg_pixmap), +- exposed.x, exposed.y, +- exposed.x, exposed.y, +- exposed.width, exposed.height); +- + for (l = sw->icons; l; l = l->next) { + SplashIcon *si = l->data; + +@@ -221,33 +211,42 @@ + static void + splash_widget_realize (GtkWidget *widget) + { +- GdkPixmap *pm; + SplashWidget *sw = (SplashWidget *) widget; + + GNOME_CALL_PARENT (GTK_WIDGET_CLASS, realize, (widget)); + + if (sw->background && widget->window) { +- int width, height; ++ GdkPixmap *pixmap; ++ GdkBitmap *mask; ++ GdkColormap *colormap; + +- width = gdk_pixbuf_get_width (sw->background); +- height = gdk_pixbuf_get_height (sw->background); ++ pixmap = NULL; ++ mask = NULL; + +- pm = gdk_pixmap_new ( +- widget->window, +- width, height, +- gdk_drawable_get_visual (widget->window)->depth); ++ colormap = gtk_widget_get_colormap (widget); ++ gdk_pixbuf_render_pixmap_and_mask_for_colormap (sw->background, ++ colormap, ++ &pixmap, &mask, ++ 125); + +- if (pm) { +- gdk_pixbuf_render_to_drawable ( +- sw->background, GDK_DRAWABLE (pm), +- widget->style->black_gc, +- 0, 0, 0, 0, width, height, +- GDK_RGB_DITHER_MAX, +- 0, 0); +- +- gdk_window_set_back_pixmap ( +- widget->window, pm, FALSE); +- sw->bg_pixmap = pm; ++ if (pixmap) { ++ GtkStyle *style; ++ ++ style = gtk_style_copy (widget->style); ++ style->bg_pixmap[GTK_STATE_NORMAL] = pixmap; ++ ++ gtk_widget_set_style (widget, style); ++ g_object_unref (style); ++ ++ if (mask) { ++ gdk_window_shape_combine_mask (widget->window, ++ mask, 0, 0); ++ ++ g_object_unref (mask); ++ } ++ ++ gtk_style_set_background (widget->style, widget->window, ++ GTK_STATE_NORMAL); + } + } + } +@@ -257,11 +256,6 @@ + { + SplashWidget *sw = (SplashWidget *) widget; + +- if (sw->bg_pixmap) { +- g_object_unref (sw->bg_pixmap); +- sw->bg_pixmap = NULL; +- } +- + GNOME_CALL_PARENT (GTK_WIDGET_CLASS, unrealize, (widget)); + } + diff --git a/gnome-session.spec b/gnome-session.spec index f14369b..684798b 100644 --- a/gnome-session.spec +++ b/gnome-session.spec @@ -14,7 +14,7 @@ Summary: GNOME session manager Name: gnome-session Version: 2.16.0 -Release: 2%{?dist} +Release: 3%{?dist} URL: http://www.gnome.org Source0: %{name}-%{version}.tar.bz2 Source1: redhat-default-session @@ -48,7 +48,7 @@ Patch6: gnome-session-2.9.4-gnome-common.patch Patch7: gnome-session-2.13.92-user-share.patch # do shaped window for splash screen -Patch8: gnome-session-2.12.0-shaped.patch +Patch8: gnome-session-2.16.0-shaped.patch # too much crashing Patch9: gnome-session-2.13.4-no-crashes.patch @@ -185,6 +185,9 @@ fi %{_datadir}/gnome/autostart %changelog +* Thu Sep 7 2006 Matthias Clasen - 2.16.0-3.fc6 +- Fix position of icons in the splash screen (#205508) + * Wed Sep 6 2006 Ray Strode - 2.16.0-2.fc6 - set http_proxy environment variable from GNOME settings (bug 190041)