2002-11-19 Bill Haneman <bill.haneman@sun.com>
+ FIX for bug 99024.
+
+ * libspi/spi-private.h:
+ Added DGB() macro, and extern int _dbg declaration.
+
+ * registryd/registry.c:
+ (definitions) storage for _dbg.
+ (spi_registry_init):
+ Get environment variable "AT_SPI_DEBUG".
+ (spi_registry_set_debug):
+ New method, to initialize _dbg value.
+ (spi_listener_struct_new, spi_registry_object_finalize):
+ (notify_listeners_cb):
+ Changed fprintfs to use DBG and g_warning().
+
+ * registryd/deviceeventcontroller.c:
+ (_deregister_keygrab, spi_controller_register_device_listener):
+ Changed debug/warning messages to use DBG macro.
+
+ * libspi/listener.c:
+ (impl_notify_event):
+ Changed warning messages to use DBG macro and g_warning().
+
+ * atk-bridge/bridge.c:
+ (atk_bridge_init, spi_atk_bridge_get_registry):
+ (spi_atk_bridge_exit_func):
+ (spi_atk_bridge_property_event_listener):
+ Changed status, warning, and error messages to use
+ g_warning, g_message, and DBG macros.
+
+ (atk_bridge_init):
+ Read the state of the AT_SPI_DEBUG environment variable
+ and set a local '_dbg' accordingly.
+
+2002-11-19 Bill Haneman <bill.haneman@sun.com>
+
FIXES for 98836, 98842, other bugs.
* configure.in:
#undef SPI_BRIDGE_DEBUG
+#define DBG(a,b) if(_dbg>=(a))b
+
+static int _dbg;
+
static CORBA_Environment ev;
static Accessibility_Registry registry = NULL;
static SpiApplication *this_app = NULL;
}
atk_bridge_initialized = TRUE;
+ _dbg = g_ascii_digit_value (g_getenv ("AT_SPI_DEBUG"));
+
if (!bonobo_init (argc, argv ? *argv : NULL))
{
g_error ("Could not initialize Bonobo");
*/
if (bonobo_activation_iid_get ())
{
- fprintf (stderr, "Found Bonobo component\n");
+ DBG (1, g_message ("Found Bonobo component\n"));
toplevel_handler = g_signal_connect (atk_get_root (),
"children-changed::add",
(GCallback) spi_atk_bridge_toplevel_added,
this_app = spi_application_new (atk_get_root ());
- fprintf (stderr, "About to register application\n");
+ DBG (1, g_message ("About to register application\n"));
spi_atk_bridge_register_application (spi_atk_bridge_get_registry ());
g_atexit (spi_atk_bridge_exit_func);
- fprintf (stderr, "Application registered & listening\n");
+ DBG (1, g_message ("Application registered & listening\n"));
}
if (registry_died || (registry == NULL)) {
CORBA_exception_init (&ev);
- if (registry_died) g_warning ("registry died! restarting...");
+ if (registry_died)
+ DBG (1, g_warning ("registry died! restarting..."));
registry = bonobo_activation_activate_from_id (
"OAFIID:Accessibility_Registry:1.0", 0, NULL, &ev);
{
BonoboObject *app = (BonoboObject *) this_app;
- fprintf (stderr, "exiting bridge\n");
+ DBG (1, g_message ("exiting bridge\n"));
if (!app)
{
*/
if (!bonobo_is_initialized ())
{
- fprintf (stderr, "Re-initializing bonobo\n");
+ DBG (1, g_warning ("Re-initializing bonobo\n"));
g_assert (bonobo_init (0, NULL));
g_assert (bonobo_activate ());
}
deregister_application (app);
- fprintf (stderr, "bridge exit func complete.\n");
+ DBG (1, g_message ("bridge exit func complete.\n"));
if (g_getenv ("AT_BRIDGE_SHUTDOWN"))
{
s2 = g_type_name (G_OBJECT_TYPE (g_value_get_object (param_values + 0)));
s = atk_object_get_name (ATK_OBJECT (g_value_get_object (param_values + 0)));
values = (AtkPropertyValues*) g_value_get_pointer (param_values + 1);
- fprintf (stderr, "Received (property) signal %s:%s:%s from object %s (gail %s)\n",
- g_type_name (signal_query.itype), name, values->property_name, s, s2);
+ DBG (2, g_message ("Received (property) signal %s:%s:%s from object %s (gail %s)\n",
+ g_type_name (signal_query.itype), name, values->property_name, s, s2));
#endif
fprintf (stderr, "source name: '%s'\n",
Accessibility_Accessible__get_name(e->source, ev));
if (ev->_major != CORBA_NO_EXCEPTION) {
- fprintf(stderr,
- ("Accessibility app error: exception during event notification: %s\n"),
- CORBA_exception_id(ev));
+ DBG (2, g_warning ("Accessibility app error: exception during event notification: %s\n"),
+ CORBA_exception_id(ev)));
}
/*
fprintf (stderr, "source is component ? : %s\n",
G_BEGIN_DECLS
+#define DBG(a,b) if(_dbg>=(a))b
+
+extern int _dbg;
+
typedef enum {
SPI_RE_ENTRANT_CONTINUE = 0,
SPI_RE_ENTRANT_TERMINATE
}
else
{
- g_warning ("De-registering non-existant grab");
+ DBG (1, g_warning ("De-registering non-existant grab"));
}
}
controller->mouse_listeners = g_list_prepend (controller->mouse_listeners, listener);
break;
default:
- fprintf (stderr, "WARNING: listener registration for unknown device type.\n");
+ DBG (1, g_warning ("listener registration for unknown device type.\n"));
break;
}
return FALSE;
if (BONOBO_EX (ev))
{
is_consumed = FALSE;
- fprintf (stderr, "error notifying listener, removing it\n");
+ DBG (2, g_warning ("error notifying listener, removing it\n"));
spi_deregister_controller_device_listener (controller, listener,
ev);
CORBA_exception_free (ev);
}
}
else
- fprintf (stderr, "XKB event %d\n", xkb_ev->xkb_type);
+ DBG (2, g_warning ("XKB event %d\n", xkb_ev->xkb_type));
}
return GDK_FILTER_CONTINUE;
}
if (gdk_error_trap_pop ())
{
- g_warning ("Error emitting keystroke");
+ DBG (-1, g_warning ("Error emitting keystroke"));
}
}
/* A pointer to our parent object class */
static SpiListenerClass *spi_registry_parent_class;
+extern int _dbg = 0;
+
typedef enum {
ETYPE_FOCUS,
ETYPE_OBJECT,
EventTypeCategory event_type_cat;
} SpiListenerStruct;
+static void
+spi_registry_set_debug (char *debug_flag_string)
+{
+ if (debug_flag_string)
+ _dbg = g_ascii_digit_value(debug_flag_string);
+}
+
SpiListenerStruct *
spi_listener_struct_new (Accessibility_EventListener listener, CORBA_Environment *ev)
{
static void
spi_registry_object_finalize (GObject *object)
{
- fprintf (stderr, "spi_registry_object_finalize called\n");
+ DBG (1, g_warning ("spi_registry_object_finalize called\n"));
/* TODO: unref deviceeventcontroller, which disconnects key listener */
G_OBJECT_CLASS (spi_registry_parent_class)->finalize (object);
(Accessibility_EventListener) ls->listener, &ctx->e_out, ctx->ev);
if (ctx->ev->_major != CORBA_NO_EXCEPTION)
{
- g_warning ("Accessibility app error: exception during "
+ DBG (1, g_warning ("Accessibility app error: exception during "
"event notification: %s\n",
- CORBA_exception_id (ctx->ev));
+ CORBA_exception_id (ctx->ev)));
if (ctx->ev->_major == CORBA_SYSTEM_EXCEPTION)
CORBA_exception_init (ctx->ev);
/* clear system exception on notify, it means listener is dead but
static void
spi_registry_init (SpiRegistry *registry)
{
- fprintf (stderr, "REGISTRY INITIALIZED: toolkit list = %p\n",
- ®istry->toolkit_listeners);
+ spi_registry_set_debug (g_getenv ("AT_SPI_DEBUG"));
registry->object_listeners = NULL;
registry->window_listeners = NULL;
registry->toolkit_listeners = NULL;