800
panel_window_shadow (void)
803
cairo_pattern_t *shadow_pattern;
804
GtkWidget *shadow_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
806
GtkAllocation *allocation = g_new0 (GtkAllocation, 1);
808
gtk_widget_get_allocation (GTK_WIDGET(panel_window), allocation);
809
// Create a Window below the panel for the shadow to draw into
810
gtk_window_set_resizable (GTK_WINDOW(shadow_window), FALSE);
811
gtk_window_set_default_size (GTK_WINDOW(shadow_window), allocation->width, 24);
812
gtk_widget_set_app_paintable(GTK_WIDGET(shadow_window), TRUE);
813
// Move it below the panel
814
gtk_window_move (GTK_WINDOW(shadow_window), 0, allocation->height);
815
window = gtk_widget_get_window(shadow_window);
816
// Create the cairo_t
817
cr = gdk_cairo_create(window);
819
// Draw fake transparency background
820
if (background_pixbuf)
821
gdk_cairo_set_source_pixbuf (cr, background_pixbuf, 0, allocation->height);
823
gdk_cairo_set_source_rgba (cr, default_background_color);
824
cairo_fill_preserve (cr);
826
// Create shadow pattern
827
shadow_pattern = cairo_pattern_create_linear (0, 0, allocation->width, 24);
828
cairo_pattern_add_color_stop_rgb(shadow_pattern, 0.5, 0, 0, 0);
829
cairo_pattern_add_color_stop_rgb(shadow_pattern, 0.2, 0, 0, 0);
830
cairo_pattern_add_color_stop_rgb(shadow_pattern, 0.0, 0, 0, 0);
832
cairo_rectangle (cr, 0, 0, allocation->width, 24);
833
cairo_set_source (cr, shadow_pattern);
835
cairo_pattern_destroy(shadow_pattern);
839
panel_window_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data)
841
/* Draw shadow below the panel */
842
panel_window_shadow();
844
if (background_pixbuf)
845
gdk_cairo_set_source_pixbuf (cr, background_pixbuf, 0, 0);
847
gdk_cairo_set_source_rgba (cr, default_background_color);
853
800
login_window_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data)
2469
2416
#if GTK_CHECK_VERSION (3, 0, 0)
2470
2417
gtk_style_context_add_class(GTK_STYLE_CONTEXT(gtk_widget_get_style_context(GTK_WIDGET(panel_window))), "lightdm-gtk-greeter");
2471
2418
gtk_style_context_add_class(GTK_STYLE_CONTEXT(gtk_widget_get_style_context(GTK_WIDGET(panel_window))), GTK_STYLE_CLASS_MENUBAR);
2472
g_signal_connect (G_OBJECT (panel_window), "draw", G_CALLBACK (panel_window_draw), NULL);
2419
g_signal_connect (G_OBJECT (panel_window), "draw", G_CALLBACK (background_window_draw), NULL);
2474
2421
gtk_label_set_text (GTK_LABEL (gtk_builder_get_object (builder, "hostname_label")), lightdm_get_hostname ());
2475
2422
session_menu = GTK_MENU(gtk_builder_get_object (builder, "session_menu"));