fix splash screen

This commit is contained in:
Matthias Clasen 2006-09-08 02:25:04 +00:00
parent 022b487932
commit 7096616cc6
2 changed files with 125 additions and 2 deletions

View File

@ -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));
}

View File

@ -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 <mclasen@redhat.com> - 2.16.0-3.fc6
- Fix position of icons in the splash screen (#205508)
* Wed Sep 6 2006 Ray Strode <rstrode@redhat.com> - 2.16.0-2.fc6
- set http_proxy environment variable from GNOME settings
(bug 190041)