static GdkFilterReturn egg_tray_manager_window_filter (GdkXEvent *xev, GdkEvent *event, gpointer data) { XEvent *xevent = (GdkXEvent *)xev; EggTrayManager *manager = data; if (xevent->type == ClientMessage) { if (xevent->xclient.message_type == manager->opcode_atom) { return egg_tray_manager_handle_event (manager, (XClientMessageEvent *)xevent); } else if (xevent->xclient.message_type == manager->message_data_atom) { egg_tray_manager_handle_message_data (manager, (XClientMessageEvent *)xevent); return GDK_FILTER_REMOVE; } } else if (xevent->type == SelectionClear) { g_signal_emit (manager, manager_signals[LOST_SELECTION], 0); egg_tray_manager_unmanage (manager); } return GDK_FILTER_CONTINUE; }
static void egg_tray_manager_finalize (GObject *object) { EggTrayManager *manager; manager = EGG_TRAY_MANAGER (object); egg_tray_manager_unmanage (manager); G_OBJECT_CLASS (parent_class)->finalize (object); }
static void egg_tray_manager_finalize (GObject *object) { EggTrayManager *manager; manager = EGG_TRAY_MANAGER (object); egg_tray_manager_unmanage (manager); g_list_free (manager->messages); g_hash_table_destroy (manager->socket_table); G_OBJECT_CLASS (parent_class)->finalize (object); }