아 이거 분명

디스패쳐 문제 같은데...

그냥 내글은 클릭 안 하면되

괜히 클릭하고선

지 관심사 아니라구 쌍욕하지 말구..

거거 정신병이다.. ㅎㅎㅎ





static DBusObjectPathVTable vtable = {  .un레지스터_function = NULL,  

.message_function    = on_message,};typedef struct {  GSource   source;  CSystray *systray;  GPollFD   poll_fd;} DbusEventSource;

static gboolean dbus_event_source_prepare (GSource *source, int *timeout){  DbusEventSource *dbus_source = (DbusEventSource *) source;
*timeout = -1;  
return dbus_connection_get_dispatch_status (dbus_source->systray->conn) ==           DBUS_DISPATCH_DATA_REMAINS;}

static gboolean dbus_event_source_check (GSource *source){  DbusEventSource *dbus_source = (DbusEventSource *) source;  return dbus_connection_get_dispatch_status (dbus_source->systray->conn) ==           DBUS_DISPATCH_DATA_REMAINS;}

static gboolean dbus_event_source_dispatch (GSource     *source,                                            GSourceFunc  callback,                                            gpointer     user_data){  c_log_info ("dbus_event_source_dispatch");  CSystray *systray = ((DbusEventSource *) source)->systray;  while (true)    if (dbus_connection_dispatch (systray->conn) != DBUS_DISPATCH_DATA_REMAINS)      break;  return TRUE;}

static void dbus_event_source_finalize (GSource *source){  c_log_info ("dbus_event_source_finalize");}

static GSourceFuncs event_funcs = {  dbus_event_source_prepare,  dbus_event_source_check,  dbus_event_source_dispatch,  dbus_event_source_finalize};static GSource *dbus_event_source_new (CSystray *systray){  c_log_info ("dbus_event_source_new");  GSource *source;  DbusEventSource *dbus_source;  source = g_source_new (&event_funcs, sizeof (DbusEventSource));  dbus_source = (DbusEventSource *) source;  dbus_source->systray = systray;  dbus_connection_add_filter (systray->conn, on_message, NULL, NULL);  dbus_connection_get_socket (systray->conn, &dbus_source->poll_fd.fd);  dbus_source->poll_fd.events = G_IO_IN;  g_source_add_poll (source, &dbus_source->poll_fd);  g_source_set_priority (source, G_PRIORITY_DEFAULT);  g_source_set_can_recurse (source, TRUE);  return source;}