/* * lightdm-webkit2-greeter.c * * Copyright (C) 2010 Robert Ancell. * Author: Robert Ancell * Webkit2 port: Copyright (C) 2014 Antergos * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. See http://www.gnu.org/copyleft/gpl.html the full text of the * license. */ #include #include #include #include #include #include #include <../config.h> static GtkWidget *web_view; static GtkWidget *window; /* static void timed_login_cb (LightDMGreeter *greeter, const gchar *username, WebKitWebView *view) { gchar *command; command = g_strdup_printf ("timed_login('%s')", username); // FIXME: Escape text webkit_web_view_run_javascript (view, command, NULL, web_view_javascript_finished, NULL); g_free (command); } static gboolean fade_timer_cb (gpointer data) { gdouble opacity; opacity = gtk_widget_get_opacity (window); opacity -= 0.1; if (opacity <= 0) { gtk_main_quit (); return FALSE; } gtk_widget_set_opacity (window, opacity); return TRUE; } static void quit_cb (LightDMGreeter *greeter, const gchar *username) { // Fade out the greeter g_timeout_add (40, (GSourceFunc) fade_timer_cb, NULL); } */ static void sigterm_cb (int signum) { exit (0); } int main (int argc, char **argv) { GdkScreen *screen; GdkRectangle geometry; GKeyFile *keyfile; gchar *theme; WebKitWebContext *context = webkit_web_context_get_default (); signal (SIGTERM, sigterm_cb); gtk_init (&argc, &argv); webkit_web_context_set_web_extensions_directory (context, LIGHTDM_WEBKIT2_GREETER_EXTENSIONS_DIR); /* settings */ keyfile = g_key_file_new (); g_key_file_load_from_file (keyfile, "/etc/lightdm/lightdm-webkit2-greeter.conf", G_KEY_FILE_NONE, NULL); theme = g_key_file_get_string(keyfile, "greeter", "webkit-theme", NULL); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); screen = gtk_window_get_screen (GTK_WINDOW (window)); gdk_screen_get_monitor_geometry (screen, gdk_screen_get_primary_monitor(screen), &geometry); gtk_window_set_default_size (GTK_WINDOW (window), geometry.width, geometry.height); gtk_window_move (GTK_WINDOW (window), geometry.x, geometry.y); gdk_window_set_cursor (gdk_get_default_root_window (), gdk_cursor_new_for_display (gtk_widget_get_display (window), GDK_LEFT_PTR)); web_view = webkit_web_view_new (); gtk_container_add (GTK_CONTAINER (window), web_view); webkit_web_view_load_uri (WEBKIT_WEB_VIEW (web_view), g_strdup_printf("file://%s/%s/index.html", THEME_DIR, theme)); gtk_widget_show_all (window); gtk_main (); return 0; }