---
 jni/src/AtkWrapper.c |   29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

--- a/jni/src/AtkWrapper.c
+++ b/jni/src/AtkWrapper.c
@@ -341,10 +341,9 @@ window_open_handler (gpointer p)
     g_signal_emit_by_name(ATK_OBJECT(atk_get_root()),
                           "children-changed::add",
                           n,
-                          atk_obj,
-                          NULL);
+                          atk_obj);
 
-    g_signal_emit_by_name(atk_obj, "create", 0);
+    g_signal_emit_by_name(atk_obj, "create");
   }
 
   queue_free_callback_para(para);
@@ -398,10 +397,9 @@ window_close_handler (gpointer p)
     g_signal_emit_by_name(ATK_OBJECT(atk_get_root()),
                           "children-changed::remove",
                           n,
-                          atk_obj,
-                          NULL);
+                          atk_obj);
 
-    g_signal_emit_by_name(atk_obj, "destroy", 0);
+    g_signal_emit_by_name(atk_obj, "destroy");
   }
 
   queue_free_callback_para(para);
@@ -433,7 +431,7 @@ window_minimize_handler (gpointer p)
   CallbackPara *para = (CallbackPara*)p;
   AtkObject* atk_obj = ATK_OBJECT(para->jaw_impl);
 
-  g_signal_emit_by_name(atk_obj, "minimize", 0);
+  g_signal_emit_by_name(atk_obj, "minimize");
 
   queue_free_callback_para(para);
 
@@ -462,7 +460,7 @@ window_maximize_handler (gpointer p)
   CallbackPara *para = (CallbackPara*)p;
   AtkObject* atk_obj = ATK_OBJECT(para->jaw_impl);
 
-  g_signal_emit_by_name(atk_obj, "maximize", 0);
+  g_signal_emit_by_name(atk_obj, "maximize");
 
   queue_free_callback_para(para);
 
@@ -490,7 +488,7 @@ window_restore_handler (gpointer p)
   CallbackPara *para = (CallbackPara*)p;
   AtkObject* atk_obj = ATK_OBJECT(para->jaw_impl);
 
-  g_signal_emit_by_name(atk_obj, "restore", 0);
+  g_signal_emit_by_name(atk_obj, "restore");
 
   queue_free_callback_para(para);
 
@@ -519,7 +517,7 @@ window_activate_handler (gpointer p)
   CallbackPara *para = (CallbackPara*)p;
   AtkObject* atk_obj = ATK_OBJECT(para->jaw_impl);
 
-  g_signal_emit_by_name(atk_obj, "activate", 0);
+  g_signal_emit_by_name(atk_obj, "activate");
 
   queue_free_callback_para(para);
 
@@ -547,7 +545,7 @@ window_deactivate_handler (gpointer p)
   CallbackPara *para = (CallbackPara*)p;
   AtkObject* atk_obj = ATK_OBJECT(para->jaw_impl);
 
-  g_signal_emit_by_name(atk_obj, "deactivate", 0);
+  g_signal_emit_by_name(atk_obj, "deactivate");
 
   queue_free_callback_para(para);
 
@@ -577,7 +575,7 @@ window_state_change_handler (gpointer p)
   CallbackPara *para = (CallbackPara*)p;
   AtkObject* atk_obj = ATK_OBJECT(para->jaw_impl);
 
-  g_signal_emit_by_name(atk_obj, "state-change", 0);
+  g_signal_emit_by_name(atk_obj, "state-change", 0, 0);
 
   queue_free_callback_para(para);
 
@@ -1059,6 +1057,7 @@ bounds_changed_handler (gpointer p)
 {
   CallbackPara *para = (CallbackPara*)p;
   AtkObject* atk_obj = ATK_OBJECT(para->jaw_impl);
+  AtkRectangle rect;
 
   if (atk_obj == NULL)
   {
@@ -1067,7 +1066,11 @@ bounds_changed_handler (gpointer p)
     queue_free_callback_para(para);
     return G_SOURCE_REMOVE;
   }
-  g_signal_emit_by_name(atk_obj, "bounds_changed");
+  rect.x = -1;
+  rect.y = -1;
+  rect.width = -1;
+  rect.height = -1;
+  g_signal_emit_by_name(atk_obj, "bounds_changed", &rect);
   queue_free_callback_para(para);
 
   return G_SOURCE_REMOVE;
