diff --git a/data/greeter-resources.gresource.xml b/data/greeter-resources.gresource.xml
new file mode 100644
index 0000000..1541290
--- /dev/null
+++ b/data/greeter-resources.gresource.xml
@@ -0,0 +1,15 @@
+
+
+
+ style.css
+
+
+ heartbeat.js
+
+
+
+
+
diff --git a/data/greeter-style.gresource.xml b/data/greeter-style.gresource.xml
deleted file mode 100644
index 8b2e3a6..0000000
--- a/data/greeter-style.gresource.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
- greeter-style.css
-
-
diff --git a/data/heartbeat.js b/data/heartbeat.js
new file mode 100644
index 0000000..f690a90
--- /dev/null
+++ b/data/heartbeat.js
@@ -0,0 +1,70 @@
+/*
+ * heartbeat.js
+ *
+ * Copyright © 2016 Antergos Developers
+ *
+ * This file is part of lightdm-webkit2-greeter.
+ *
+ * lightdm-webkit2-greeter 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.
+ *
+ * lightdm-webkit2-greeter is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * The following additional terms are in effect as per Section 7 of the license:
+ *
+ * The preservation of all legal notices and author attributions in
+ * the material or in the Appropriate Legal Notices displayed
+ * by works containing it is required.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with lightdm-webkit2-greeter; If not, see .
+ */
+
+
+/**
+ * Singleton class for the greeter theme heartbeat. Once instantiated, the instance will
+ * begin sending a heartbeat message to the greeter every 5 seconds. Upon receiving the first
+ * heartbeat message, the greeter will schedule checks to ensure that subsequent heartbeat
+ * messages are received. If a heartbeat message is not received by the time any of the greeter's
+ * subsequent checks run, it will assume that there has been an error in the theme's script
+ * execution and fall back to the simple theme.
+ */
+class LightDMGreeterHeartbeat {
+
+ constructor() {
+ if ( '_heartbeat' in window ) {
+ return _heartbeat;
+ }
+
+ window._heartbeat = this;
+
+ this.initialize_theme_heartbeat();
+ }
+
+ initialize_theme_heartbeat() {
+ let heartbeats = 0;
+
+ if ( '' !== this.heartbeat ) {
+ console.log( 'Heartbeat has already been initialized!' );
+ return;
+ }
+
+ this.log('Initializing theme heartbeat.');
+
+ this.heartbeat = setInterval(() => {
+ ++heartbeats;
+ window.webkit.messageHandlers.GreeterBridge.postMessage('Heartbeat');
+ if ( heartbeats < 5 ) {
+ console.log('Sending heartbeat...');
+ }
+ }, 5000);
+ }
+}
+
+
+window.LightDMGreeterHeartbeat = LightDMGreeterHeartbeat;
diff --git a/data/greeter-style.css b/data/style.css
similarity index 100%
rename from data/greeter-style.css
rename to data/style.css
diff --git a/src/greeter.c b/src/greeter.c
index 8bd60b2..48df32f 100644
--- a/src/greeter.c
+++ b/src/greeter.c
@@ -1,5 +1,5 @@
/*
- * lightdm-webkit2-greeter.c
+ * greeter.c
*
* Copyright © 2014-2016 Antergos Developers
*
@@ -48,7 +48,7 @@
#include
-#include "gresource/greeter-style-css.h"
+#include "gresource/greeter-resources.h"
static GtkWidget *web_view;
static GtkWidget *window;
@@ -277,7 +277,7 @@ main(int argc, char **argv) {
WebKitWebContext *context;
GtkCssProvider *css_provider;
WebKitCookieManager *cookie_manager;
- GResource *css_resource;
+ GResource *greeter_resources;
/* Prevent memory from being swapped out, since we see unencrypted passwords. */
mlockall (MCL_CURRENT | MCL_FUTURE);
@@ -323,11 +323,11 @@ main(int argc, char **argv) {
/* Setup CSS provider. We use CSS to set the window background to black instead
* of default white so the screen doesnt flash during startup.
*/
- css_resource = greeter_css_get_resource();
+ greeter_resources = greeter_resources_get_resource();
css_provider = gtk_css_provider_new();
- g_resources_register(css_resource);
- gtk_css_provider_load_from_resource(css_provider, "/com/antergos/lightdm-webkit2-greeter");
+ g_resources_register(greeter_resources);
+ gtk_css_provider_load_from_resource(css_provider, "/com/antergos/lightdm-webkit2-greeter/css");
gtk_style_context_add_provider_for_screen(
screen,
GTK_STYLE_PROVIDER(css_provider),
diff --git a/src/gresource/greeter-resources.c b/src/gresource/greeter-resources.c
new file mode 100644
index 0000000..23116e0
--- /dev/null
+++ b/src/gresource/greeter-resources.c
@@ -0,0 +1,501 @@
+#include
+
+#if defined (__ELF__) && ( __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6))
+# define SECTION __attribute__ ((section (".gresource.greeter_resources"), aligned (8)))
+#else
+# define SECTION
+#endif
+
+static const SECTION union { const guint8 data[2708]; const double alignment; void * const ptr;} greeter_resources_resource_data = { {
+ 0x47, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x18, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x28, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x78, 0x4c, 0xe7, 0x14, 0x06, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x03, 0x00, 0x4c, 0x00,
+ 0x04, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00,
+ 0xc2, 0xaf, 0x89, 0x0b, 0x03, 0x00, 0x00, 0x00,
+ 0x08, 0x01, 0x00, 0x00, 0x04, 0x00, 0x4c, 0x00,
+ 0x0c, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00,
+ 0x73, 0xf8, 0xf6, 0x72, 0x00, 0x00, 0x00, 0x00,
+ 0x10, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x76, 0x00,
+ 0x20, 0x01, 0x00, 0x00, 0x0b, 0x0a, 0x00, 0x00,
+ 0xd4, 0xb5, 0x02, 0x00, 0xff, 0xff, 0xff, 0xff,
+ 0x0b, 0x0a, 0x00, 0x00, 0x01, 0x00, 0x4c, 0x00,
+ 0x0c, 0x0a, 0x00, 0x00, 0x10, 0x0a, 0x00, 0x00,
+ 0x8c, 0x77, 0x10, 0x71, 0x07, 0x00, 0x00, 0x00,
+ 0x10, 0x0a, 0x00, 0x00, 0x09, 0x00, 0x76, 0x00,
+ 0x20, 0x0a, 0x00, 0x00, 0x5c, 0x0a, 0x00, 0x00,
+ 0xb4, 0xae, 0x96, 0xdb, 0x01, 0x00, 0x00, 0x00,
+ 0x5c, 0x0a, 0x00, 0x00, 0x09, 0x00, 0x4c, 0x00,
+ 0x68, 0x0a, 0x00, 0x00, 0x6c, 0x0a, 0x00, 0x00,
+ 0x0c, 0xa6, 0xd8, 0x48, 0x05, 0x00, 0x00, 0x00,
+ 0x6c, 0x0a, 0x00, 0x00, 0x18, 0x00, 0x4c, 0x00,
+ 0x84, 0x0a, 0x00, 0x00, 0x8c, 0x0a, 0x00, 0x00,
+ 0xc4, 0x0d, 0xcd, 0xb1, 0x06, 0x00, 0x00, 0x00,
+ 0x8c, 0x0a, 0x00, 0x00, 0x04, 0x00, 0x4c, 0x00,
+ 0x90, 0x0a, 0x00, 0x00, 0x94, 0x0a, 0x00, 0x00,
+ 0x6a, 0x73, 0x2f, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x05, 0x00, 0x00, 0x00,
+ 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
+ 0x74, 0x2e, 0x6a, 0x73, 0x00, 0x00, 0x00, 0x00,
+ 0xdb, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x2f, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x68, 0x65,
+ 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x2e,
+ 0x6a, 0x73, 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a,
+ 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67,
+ 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x32, 0x30,
+ 0x31, 0x36, 0x20, 0x41, 0x6e, 0x74, 0x65, 0x72,
+ 0x67, 0x6f, 0x73, 0x20, 0x44, 0x65, 0x76, 0x65,
+ 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x73, 0x20, 0x3c,
+ 0x64, 0x65, 0x76, 0x40, 0x61, 0x6e, 0x74, 0x65,
+ 0x72, 0x67, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x3e, 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a, 0x20,
+ 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c,
+ 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, 0x61, 0x72,
+ 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x69, 0x67,
+ 0x68, 0x74, 0x64, 0x6d, 0x2d, 0x77, 0x65, 0x62,
+ 0x6b, 0x69, 0x74, 0x32, 0x2d, 0x67, 0x72, 0x65,
+ 0x65, 0x74, 0x65, 0x72, 0x2e, 0x0a, 0x20, 0x2a,
+ 0x0a, 0x20, 0x2a, 0x20, 0x6c, 0x69, 0x67, 0x68,
+ 0x74, 0x64, 0x6d, 0x2d, 0x77, 0x65, 0x62, 0x6b,
+ 0x69, 0x74, 0x32, 0x2d, 0x67, 0x72, 0x65, 0x65,
+ 0x74, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x66,
+ 0x72, 0x65, 0x65, 0x20, 0x73, 0x6f, 0x66, 0x74,
+ 0x77, 0x61, 0x72, 0x65, 0x3b, 0x20, 0x79, 0x6f,
+ 0x75, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x72, 0x65,
+ 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
+ 0x74, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x6e,
+ 0x64, 0x2f, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x64,
+ 0x69, 0x66, 0x79, 0x0a, 0x20, 0x2a, 0x20, 0x69,
+ 0x74, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20,
+ 0x74, 0x68, 0x65, 0x20, 0x74, 0x65, 0x72, 0x6d,
+ 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x47, 0x4e, 0x55, 0x20, 0x47, 0x65, 0x6e,
+ 0x65, 0x72, 0x61, 0x6c, 0x20, 0x50, 0x75, 0x62,
+ 0x6c, 0x69, 0x63, 0x20, 0x4c, 0x69, 0x63, 0x65,
+ 0x6e, 0x73, 0x65, 0x20, 0x61, 0x73, 0x20, 0x70,
+ 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64,
+ 0x20, 0x62, 0x79, 0x0a, 0x20, 0x2a, 0x20, 0x74,
+ 0x68, 0x65, 0x20, 0x46, 0x72, 0x65, 0x65, 0x20,
+ 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65,
+ 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x3b, 0x20, 0x65, 0x69, 0x74,
+ 0x68, 0x65, 0x72, 0x20, 0x76, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x20, 0x33, 0x20, 0x6f, 0x66,
+ 0x20, 0x74, 0x68, 0x65, 0x20, 0x4c, 0x69, 0x63,
+ 0x65, 0x6e, 0x73, 0x65, 0x2c, 0x20, 0x6f, 0x72,
+ 0x0a, 0x20, 0x2a, 0x20, 0x28, 0x61, 0x74, 0x20,
+ 0x79, 0x6f, 0x75, 0x72, 0x20, 0x6f, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x61, 0x6e, 0x79,
+ 0x20, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x20, 0x76,
+ 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x0a,
+ 0x20, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x6c, 0x69,
+ 0x67, 0x68, 0x74, 0x64, 0x6d, 0x2d, 0x77, 0x65,
+ 0x62, 0x6b, 0x69, 0x74, 0x32, 0x2d, 0x67, 0x72,
+ 0x65, 0x65, 0x74, 0x65, 0x72, 0x20, 0x69, 0x73,
+ 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
+ 0x75, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20,
+ 0x74, 0x68, 0x65, 0x20, 0x68, 0x6f, 0x70, 0x65,
+ 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x74,
+ 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65,
+ 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x2c,
+ 0x0a, 0x20, 0x2a, 0x20, 0x62, 0x75, 0x74, 0x20,
+ 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x20,
+ 0x41, 0x4e, 0x59, 0x20, 0x57, 0x41, 0x52, 0x52,
+ 0x41, 0x4e, 0x54, 0x59, 0x3b, 0x20, 0x77, 0x69,
+ 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x65, 0x76,
+ 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x69,
+ 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x77,
+ 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x79, 0x20,
+ 0x6f, 0x66, 0x0a, 0x20, 0x2a, 0x20, 0x4d, 0x45,
+ 0x52, 0x43, 0x48, 0x41, 0x4e, 0x54, 0x41, 0x42,
+ 0x49, 0x4c, 0x49, 0x54, 0x59, 0x20, 0x6f, 0x72,
+ 0x20, 0x46, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53,
+ 0x20, 0x46, 0x4f, 0x52, 0x20, 0x41, 0x20, 0x50,
+ 0x41, 0x52, 0x54, 0x49, 0x43, 0x55, 0x4c, 0x41,
+ 0x52, 0x20, 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53,
+ 0x45, 0x2e, 0x20, 0x53, 0x65, 0x65, 0x20, 0x74,
+ 0x68, 0x65, 0x0a, 0x20, 0x2a, 0x20, 0x47, 0x4e,
+ 0x55, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61,
+ 0x6c, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63,
+ 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65,
+ 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72,
+ 0x65, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x73, 0x2e, 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a,
+ 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c,
+ 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x61,
+ 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,
+ 0x6c, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x20,
+ 0x61, 0x72, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x65,
+ 0x66, 0x66, 0x65, 0x63, 0x74, 0x20, 0x61, 0x73,
+ 0x20, 0x70, 0x65, 0x72, 0x20, 0x53, 0x65, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x37, 0x20, 0x6f,
+ 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69,
+ 0x63, 0x65, 0x6e, 0x73, 0x65, 0x3a, 0x0a, 0x20,
+ 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x54, 0x68, 0x65,
+ 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66,
+ 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x6c, 0x65, 0x67,
+ 0x61, 0x6c, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63,
+ 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61,
+ 0x75, 0x74, 0x68, 0x6f, 0x72, 0x20, 0x61, 0x74,
+ 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x0a, 0x20, 0x2a,
+ 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74,
+ 0x65, 0x72, 0x69, 0x61, 0x6c, 0x20, 0x6f, 0x72,
+ 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20,
+ 0x41, 0x70, 0x70, 0x72, 0x6f, 0x70, 0x72, 0x69,
+ 0x61, 0x74, 0x65, 0x20, 0x4c, 0x65, 0x67, 0x61,
+ 0x6c, 0x20, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65,
+ 0x73, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61,
+ 0x79, 0x65, 0x64, 0x0a, 0x20, 0x2a, 0x20, 0x62,
+ 0x79, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20,
+ 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69,
+ 0x6e, 0x67, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73,
+ 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
+ 0x64, 0x2e, 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a,
+ 0x20, 0x59, 0x6f, 0x75, 0x20, 0x73, 0x68, 0x6f,
+ 0x75, 0x6c, 0x64, 0x20, 0x68, 0x61, 0x76, 0x65,
+ 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
+ 0x64, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x70, 0x79,
+ 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20,
+ 0x47, 0x4e, 0x55, 0x20, 0x47, 0x65, 0x6e, 0x65,
+ 0x72, 0x61, 0x6c, 0x20, 0x50, 0x75, 0x62, 0x6c,
+ 0x69, 0x63, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e,
+ 0x73, 0x65, 0x0a, 0x20, 0x2a, 0x20, 0x61, 0x6c,
+ 0x6f, 0x6e, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68,
+ 0x20, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x64, 0x6d,
+ 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x32,
+ 0x2d, 0x67, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72,
+ 0x3b, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74,
+ 0x2c, 0x20, 0x73, 0x65, 0x65, 0x20, 0x3c, 0x68,
+ 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+ 0x77, 0x2e, 0x67, 0x6e, 0x75, 0x2e, 0x6f, 0x72,
+ 0x67, 0x2f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73,
+ 0x65, 0x73, 0x2f, 0x3e, 0x2e, 0x0a, 0x20, 0x2a,
+ 0x2f, 0x0a, 0x0a, 0x0a, 0x2f, 0x2a, 0x2a, 0x0a,
+ 0x20, 0x2a, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c,
+ 0x65, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61,
+ 0x73, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74,
+ 0x68, 0x65, 0x20, 0x67, 0x72, 0x65, 0x65, 0x74,
+ 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x65,
+ 0x20, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65,
+ 0x61, 0x74, 0x2e, 0x20, 0x4f, 0x6e, 0x63, 0x65,
+ 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74,
+ 0x69, 0x61, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x74,
+ 0x68, 0x65, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61,
+ 0x6e, 0x63, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c,
+ 0x0a, 0x20, 0x2a, 0x20, 0x62, 0x65, 0x67, 0x69,
+ 0x6e, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x69, 0x6e,
+ 0x67, 0x20, 0x61, 0x20, 0x68, 0x65, 0x61, 0x72,
+ 0x74, 0x62, 0x65, 0x61, 0x74, 0x20, 0x6d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f,
+ 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x72, 0x65,
+ 0x65, 0x74, 0x65, 0x72, 0x20, 0x65, 0x76, 0x65,
+ 0x72, 0x79, 0x20, 0x35, 0x20, 0x73, 0x65, 0x63,
+ 0x6f, 0x6e, 0x64, 0x73, 0x2e, 0x20, 0x55, 0x70,
+ 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69,
+ 0x76, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x0a, 0x20,
+ 0x2a, 0x20, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62,
+ 0x65, 0x61, 0x74, 0x20, 0x6d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x67, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72,
+ 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x73, 0x63,
+ 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x63,
+ 0x68, 0x65, 0x63, 0x6b, 0x73, 0x20, 0x74, 0x6f,
+ 0x20, 0x65, 0x6e, 0x73, 0x75, 0x72, 0x65, 0x20,
+ 0x74, 0x68, 0x61, 0x74, 0x20, 0x73, 0x75, 0x62,
+ 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20,
+ 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
+ 0x74, 0x0a, 0x20, 0x2a, 0x20, 0x6d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x73, 0x20, 0x61, 0x72,
+ 0x65, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76,
+ 0x65, 0x64, 0x2e, 0x20, 0x49, 0x66, 0x20, 0x61,
+ 0x20, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65,
+ 0x61, 0x74, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f,
+ 0x74, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76,
+ 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68,
+ 0x65, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x61,
+ 0x6e, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68,
+ 0x65, 0x20, 0x67, 0x72, 0x65, 0x65, 0x74, 0x65,
+ 0x72, 0x27, 0x73, 0x0a, 0x20, 0x2a, 0x20, 0x73,
+ 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e,
+ 0x74, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73,
+ 0x20, 0x72, 0x75, 0x6e, 0x2c, 0x20, 0x69, 0x74,
+ 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x73,
+ 0x73, 0x75, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x61,
+ 0x74, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20,
+ 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e,
+ 0x20, 0x61, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f,
+ 0x72, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65,
+ 0x20, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x27, 0x73,
+ 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a,
+ 0x20, 0x2a, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75,
+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64,
+ 0x20, 0x66, 0x61, 0x6c, 0x6c, 0x20, 0x62, 0x61,
+ 0x63, 0x6b, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68,
+ 0x65, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65,
+ 0x20, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x2e, 0x0a,
+ 0x20, 0x2a, 0x2f, 0x0a, 0x63, 0x6c, 0x61, 0x73,
+ 0x73, 0x20, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x44,
+ 0x4d, 0x47, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72,
+ 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
+ 0x74, 0x20, 0x7b, 0x0a, 0x0a, 0x09, 0x63, 0x6f,
+ 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f,
+ 0x72, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09,
+ 0x69, 0x66, 0x20, 0x28, 0x20, 0x27, 0x5f, 0x68,
+ 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74,
+ 0x27, 0x20, 0x69, 0x6e, 0x20, 0x77, 0x69, 0x6e,
+ 0x64, 0x6f, 0x77, 0x20, 0x29, 0x20, 0x7b, 0x0a,
+ 0x09, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72,
+ 0x6e, 0x20, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74,
+ 0x62, 0x65, 0x61, 0x74, 0x3b, 0x0a, 0x09, 0x09,
+ 0x7d, 0x0a, 0x0a, 0x09, 0x09, 0x77, 0x69, 0x6e,
+ 0x64, 0x6f, 0x77, 0x2e, 0x5f, 0x68, 0x65, 0x61,
+ 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x20, 0x3d,
+ 0x20, 0x74, 0x68, 0x69, 0x73, 0x3b, 0x0a, 0x0a,
+ 0x09, 0x09, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69,
+ 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a,
+ 0x65, 0x5f, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x5f,
+ 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
+ 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x0a,
+ 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61,
+ 0x6c, 0x69, 0x7a, 0x65, 0x5f, 0x74, 0x68, 0x65,
+ 0x6d, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74,
+ 0x62, 0x65, 0x61, 0x74, 0x28, 0x29, 0x20, 0x7b,
+ 0x0a, 0x09, 0x09, 0x6c, 0x65, 0x74, 0x20, 0x68,
+ 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74,
+ 0x73, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x0a,
+ 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x27,
+ 0x27, 0x20, 0x21, 0x3d, 0x3d, 0x20, 0x74, 0x68,
+ 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x72, 0x74,
+ 0x62, 0x65, 0x61, 0x74, 0x20, 0x29, 0x20, 0x7b,
+ 0x0a, 0x09, 0x09, 0x09, 0x63, 0x6f, 0x6e, 0x73,
+ 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28,
+ 0x20, 0x27, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62,
+ 0x65, 0x61, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20,
+ 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20,
+ 0x62, 0x65, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x69,
+ 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64,
+ 0x21, 0x27, 0x20, 0x29, 0x3b, 0x0a, 0x09, 0x09,
+ 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b,
+ 0x0a, 0x09, 0x09, 0x7d, 0x0a, 0x0a, 0x09, 0x09,
+ 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x6f, 0x67,
+ 0x28, 0x27, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61,
+ 0x6c, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x20, 0x74,
+ 0x68, 0x65, 0x6d, 0x65, 0x20, 0x68, 0x65, 0x61,
+ 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x2e, 0x27,
+ 0x29, 0x3b, 0x0a, 0x0a, 0x09, 0x09, 0x74, 0x68,
+ 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x72, 0x74,
+ 0x62, 0x65, 0x61, 0x74, 0x20, 0x3d, 0x20, 0x73,
+ 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76,
+ 0x61, 0x6c, 0x28, 0x28, 0x29, 0x20, 0x3d, 0x3e,
+ 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x09, 0x2b, 0x2b,
+ 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
+ 0x74, 0x73, 0x3b, 0x0a, 0x09, 0x09, 0x09, 0x77,
+ 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x77, 0x65,
+ 0x62, 0x6b, 0x69, 0x74, 0x2e, 0x6d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x48, 0x61, 0x6e, 0x64,
+ 0x6c, 0x65, 0x72, 0x73, 0x2e, 0x47, 0x72, 0x65,
+ 0x65, 0x74, 0x65, 0x72, 0x42, 0x72, 0x69, 0x64,
+ 0x67, 0x65, 0x2e, 0x70, 0x6f, 0x73, 0x74, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x28, 0x27,
+ 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
+ 0x74, 0x27, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x09,
+ 0x69, 0x66, 0x20, 0x28, 0x20, 0x68, 0x65, 0x61,
+ 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x20,
+ 0x3c, 0x20, 0x35, 0x20, 0x29, 0x20, 0x7b, 0x0a,
+ 0x09, 0x09, 0x09, 0x09, 0x63, 0x6f, 0x6e, 0x73,
+ 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28,
+ 0x27, 0x53, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67,
+ 0x20, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65,
+ 0x61, 0x74, 0x2e, 0x2e, 0x2e, 0x27, 0x29, 0x3b,
+ 0x0a, 0x09, 0x09, 0x09, 0x7d, 0x0a, 0x09, 0x09,
+ 0x7d, 0x2c, 0x20, 0x35, 0x30, 0x30, 0x30, 0x29,
+ 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a,
+ 0x0a, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e,
+ 0x4c, 0x69, 0x67, 0x68, 0x74, 0x44, 0x4d, 0x47,
+ 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, 0x48, 0x65,
+ 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x20,
+ 0x3d, 0x20, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x44,
+ 0x4d, 0x47, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72,
+ 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
+ 0x74, 0x3b, 0x0a, 0x00, 0x00, 0x28, 0x75, 0x75,
+ 0x61, 0x79, 0x29, 0x2f, 0x01, 0x00, 0x00, 0x00,
+ 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x63, 0x73,
+ 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x0a,
+ 0x47, 0x74, 0x6b, 0x57, 0x69, 0x6e, 0x64, 0x6f,
+ 0x77, 0x20, 0x7b, 0x0a, 0x09, 0x62, 0x61, 0x63,
+ 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a,
+ 0x20, 0x23, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
+ 0x3b, 0x0a, 0x7d, 0x0a, 0x00, 0x00, 0x28, 0x75,
+ 0x75, 0x61, 0x79, 0x29, 0x61, 0x6e, 0x74, 0x65,
+ 0x72, 0x67, 0x6f, 0x73, 0x2f, 0x00, 0x00, 0x00,
+ 0x06, 0x00, 0x00, 0x00, 0x6c, 0x69, 0x67, 0x68,
+ 0x74, 0x64, 0x6d, 0x2d, 0x77, 0x65, 0x62, 0x6b,
+ 0x69, 0x74, 0x32, 0x2d, 0x67, 0x72, 0x65, 0x65,
+ 0x74, 0x65, 0x72, 0x2f, 0x07, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x63, 0x73, 0x73, 0x2f,
+ 0x04, 0x00, 0x00, 0x00
+} };
+
+static GStaticResource static_resource = { greeter_resources_resource_data.data, sizeof (greeter_resources_resource_data.data), NULL, NULL, NULL };
+extern GResource *greeter_resources_get_resource (void);
+GResource *greeter_resources_get_resource (void)
+{
+ return g_static_resource_get_resource (&static_resource);
+}
+/*
+ If G_HAS_CONSTRUCTORS is true then the compiler support *both* constructors and
+ destructors, in a sane way, including e.g. on library unload. If not you're on
+ your own.
+
+ Some compilers need #pragma to handle this, which does not work with macros,
+ so the way you need to use this is (for constructors):
+
+ #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
+ #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(my_constructor)
+ #endif
+ G_DEFINE_CONSTRUCTOR(my_constructor)
+ static void my_constructor(void) {
+ ...
+ }
+
+*/
+
+#ifndef __GTK_DOC_IGNORE__
+
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+
+#define G_HAS_CONSTRUCTORS 1
+
+#define G_DEFINE_CONSTRUCTOR(_func) static void __attribute__((constructor)) _func (void);
+#define G_DEFINE_DESTRUCTOR(_func) static void __attribute__((destructor)) _func (void);
+
+#elif defined (_MSC_VER) && (_MSC_VER >= 1500)
+/* Visual studio 2008 and later has _Pragma */
+
+#define G_HAS_CONSTRUCTORS 1
+
+/* We do some weird things to avoid the constructors being optimized
+ * away on VS2015 if WholeProgramOptimization is enabled. First we
+ * make a reference to the array from the wrapper to make sure its
+ * references. Then we use a pragma to make sure the wrapper function
+ * symbol is always included at the link stage. Also, the symbols
+ * need to be extern (but not dllexport), even though they are not
+ * really used from another object file.
+ */
+
+/* We need to account for differences between the mangling of symbols
+ * for Win32 (x86) and x64 programs, as symbols on Win32 are prefixed
+ * with an underscore but symbols on x64 are not.
+ */
+#ifdef _WIN64
+#define G_MSVC_SYMBOL_PREFIX ""
+#else
+#define G_MSVC_SYMBOL_PREFIX "_"
+#endif
+
+#define G_DEFINE_CONSTRUCTOR(_func) G_MSVC_CTOR (_func, G_MSVC_SYMBOL_PREFIX)
+#define G_DEFINE_DESTRUCTOR(_func) G_MSVC_DTOR (_func, G_MSVC_SYMBOL_PREFIX)
+
+#define G_MSVC_CTOR(_func,_sym_prefix) \
+ static void _func(void); \
+ extern int (* _array ## _func)(void); \
+ int _func ## _wrapper(void) { _func(); g_slist_find (NULL, _array ## _func); return 0; } \
+ __pragma(comment(linker,"/include:" _sym_prefix # _func "_wrapper")) \
+ __pragma(section(".CRT$XCU",read)) \
+ __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _wrapper;
+
+#define G_MSVC_DTOR(_func,_sym_prefix) \
+ static void _func(void); \
+ extern int (* _array ## _func)(void); \
+ int _func ## _constructor(void) { atexit (_func); g_slist_find (NULL, _array ## _func); return 0; } \
+ __pragma(comment(linker,"/include:" _sym_prefix # _func "_constructor")) \
+ __pragma(section(".CRT$XCU",read)) \
+ __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _constructor;
+
+#elif defined (_MSC_VER)
+
+#define G_HAS_CONSTRUCTORS 1
+
+/* Pre Visual studio 2008 must use #pragma section */
+#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1
+#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1
+
+#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \
+ section(".CRT$XCU",read)
+#define G_DEFINE_CONSTRUCTOR(_func) \
+ static void _func(void); \
+ static int _func ## _wrapper(void) { _func(); return 0; } \
+ __declspec(allocate(".CRT$XCU")) static int (*p)(void) = _func ## _wrapper;
+
+#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \
+ section(".CRT$XCU",read)
+#define G_DEFINE_DESTRUCTOR(_func) \
+ static void _func(void); \
+ static int _func ## _constructor(void) { atexit (_func); return 0; } \
+ __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor;
+
+#elif defined(__SUNPRO_C)
+
+/* This is not tested, but i believe it should work, based on:
+ * http://opensource.apple.com/source/OpenSSL098/OpenSSL098-35/src/fips/fips_premain.c
+ */
+
+#define G_HAS_CONSTRUCTORS 1
+
+#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1
+#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1
+
+#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \
+ init(_func)
+#define G_DEFINE_CONSTRUCTOR(_func) \
+ static void _func(void);
+
+#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \
+ fini(_func)
+#define G_DEFINE_DESTRUCTOR(_func) \
+ static void _func(void);
+
+#else
+
+/* constructors not supported for this compiler */
+
+#endif
+
+#endif /* __GTK_DOC_IGNORE__ */
+
+#ifdef G_HAS_CONSTRUCTORS
+
+#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
+#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(resource_constructor)
+#endif
+G_DEFINE_CONSTRUCTOR(resource_constructor)
+#ifdef G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA
+#pragma G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(resource_destructor)
+#endif
+G_DEFINE_DESTRUCTOR(resource_destructor)
+
+#else
+#warning "Constructor not supported on this compiler, linking in resources will not work"
+#endif
+
+static void resource_constructor (void)
+{
+ g_static_resource_init (&static_resource);
+}
+
+static void resource_destructor (void)
+{
+ g_static_resource_fini (&static_resource);
+}
diff --git a/src/gresource/greeter-resources.h b/src/gresource/greeter-resources.h
new file mode 100644
index 0000000..a3271ed
--- /dev/null
+++ b/src/gresource/greeter-resources.h
@@ -0,0 +1,7 @@
+#ifndef __RESOURCE_greeter_resources_H__
+#define __RESOURCE_greeter_resources_H__
+
+#include
+
+extern GResource *greeter_resources_get_resource (void);
+#endif
diff --git a/src/gresource/greeter-style-css.c b/src/gresource/greeter-style-css.c
deleted file mode 100644
index 4f0a2c2..0000000
--- a/src/gresource/greeter-style-css.c
+++ /dev/null
@@ -1,201 +0,0 @@
-#include
-
-#if defined (__ELF__) && ( __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6))
-# define SECTION __attribute__ ((section (".gresource.greeter_css"), aligned (8)))
-#else
-# define SECTION
-#endif
-
-static const SECTION union { const guint8 data[312]; const double alignment; void * const ptr;} greeter_css_resource_data = { {
- 0x47, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x18, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x28, 0x05, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
- 0x05, 0x00, 0x00, 0x00, 0x8f, 0xe2, 0x42, 0x0f,
- 0x02, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00,
- 0x11, 0x00, 0x76, 0x00, 0xc0, 0x00, 0x00, 0x00,
- 0xfc, 0x00, 0x00, 0x00, 0xd4, 0xb5, 0x02, 0x00,
- 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x4c, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x04, 0x01, 0x00, 0x00, 0x0c, 0xa6, 0xd8, 0x48,
- 0x04, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00,
- 0x18, 0x00, 0x4c, 0x00, 0x1c, 0x01, 0x00, 0x00,
- 0x20, 0x01, 0x00, 0x00, 0xc2, 0xaf, 0x89, 0x0b,
- 0x01, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00,
- 0x04, 0x00, 0x4c, 0x00, 0x24, 0x01, 0x00, 0x00,
- 0x28, 0x01, 0x00, 0x00, 0xb4, 0xae, 0x96, 0xdb,
- 0x03, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00,
- 0x09, 0x00, 0x4c, 0x00, 0x34, 0x01, 0x00, 0x00,
- 0x38, 0x01, 0x00, 0x00, 0x67, 0x72, 0x65, 0x65,
- 0x74, 0x65, 0x72, 0x2d, 0x73, 0x74, 0x79, 0x6c,
- 0x65, 0x2e, 0x63, 0x73, 0x73, 0x00, 0x00, 0x00,
- 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2c, 0x0a,
- 0x47, 0x74, 0x6b, 0x57, 0x69, 0x6e, 0x64, 0x6f,
- 0x77, 0x20, 0x7b, 0x0a, 0x09, 0x62, 0x61, 0x63,
- 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a,
- 0x20, 0x23, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
- 0x3b, 0x0a, 0x7d, 0x0a, 0x00, 0x00, 0x28, 0x75,
- 0x75, 0x61, 0x79, 0x29, 0x2f, 0x00, 0x00, 0x00,
- 0x03, 0x00, 0x00, 0x00, 0x6c, 0x69, 0x67, 0x68,
- 0x74, 0x64, 0x6d, 0x2d, 0x77, 0x65, 0x62, 0x6b,
- 0x69, 0x74, 0x32, 0x2d, 0x67, 0x72, 0x65, 0x65,
- 0x74, 0x65, 0x72, 0x2f, 0x00, 0x00, 0x00, 0x00,
- 0x63, 0x6f, 0x6d, 0x2f, 0x04, 0x00, 0x00, 0x00,
- 0x61, 0x6e, 0x74, 0x65, 0x72, 0x67, 0x6f, 0x73,
- 0x2f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
-} };
-
-static GStaticResource static_resource = { greeter_css_resource_data.data, sizeof (greeter_css_resource_data.data), NULL, NULL, NULL };
-extern GResource *greeter_css_get_resource (void);
-GResource *greeter_css_get_resource (void)
-{
- return g_static_resource_get_resource (&static_resource);
-}
-/*
- If G_HAS_CONSTRUCTORS is true then the compiler support *both* constructors and
- destructors, in a sane way, including e.g. on library unload. If not you're on
- your own.
-
- Some compilers need #pragma to handle this, which does not work with macros,
- so the way you need to use this is (for constructors):
-
- #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
- #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(my_constructor)
- #endif
- G_DEFINE_CONSTRUCTOR(my_constructor)
- static void my_constructor(void) {
- ...
- }
-
-*/
-
-#ifndef __GTK_DOC_IGNORE__
-
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
-
-#define G_HAS_CONSTRUCTORS 1
-
-#define G_DEFINE_CONSTRUCTOR(_func) static void __attribute__((constructor)) _func (void);
-#define G_DEFINE_DESTRUCTOR(_func) static void __attribute__((destructor)) _func (void);
-
-#elif defined (_MSC_VER) && (_MSC_VER >= 1500)
-/* Visual studio 2008 and later has _Pragma */
-
-#define G_HAS_CONSTRUCTORS 1
-
-/* We do some weird things to avoid the constructors being optimized
- * away on VS2015 if WholeProgramOptimization is enabled. First we
- * make a reference to the array from the wrapper to make sure its
- * references. Then we use a pragma to make sure the wrapper function
- * symbol is always included at the link stage. Also, the symbols
- * need to be extern (but not dllexport), even though they are not
- * really used from another object file.
- */
-
-/* We need to account for differences between the mangling of symbols
- * for Win32 (x86) and x64 programs, as symbols on Win32 are prefixed
- * with an underscore but symbols on x64 are not.
- */
-#ifdef _WIN64
-#define G_MSVC_SYMBOL_PREFIX ""
-#else
-#define G_MSVC_SYMBOL_PREFIX "_"
-#endif
-
-#define G_DEFINE_CONSTRUCTOR(_func) G_MSVC_CTOR (_func, G_MSVC_SYMBOL_PREFIX)
-#define G_DEFINE_DESTRUCTOR(_func) G_MSVC_DTOR (_func, G_MSVC_SYMBOL_PREFIX)
-
-#define G_MSVC_CTOR(_func,_sym_prefix) \
- static void _func(void); \
- extern int (* _array ## _func)(void); \
- int _func ## _wrapper(void) { _func(); g_slist_find (NULL, _array ## _func); return 0; } \
- __pragma(comment(linker,"/include:" _sym_prefix # _func "_wrapper")) \
- __pragma(section(".CRT$XCU",read)) \
- __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _wrapper;
-
-#define G_MSVC_DTOR(_func,_sym_prefix) \
- static void _func(void); \
- extern int (* _array ## _func)(void); \
- int _func ## _constructor(void) { atexit (_func); g_slist_find (NULL, _array ## _func); return 0; } \
- __pragma(comment(linker,"/include:" _sym_prefix # _func "_constructor")) \
- __pragma(section(".CRT$XCU",read)) \
- __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _constructor;
-
-#elif defined (_MSC_VER)
-
-#define G_HAS_CONSTRUCTORS 1
-
-/* Pre Visual studio 2008 must use #pragma section */
-#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1
-#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1
-
-#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \
- section(".CRT$XCU",read)
-#define G_DEFINE_CONSTRUCTOR(_func) \
- static void _func(void); \
- static int _func ## _wrapper(void) { _func(); return 0; } \
- __declspec(allocate(".CRT$XCU")) static int (*p)(void) = _func ## _wrapper;
-
-#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \
- section(".CRT$XCU",read)
-#define G_DEFINE_DESTRUCTOR(_func) \
- static void _func(void); \
- static int _func ## _constructor(void) { atexit (_func); return 0; } \
- __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor;
-
-#elif defined(__SUNPRO_C)
-
-/* This is not tested, but i believe it should work, based on:
- * http://opensource.apple.com/source/OpenSSL098/OpenSSL098-35/src/fips/fips_premain.c
- */
-
-#define G_HAS_CONSTRUCTORS 1
-
-#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1
-#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1
-
-#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \
- init(_func)
-#define G_DEFINE_CONSTRUCTOR(_func) \
- static void _func(void);
-
-#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \
- fini(_func)
-#define G_DEFINE_DESTRUCTOR(_func) \
- static void _func(void);
-
-#else
-
-/* constructors not supported for this compiler */
-
-#endif
-
-#endif /* __GTK_DOC_IGNORE__ */
-
-#ifdef G_HAS_CONSTRUCTORS
-
-#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
-#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(resource_constructor)
-#endif
-G_DEFINE_CONSTRUCTOR(resource_constructor)
-#ifdef G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA
-#pragma G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(resource_destructor)
-#endif
-G_DEFINE_DESTRUCTOR(resource_destructor)
-
-#else
-#warning "Constructor not supported on this compiler, linking in resources will not work"
-#endif
-
-static void resource_constructor (void)
-{
- g_static_resource_init (&static_resource);
-}
-
-static void resource_destructor (void)
-{
- g_static_resource_fini (&static_resource);
-}
diff --git a/src/gresource/greeter-style-css.h b/src/gresource/greeter-style-css.h
deleted file mode 100644
index 562698d..0000000
--- a/src/gresource/greeter-style-css.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef __RESOURCE_greeter_css_H__
-#define __RESOURCE_greeter_css_H__
-
-#include
-
-extern GResource *greeter_css_get_resource (void);
-#endif
diff --git a/src/gresource/meson.build b/src/gresource/meson.build
index aea0fb7..f69d706 100644
--- a/src/gresource/meson.build
+++ b/src/gresource/meson.build
@@ -2,6 +2,6 @@
# ------->>> GRESOURCE <<<------- #
# =============================== #
-gresource_headers = ['greeter-style-css.h']
+gresource_headers = ['greeter-resources.h']
install_headers(gresource_headers, subdir : 'lightdm-webkit2-greeter')
diff --git a/src/meson.build b/src/meson.build
index 54a1b5a..b03e904 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -20,8 +20,7 @@ webext = shared_library(
# ------->>> Greeter <<<------- #
# ============================= #
-greeter_headers = ['greeter-style-css.h']
-greeter_sources = ['greeter-style-css.c', 'greeter.c']
+greeter_sources = ['greeter-resources.c', 'greeter.c']
gresource_sources = include_directories('gresource')
extdir = '"@0@/@1@"'.format(get_option('libdir'), 'lightdm-webkit2-greeter')
@@ -30,8 +29,6 @@ greeter_cargs = [
'-DLIGHTDM_WEBKIT2_GREETER_EXTENSIONS_DIR=@0@'.format(extdir)
]
-install_headers(greeter_headers, subdir : 'lightdm-webkit2-greeter')
-
greeter = executable(
'lightdm-webkit2-greeter',
greeter_sources,
diff --git a/src/webkit2-extension.c b/src/webkit2-extension.c
index 6b1b206..bf2b5f7 100644
--- a/src/webkit2-extension.c
+++ b/src/webkit2-extension.c
@@ -1,5 +1,5 @@
/*
- * lightdm-webkit2-greeter-ext.c
+ * webkit2-extension.c
*
* Copyright © 2014-2016 Antergos Developers
*
diff --git a/themes/antergos/js/greeter.js b/themes/antergos/js/greeter.js
index 77245e4..f42a7b1 100644
--- a/themes/antergos/js/greeter.js
+++ b/themes/antergos/js/greeter.js
@@ -1,9 +1,8 @@
/*
+ * greeter.js
*
* Copyright © 2015-2016 Antergos
*
- * greeter.js
- *
* This file is part of lightdm-webkit2-greeter
*
* lightdm-webkit2-greeter is free software: you can redistribute it and/or modify
@@ -59,8 +58,6 @@ class AntergosThemeUtils {
}
_util = this;
- this.initialize_theme_heartbeat();
-
this.debug = false;
this.lang = window.navigator.language.split( '-' )[ 0 ].toLowerCase();
this.translations = window.ant_translations;
@@ -79,40 +76,6 @@ class AntergosThemeUtils {
return _util;
}
-
- /**
- * Initialize greeter theme heartbeat. Themes start the heartbeat by sending a post message
- * via JavaScript. Once started, the heartbeat will schedule a check to ensure that the
- * theme has sent a subsequent heartbeat message. Once started, if a heartbeat message is not
- * received by the time any of the greeter's subsequent checks run it will assume that there
- * has been an error in the web process and fallback to the simple theme.
- */
- initialize_theme_heartbeat() {
- var heartbeats = 0;
-
- this.log('Initializing theme heartbeat.');
- this.heartbeat = setInterval(() => {
- ++heartbeats;
- window.webkit.messageHandlers.GreeterBridge.postMessage('Heartbeat');
- if (heartbeats < 5) {
- console.log('Sending heartbeat...');
- }
- }, 5000);
- }
-
-
- /**
- * Exits the heartbeat.
- *
- * Before starting the user's session, themes should exit the heartbeat
- * to prevent a race condition when the greeter is shutting down.
- */
- stop_theme_heartbeat() {
- window.webkit.messageHandlers.GreeterBridge.postMessage('Heartbeat::Exit');
- clearInterval(this.heartbeat);
- }
-
-
setup_cache_backend() {
// Do we have access to localStorage?
try {