aboutsummaryrefslogtreecommitdiff
path: root/src/main-window.vala
diff options
context:
space:
mode:
authorMichael Webster <miketwebster@gmail.com>2017-10-23 23:13:02 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-10-23 23:26:10 +0200
commit00030570c0bb5f960f0b8759d3dcd265f6f27376 (patch)
tree978f230afa88fdaf091120a5fb729298e86de665 /src/main-window.vala
parent3bc7cc65e3c6ac9758e6c84447496d6d91377ac3 (diff)
downloadarctica-greeter-00030570c0bb5f960f0b8759d3dcd265f6f27376.tar.gz
arctica-greeter-00030570c0bb5f960f0b8759d3dcd265f6f27376.tar.bz2
arctica-greeter-00030570c0bb5f960f0b8759d3dcd265f6f27376.zip
background: Don't realize() this immediately - only start the image gathering thread during initialization.
Wait for the main window to be realized before passing its cairo surface to the background object and drawing the background for the first time. We also need to make sure in our background's size_allocate function to abort if we're not really active yet (no GdkWindow realized, and no AnimateTimer yet). Moved some background init stuff from the main window to the background class for clarity, and removed the default_background setting - it is already grabbing the default color in Background's class init. Obtained (and modified) from the following slick-greeter commits: d2a7122d731c0f19f502a9efba1feee651bcfa7c d4a2a94eb7120393bb225b680fdfecf5c1d3c4ea 941ecbc5dcb4e7a072c1ca8816d9678f59a96418 Adaptations by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
Diffstat (limited to 'src/main-window.vala')
-rw-r--r--src/main-window.vala21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/main-window.vala b/src/main-window.vala
index ac87200..4ffd51f 100644
--- a/src/main-window.vala
+++ b/src/main-window.vala
@@ -50,15 +50,7 @@ public class MainWindow : Gtk.Window
has_resize_grip = false;
ArcticaGreeter.add_style_class (this);
- realize ();
- Gdk.DrawingContext background_context;
- background_context = get_window().begin_draw_frame(get_window().get_visible_region());
- background = new Background (background_context.get_cairo_context().get_target());
- background.draw_grid = AGSettings.get_boolean (AGSettings.KEY_DRAW_GRID);
- background.default_background = AGSettings.get_string (AGSettings.KEY_BACKGROUND);
- background.set_logo (AGSettings.get_string (AGSettings.KEY_LOGO));
- get_window().end_draw_frame(background_context);
- background.show ();
+ background = new Background ();
add (background);
ArcticaGreeter.add_style_class (background);
@@ -207,6 +199,17 @@ public class MainWindow : Gtk.Window
menubar.cleanup();
}
+ public override void realize ()
+ {
+ base.realize ();
+ Gdk.DrawingContext background_context;
+ background_context = get_window().begin_draw_frame(get_window().get_visible_region());
+
+ background.set_surface (background_context.get_cairo_context().get_target());
+
+ get_window().end_draw_frame(background_context);
+ }
+
private void monitors_changed_cb (Gdk.Screen screen)
{
Gdk.Display display;