diff --git a/src/gtklock.c b/src/gtklock.c index eaa0b8b..796abdd 100644 --- a/src/gtklock.c +++ b/src/gtklock.c @@ -98,6 +98,8 @@ struct GtkLock* create_gtklock(void) { } void gtklock_activate(struct GtkLock *gtklock) { + g_application_hold(G_APPLICATION(gtklock->app)); + if(!gtk_session_lock_is_supported()) report_error_and_exit("Your compositor doesn't support ext-session-lock"); gtklock->lock = gtk_session_lock_prepare_lock(); diff --git a/src/source.c b/src/source.c index 52398f7..c9ea0ee 100644 --- a/src/source.c +++ b/src/source.c @@ -81,7 +81,9 @@ static GOptionEntry debug_entries[] = { static pid_t parent = -2; static void monitors_added(GdkDisplay *display, GdkMonitor *monitor, gpointer user_data) { - if(window_by_monitor(monitor) == NULL) create_window(monitor); + struct Window *w = NULL; + if(window_by_monitor(monitor) == NULL) w = create_window(monitor); + if(w == g_array_index(gtklock->windows, struct Window*, 0)) gtklock_focus_window(gtklock, w); module_on_output_change(gtklock); }