1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
#include "integration-test-common.h"
enum lock_state_t state = 0;
GtkSessionLockInstance* lock;
GtkWindow* window;
static GtkWidget* popuper;
static void on_monitor(GtkSessionLockInstance* lock, GdkMonitor* monitor, void* data) {
(void)lock; (void)monitor; (void)data;
window = GTK_WINDOW(gtk_window_new());
popuper = popup_widget_new();
gtk_window_set_child(window, popuper);
gtk_session_lock_instance_assign_window_to_monitor(lock, window, monitor);
}
static void callback_0() {
lock = gtk_session_lock_instance_new();
connect_lock_signals_except_monitor(lock, &state);
g_signal_connect(lock, "monitor", G_CALLBACK(on_monitor), NULL);
ASSERT(gtk_session_lock_instance_lock(lock));
}
static void callback_1() {
ASSERT_EQ(state, LOCK_STATE_LOCKED, "%d");
popup_widget_toggle_open(popuper);
}
static void callback_2() {
ASSERT_EQ(state, LOCK_STATE_LOCKED, "%d");
gtk_session_lock_instance_unlock(lock);
}
static void callback_3() {
ASSERT_EQ(state, LOCK_STATE_UNLOCKED, "%d");
}
TEST_CALLBACKS(
callback_0,
callback_1,
callback_2,
callback_3,
)
|