- Make panel slide in initially like the gnome panel
This commit is contained in:
parent
bbd9bfd155
commit
e7fc0bd8e6
127
gdm-2.24.0-add-panel-slide.patch
Normal file
127
gdm-2.24.0-add-panel-slide.patch
Normal file
@ -0,0 +1,127 @@
|
||||
diff -up gdm-2.24.0/gui/simple-greeter/gdm-greeter-panel.c.add-panel-slide gdm-2.24.0/gui/simple-greeter/gdm-greeter-panel.c
|
||||
--- gdm-2.24.0/gui/simple-greeter/gdm-greeter-panel.c.add-panel-slide 2008-08-21 00:31:47.000000000 -0400
|
||||
+++ gdm-2.24.0/gui/simple-greeter/gdm-greeter-panel.c 2008-09-30 23:02:34.000000000 -0400
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
+#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/time.h>
|
||||
@@ -40,6 +41,7 @@
|
||||
#include "gdm-language-option-widget.h"
|
||||
#include "gdm-layout-option-widget.h"
|
||||
#include "gdm-session-option-widget.h"
|
||||
+#include "gdm-timer.h"
|
||||
#include "gdm-profile.h"
|
||||
|
||||
#include "na-tray.h"
|
||||
@@ -59,6 +61,9 @@ struct GdmGreeterPanelPrivate
|
||||
GtkWidget *layout_option_widget;
|
||||
GtkWidget *session_option_widget;
|
||||
|
||||
+ GdmTimer *animation_timer;
|
||||
+ double progress;
|
||||
+
|
||||
char *default_session_name;
|
||||
char *default_language_name;
|
||||
};
|
||||
@@ -349,7 +354,7 @@ update_geometry (GdmGreeterPanel *panel,
|
||||
panel->priv->geometry.height = requisition->height + 2 * GTK_CONTAINER (panel)->border_width;
|
||||
|
||||
panel->priv->geometry.x = geometry.x;
|
||||
- panel->priv->geometry.y = geometry.y + geometry.height - panel->priv->geometry.height;
|
||||
+ panel->priv->geometry.y = geometry.y + geometry.height - panel->priv->geometry.height + (1.0 - panel->priv->progress) * panel->priv->geometry.height;
|
||||
|
||||
#if 0
|
||||
g_debug ("Setting geometry x:%d y:%d w:%d h:%d",
|
||||
@@ -402,6 +407,39 @@ gdm_greeter_panel_real_size_request (Gtk
|
||||
|
||||
gdm_greeter_panel_move_resize_window (panel, position_changed, size_changed);
|
||||
}
|
||||
+static void
|
||||
+gdm_greeter_panel_real_show (GtkWidget *widget)
|
||||
+{
|
||||
+ GdmGreeterPanel *panel;
|
||||
+ GtkSettings *settings;
|
||||
+ gboolean animations_are_enabled;
|
||||
+
|
||||
+ settings = gtk_settings_get_for_screen (gtk_widget_get_screen (widget));
|
||||
+ g_object_get (settings, "gtk-enable-animations", &animations_are_enabled, NULL);
|
||||
+
|
||||
+ panel = GDM_GREETER_PANEL (widget);
|
||||
+
|
||||
+ if (animations_are_enabled) {
|
||||
+ gdm_timer_start (panel->priv->animation_timer, 1.0);
|
||||
+ } else {
|
||||
+ panel->priv->progress = 1.0;
|
||||
+ }
|
||||
+
|
||||
+ GTK_WIDGET_CLASS (gdm_greeter_panel_parent_class)->show (widget);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+gdm_greeter_panel_real_hide (GtkWidget *widget)
|
||||
+{
|
||||
+ GdmGreeterPanel *panel;
|
||||
+
|
||||
+ panel = GDM_GREETER_PANEL (widget);
|
||||
+
|
||||
+ gdm_timer_stop (panel->priv->animation_timer);
|
||||
+ panel->priv->progress = 0.0;
|
||||
+
|
||||
+ GTK_WIDGET_CLASS (gdm_greeter_panel_parent_class)->hide (widget);
|
||||
+}
|
||||
|
||||
static void
|
||||
gdm_greeter_panel_class_init (GdmGreeterPanelClass *klass)
|
||||
@@ -418,6 +456,9 @@ gdm_greeter_panel_class_init (GdmGreeter
|
||||
widget_class->realize = gdm_greeter_panel_real_realize;
|
||||
widget_class->unrealize = gdm_greeter_panel_real_unrealize;
|
||||
widget_class->size_request = gdm_greeter_panel_real_size_request;
|
||||
+ widget_class->show = gdm_greeter_panel_real_show;
|
||||
+ widget_class->hide = gdm_greeter_panel_real_hide;
|
||||
+
|
||||
signals[LANGUAGE_SELECTED] =
|
||||
g_signal_new ("language-selected",
|
||||
G_TYPE_FROM_CLASS (object_class),
|
||||
@@ -521,6 +562,15 @@ on_session_activated (GdmSessionOptionWi
|
||||
}
|
||||
|
||||
static void
|
||||
+on_animation_tick (GdmGreeterPanel *panel,
|
||||
+ double progress)
|
||||
+{
|
||||
+ panel->priv->progress = progress * log ((G_E - 1.0) * progress + 1.0);
|
||||
+
|
||||
+ gtk_widget_queue_resize (GTK_WIDGET (panel));
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
gdm_greeter_panel_init (GdmGreeterPanel *panel)
|
||||
{
|
||||
NaTray *tray;
|
||||
@@ -605,6 +655,13 @@ gdm_greeter_panel_init (GdmGreeterPanel
|
||||
|
||||
gdm_greeter_panel_hide_user_options (panel);
|
||||
|
||||
+ panel->priv->progress = 0.0;
|
||||
+ panel->priv->animation_timer = gdm_timer_new ();
|
||||
+ g_signal_connect_swapped (panel->priv->animation_timer,
|
||||
+ "tick",
|
||||
+ G_CALLBACK (on_animation_tick),
|
||||
+ panel);
|
||||
+
|
||||
gdm_profile_end (NULL);
|
||||
}
|
||||
|
||||
@@ -620,6 +677,8 @@ gdm_greeter_panel_finalize (GObject *obj
|
||||
|
||||
g_return_if_fail (greeter_panel->priv != NULL);
|
||||
|
||||
+ g_signal_handlers_disconnect_by_func (object, on_animation_tick, greeter_panel);
|
||||
+
|
||||
G_OBJECT_CLASS (gdm_greeter_panel_parent_class)->finalize (object);
|
||||
}
|
||||
|
7
gdm.spec
7
gdm.spec
@ -16,7 +16,7 @@
|
||||
Summary: The GNOME Display Manager
|
||||
Name: gdm
|
||||
Version: 2.24.0
|
||||
Release: 6%{?dist}
|
||||
Release: 7%{?dist}
|
||||
Epoch: 1
|
||||
License: GPLv2+
|
||||
Group: User Interface/X
|
||||
@ -93,6 +93,7 @@ Patch8: gdm-2.23.92-another-locale-fixup.patch
|
||||
Patch9: gdm-2.23.92-fix-crash.patch
|
||||
# Fix pulled from upstream
|
||||
Patch10: gdm-2.24.0-fix-icon-scale.patch
|
||||
Patch11: gdm-2.24.0-add-panel-slide.patch
|
||||
|
||||
# Fedora-specific
|
||||
Patch99: gdm-2.23.1-fedora-logo.patch
|
||||
@ -124,6 +125,7 @@ multiple simulanteous logged in users.
|
||||
%patch8 -p1 -b .another-locale-fixup
|
||||
%patch9 -p1 -b .fix-crash
|
||||
%patch10 -p1 -b .fix-icon-scale
|
||||
%patch11 -p1 -b .add-panel-slide
|
||||
|
||||
%patch99 -p1 -b .fedora-logo
|
||||
|
||||
@ -326,6 +328,9 @@ fi
|
||||
%{_datadir}/gnome-2.0/ui/GNOME_FastUserSwitchApplet.xml
|
||||
|
||||
%changelog
|
||||
* Tue Sep 30 2008 Ray Strode <rstrode@redhat.com> - 1:2.24.0-7
|
||||
- Make panel slide in initially like the gnome panel
|
||||
|
||||
* Tue Sep 30 2008 Ray Strode <rstrode@redhat.com> - 1:2.24.0-6
|
||||
- drop background priority change. Choppyiness in -3 ended up
|
||||
being a bug in gnome-settings-daemon.
|
||||
|
Loading…
Reference in New Issue
Block a user