X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=test%2Flogin-helper-server-test.c;h=61446e287c9c8d5e2743c25b8ea79094ff0485df;hb=292af2a7b6ad5b6354f5329b795329ccdb8f14ce;hp=ba6a27482aaaf0e2aa2aa3e2ff7085b2e603c19d;hpb=501a77e981f3177d3d5951e96246a45a4436c3ea;p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git diff --git a/test/login-helper-server-test.c b/test/login-helper-server-test.c index ba6a274..61446e2 100644 --- a/test/login-helper-server-test.c +++ b/test/login-helper-server-test.c @@ -1,5 +1,8 @@ #include #include +#include +#include +#include static void test_init_login_helper_vpointers (LoginHelper *helper, gpointer test_set_safe, @@ -12,6 +15,12 @@ static LoginHelperDeviceReqFlags test_get_device_reqs (LoginHelper *helper); static Window* test_get_raise_windows (LoginHelper *helper); +static void test_post_window (void); + +static void test_set_wm_dock (void); + +static GtkWidget *mainwin = NULL; + int main (int argc, char **argv) { @@ -24,7 +33,7 @@ main (int argc, char **argv) g_error ("Could not initialize oaf / Bonobo"); } - obj_id = "OAFIID:GNOME_GOK:1.0"; /* just for testing, stolen from GOK */ + obj_id = "OAFIID:GNOME_TEST:1.0"; /* just for testing, install manually */ helper = BONOBO_OBJECT (g_object_new (LOGIN_HELPER_TYPE, NULL)); @@ -72,7 +81,13 @@ main (int argc, char **argv) test_init_login_helper_vpointers ((LoginHelper*)helper, test_set_safe, test_get_device_reqs, test_get_raise_windows); + gtk_init (&argc, &argv); + + test_post_window (); + bonobo_main (); + + return 0; } static void @@ -96,11 +111,51 @@ test_set_safe (LoginHelper *helper, gboolean safe) static LoginHelperDeviceReqFlags test_get_device_reqs (LoginHelper *helper) { - return 0; + return LOGIN_HELPER_POST_WINDOWS; } static Window* test_get_raise_windows (LoginHelper *helper) { - return NULL; + Window *winlist = g_new0 (Window, 2); + winlist[0] = GDK_WINDOW_XWINDOW (mainwin->window); + winlist[1] = None; + return winlist; +} + + +void +test_set_wm_dock () +{ + Atom atom_type[1], atom_window_type; + + gtk_widget_hide (mainwin); + + gdk_error_trap_push (); + atom_window_type = gdk_x11_get_xatom_by_name ("_NET_WM_WINDOW_TYPE"); + + atom_type[0] = gdk_x11_get_xatom_by_name ("_NET_WM_WINDOW_TYPE_DOCK"); + + XChangeProperty (GDK_WINDOW_XDISPLAY (mainwin->window), + GDK_WINDOW_XWINDOW (mainwin->window), + atom_window_type, + XA_ATOM, 32, PropModeReplace, + (guchar *) &atom_type, 1); + gdk_error_trap_pop (); + + gtk_widget_show (mainwin); + +} + +static void +test_post_window () +{ + mainwin = gtk_window_new (GTK_WINDOW_TOPLEVEL); + + gtk_window_set_screen (GTK_WINDOW (mainwin), gdk_screen_get_default ()); + + /* gtk_window_set_keep_above (GTK_WINDOW (mainwin), true); optional */ + /* test_set_wm_dock (); optional */ + + gtk_widget_show_all (mainwin); }