void ags_lv2_browser_disconnect(AgsConnectable *connectable) { AgsLv2Browser *lv2_browser; lv2_browser = AGS_LV2_BROWSER(connectable); if((AGS_LV2_BROWSER_CONNECTED & (lv2_browser->flags)) == 0){ return; } lv2_browser->flags &= (~AGS_LV2_BROWSER_CONNECTED); g_object_disconnect(G_OBJECT(lv2_browser->filename), "any_signal::changed", G_CALLBACK(ags_lv2_browser_plugin_filename_callback), lv2_browser, NULL); g_object_disconnect(G_OBJECT(lv2_browser->effect), "any_signal::changed", G_CALLBACK(ags_lv2_browser_plugin_uri_callback), lv2_browser, NULL); }
void ags_select_acceleration_dialog_disconnect(AgsConnectable *connectable) { AgsAutomationEditor *automation_editor; AgsSelectAccelerationDialog *select_acceleration_dialog; select_acceleration_dialog = AGS_SELECT_ACCELERATION_DIALOG(connectable); if((AGS_SELECT_ACCELERATION_DIALOG_CONNECTED & (select_acceleration_dialog->flags)) == 0){ return; } select_acceleration_dialog->flags &= (~AGS_SELECT_ACCELERATION_DIALOG_CONNECTED); automation_editor = AGS_WINDOW(select_acceleration_dialog->main_window)->automation_window->automation_editor; g_object_disconnect(G_OBJECT(select_acceleration_dialog), "any_signal::response", G_CALLBACK(ags_select_acceleration_dialog_response_callback), select_acceleration_dialog, NULL); g_object_disconnect(G_OBJECT(select_acceleration_dialog->add), "any_signal::clicked", G_CALLBACK(ags_select_acceleration_dialog_add_callback), select_acceleration_dialog, NULL); g_object_disconnect(G_OBJECT(automation_editor), "any_signal::machine-changed", G_CALLBACK(ags_select_acceleration_dialog_machine_changed_callback), select_acceleration_dialog, NULL); }
void ags_audiorec_disconnect(AgsConnectable *connectable) { AgsAudiorec *audiorec; GList *list; if((AGS_MACHINE_CONNECTED & (AGS_MACHINE(connectable)->flags)) == 0){ return; } ags_audiorec_parent_connectable_interface->disconnect(connectable); audiorec = AGS_AUDIOREC(connectable); /* filename */ g_object_disconnect(audiorec->open, "any_signal::clicked", G_CALLBACK(ags_audiorec_open_callback), audiorec, NULL); /* mode */ g_object_disconnect(audiorec->keep_data, "any_signal::clicked", G_CALLBACK(ags_audiorec_keep_data_callback), audiorec, NULL); g_object_disconnect(audiorec->replace_data, "any_signal::clicked", G_CALLBACK(ags_audiorec_replace_data_callback), audiorec, NULL); g_object_disconnect(audiorec->mix_data, "any_signal::clicked", G_CALLBACK(ags_audiorec_mix_data_callback), audiorec, NULL); }
/** * Restore the Buddy List to its former glory by splitting off conversations * * This effectively will undo everything done by pwm_merge_conversation(). The * Buddy List should be returned to its original state, and any conversations * should be in a separate window. * * @param[in] gtkblist The Buddy List that has had enough of this plugin **/ void pwm_split_conversation(PidginBuddyList *gtkblist) { PidginWindow * gtkconvwin; /*< Conversation window merged into gtkblist */ GtkWidget *paned; /*< The panes on the Buddy List window */ gchar *title; /*< Original title of the Buddy List window */ gtkconvwin = pwm_blist_get_convs(gtkblist); paned = pwm_fetch(gtkblist, "paned"); title = pwm_fetch(gtkblist, "title"); /* Ensure the conversation window's menu items are returned. */ pwm_set_conv_menus_visible(gtkblist, FALSE); /* End the association between the Buddy List and its conversation * window. */ g_object_steal_data(G_OBJECT(gtkblist->notebook), "pwm_convs"); g_object_steal_data(G_OBJECT(gtkconvwin->notebook), "pwm_blist"); /* Point the conversation window's structure back to its original * window. */ gtkconvwin->window = pwm_fetch(gtkblist, "conv_window"); pwm_clear(gtkblist, "conv_window"); /* Stop passing focus events from Buddy List to conversation window. */ g_object_disconnect(G_OBJECT(gtkblist->window), "any_signal", G_CALLBACK(focus_in_event_cb), gtkconvwin->window, NULL); /* Restore the conversation window's notebook. */ pwm_widget_replace(pwm_fetch(gtkblist, "placeholder"), gtkconvwin->notebook, NULL); pwm_clear(gtkblist, "placeholder"); /* Free the dummy conversation, and display the window if it survives. */ pwm_free_dummy_conversation(gtkblist); if (g_list_find(pidgin_conv_windows_get_list(), gtkconvwin) != NULL) pidgin_conv_window_show(gtkconvwin); /* Restore the Buddy List's original structure, and destroy the panes. */ pwm_widget_replace(paned, gtkblist->notebook, NULL); pwm_clear(gtkblist, "paned"); /* Restore the window title and icons from before conversations set * them. */ gtk_window_set_icon_list(GTK_WINDOW(gtkblist->window), NULL); gtk_window_set_title(GTK_WINDOW(gtkblist->window), title); g_free(title); pwm_clear(gtkblist, "title"); }
void ags_envelope_dialog_disconnect(AgsConnectable *connectable) { AgsEnvelopeDialog *envelope_dialog; envelope_dialog = AGS_ENVELOPE_DIALOG(connectable); if((AGS_ENVELOPE_DIALOG_CONNECTED & (envelope_dialog->flags)) == 0){ return; } envelope_dialog->flags &= (~AGS_ENVELOPE_DIALOG_CONNECTED); ags_connectable_disconnect(AGS_CONNECTABLE(envelope_dialog->envelope_editor)); ags_connectable_disconnect(AGS_CONNECTABLE(envelope_dialog->envelope_info)); if(envelope_dialog->pattern_envelope != NULL){ ags_connectable_disconnect(AGS_CONNECTABLE(envelope_dialog->pattern_envelope)); } /* applicable */ g_object_disconnect((GObject *) envelope_dialog->apply, "any_signal::clicked", G_CALLBACK(ags_envelope_dialog_apply_callback), (gpointer) envelope_dialog, NULL); g_object_disconnect((GObject *) envelope_dialog->ok, "any_signal::clicked", G_CALLBACK(ags_envelope_dialog_ok_callback), (gpointer) envelope_dialog, NULL); g_object_disconnect((GObject *) envelope_dialog->cancel, "any_signal::clicked", G_CALLBACK(ags_envelope_dialog_cancel_callback), (gpointer) envelope_dialog, NULL); }
/** * If the child is removed, remove the signals that we attached */ static void mozilla_embed_remove (GtkContainer *container, GtkWidget *widget) { MozillaEmbed *embed = MOZILLA_EMBED (container); g_object_disconnect (widget, "any_signal::scroll-event", mozilla_embed_child_scroll_event_cb, embed, "any_signal::event-after", mozilla_embed_child_event_after_cb, embed, "any_signal::grab-focus", mozilla_embed_child_grab_focus_cb, embed, NULL); GTK_CONTAINER_CLASS(parent_class)->remove (container, widget); }
void ags_soundcard_thread_stop(AgsThread *thread) { AgsSoundcardThread *soundcard_thread; AgsThread *main_loop; AgsPollingThread *polling_thread; GObject *soundcard; GList *poll_fd; soundcard_thread = AGS_SOUNDCARD_THREAD(thread); main_loop = ags_thread_get_toplevel(thread); soundcard = soundcard_thread->soundcard; /* stop thread and soundcard */ AGS_THREAD_CLASS(ags_soundcard_thread_parent_class)->stop(thread); //FIXME:JK: is this safe? ags_soundcard_stop(AGS_SOUNDCARD(soundcard)); g_atomic_int_or(&(thread->flags), AGS_THREAD_TIMING); /* find polling thread */ polling_thread = (AgsPollingThread *) ags_thread_find_type(main_loop, AGS_TYPE_POLLING_THREAD); /* remove poll fd */ poll_fd = ags_soundcard_get_poll_fd(AGS_SOUNDCARD(soundcard)); while(poll_fd != NULL){ if(polling_thread != NULL){ gint position; g_object_disconnect(G_OBJECT(poll_fd->data), "any_signal::dispatch", G_CALLBACK(ags_soundcard_thread_dispatch_callback), soundcard_thread, NULL); ags_polling_thread_remove_poll_fd(polling_thread, poll_fd->data); } poll_fd = poll_fd->next; } }
static void mouse_gestures_deactivate_tabs (MidoriView* view, MidoriBrowser* browser) { GtkWidget* web_view = midori_view_get_web_view (view); g_object_disconnect (web_view, "any_signal::button-press-event", mouse_gestures_button_press_event_cb, browser, "any_signal::motion-notify-event", mouse_gestures_motion_notify_event_cb, browser, "any_signal::button-release-event", mouse_gestures_button_release_event_cb, view, NULL); }
void ags_generic_preferences_disconnect(AgsConnectable *connectable) { AgsGenericPreferences *generic_preferences; generic_preferences = AGS_GENERIC_PREFERENCES(connectable); if((AGS_GENERIC_PREFERENCES_CONNECTED & (generic_preferences->flags)) == 0){ return; } generic_preferences->flags &= (~AGS_GENERIC_PREFERENCES_CONNECTED); g_object_disconnect(G_OBJECT(generic_preferences->rt_safe), "any_signal::clicked", G_CALLBACK(ags_generic_preferences_rt_safe_callback), generic_preferences, NULL); }
void ags_synth_input_line_disconnect(AgsConnectable *connectable) { AgsSynthInputLine *synth_input_line; synth_input_line = AGS_SYNTH_INPUT_LINE(connectable); if((AGS_LINE_CONNECTED & (AGS_LINE(synth_input_line)->flags)) == 0){ return; } ags_synth_input_line_parent_connectable_interface->disconnect(connectable); ags_connectable_disconnect(AGS_CONNECTABLE(synth_input_line->oscillator)); g_object_disconnect((GObject *) synth_input_line->oscillator, "any_signal::control-changed", G_CALLBACK(ags_synth_input_line_oscillator_control_changed_callback), (gpointer) synth_input_line, NULL); }
/** * A callback for when the total size of a GtkPaned changes * * This should be called after a new GtkPaned finds its parent and calculates * its "max-position" property. It is only intended to be run on this single * occassion, so it removes itself on completion. The call is used to set the * initial size of the Buddy List to the user's preference. * * @param[in] gobject Pointer to the GtkPaned structure that was resized * @param[in] pspec Unused * @param[in] data Pointer to the Buddy List that is a parent of gobject **/ static void notify_max_position_cb(GObject *gobject, U GParamSpec *pspec, gpointer data) { PidginBuddyList * gtkblist; /*< Buddy List window containing these panes */ gint max_position; /*< The "max-position" property of gobject */ gint size; /*< Desired size of the Buddy List pane */ gtkblist = data; /* Fetch the user's preferred Buddy List size (depending on * orientation). */ if (GTK_IS_VPANED(gobject)) size = purple_prefs_get_int(PREF_HEIGHT); else size = purple_prefs_get_int(PREF_WIDTH); /* If the Buddy List is not the first pane, invert the size preference. */ if (gtk_paned_get_child1(GTK_PANED(gobject)) != gtkblist->notebook) { g_object_get(gobject, "max-position", &max_position, NULL); size = max_position - size; } /* Adjust the panes' slider to set the Buddy List to its desired size. */ gtk_paned_set_position(GTK_PANED(gobject), size); /* Disconnect this callback. This initial setting was only needed once. */ g_object_disconnect(gobject, "any_signal", G_CALLBACK(notify_max_position_cb), data, NULL); /* Now that system-induced slider changes are done, monitor user * changes. */ g_object_connect(gobject, "signal::notify::position", G_CALLBACK(notify_position_cb), data, NULL); }
static void unhook_ws_event(MetaWorkspace* ws, MetaSwitcher* self) { g_object_disconnect(ws, "any_signal::window-added", on_window_added, self, "any_signal::window-removed", on_window_removed, self, NULL); }
void ags_osc_server_preferences_disconnect(AgsConnectable *connectable) { AgsOscServerPreferences *osc_server_preferences; osc_server_preferences = AGS_OSC_SERVER_PREFERENCES(connectable); if((AGS_OSC_SERVER_PREFERENCES_CONNECTED & (osc_server_preferences->flags)) == 0){ return; } osc_server_preferences->flags &= (~AGS_OSC_SERVER_PREFERENCES_CONNECTED); /* start/stop */ g_object_disconnect(G_OBJECT(osc_server_preferences->start), "any_signal::clicked", G_CALLBACK(ags_osc_server_preferences_start_callback), osc_server_preferences, NULL); g_object_disconnect(G_OBJECT(osc_server_preferences->stop), "any_signal::clicked", G_CALLBACK(ags_osc_server_preferences_stop_callback), osc_server_preferences, NULL); /* listen any address */ g_object_disconnect(G_OBJECT(osc_server_preferences->any_address), "any_signal::clicked", G_CALLBACK(ags_osc_server_preferences_any_address_callback), osc_server_preferences, NULL); /* IPv4 */ g_object_disconnect(G_OBJECT(osc_server_preferences->enable_ip4), "any_signal::clicked", G_CALLBACK(ags_osc_server_preferences_enable_ip6_callback), osc_server_preferences, NULL); g_object_disconnect(G_OBJECT(osc_server_preferences->ip4_address), "any_signal::changed", G_CALLBACK(ags_osc_server_preferences_ip4_address_callback), osc_server_preferences, NULL); /* IPv6 */ g_object_disconnect(G_OBJECT(osc_server_preferences->enable_ip6), "any_signal::clicked", G_CALLBACK(ags_osc_server_preferences_enable_ip6_callback), osc_server_preferences, NULL); g_object_disconnect(G_OBJECT(osc_server_preferences->ip6_address), "any_signal::changed", G_CALLBACK(ags_osc_server_preferences_ip6_address_callback), osc_server_preferences, NULL); /* port */ g_object_disconnect(G_OBJECT(osc_server_preferences->port), "any_signal::changed", G_CALLBACK(ags_osc_server_preferences_port_callback), osc_server_preferences, NULL); }
void ags_notation_toolbar_disconnect(AgsConnectable *connectable) { AgsNotationToolbar *notation_toolbar; GList *list; notation_toolbar = AGS_NOTATION_TOOLBAR(connectable); if((AGS_NOTATION_TOOLBAR_CONNECTED & (notation_toolbar->flags)) == 0){ return; } notation_toolbar->flags &= (~AGS_NOTATION_TOOLBAR_CONNECTED); /* tool */ g_object_disconnect(G_OBJECT(notation_toolbar->position), "any_signal::toggled", G_CALLBACK(ags_notation_toolbar_position_callback), notation_toolbar, NULL); g_object_disconnect(G_OBJECT(notation_toolbar->edit), "any_signal::toggled", G_CALLBACK(ags_notation_toolbar_edit_callback), notation_toolbar, NULL); g_object_disconnect(G_OBJECT(notation_toolbar->clear), "any_signal::toggled", G_CALLBACK(ags_notation_toolbar_clear_callback), notation_toolbar, NULL); g_object_disconnect(G_OBJECT(notation_toolbar->select), "any_signal::toggled", G_CALLBACK(ags_notation_toolbar_select_callback), notation_toolbar, NULL); /* edit */ g_object_disconnect(G_OBJECT(notation_toolbar->copy), "any_signal::clicked", G_CALLBACK(ags_notation_toolbar_copy_or_cut_callback), notation_toolbar, NULL); g_object_disconnect(G_OBJECT(notation_toolbar->cut), "any_signal::clicked", G_CALLBACK(ags_notation_toolbar_copy_or_cut_callback), notation_toolbar, NULL); g_object_disconnect(G_OBJECT(notation_toolbar->paste_tool), "any_signal::clicked", G_CALLBACK(ags_notation_toolbar_paste_callback), notation_toolbar, NULL); g_object_disconnect(G_OBJECT(notation_toolbar->invert), "any_signal::clicked", G_CALLBACK(ags_notation_toolbar_invert_callback), notation_toolbar, NULL); list = gtk_container_get_children((GtkContainer *) gtk_menu_tool_button_get_menu(notation_toolbar->paste_tool)); g_object_disconnect(G_OBJECT(list->data), "any_signal::activate", G_CALLBACK(ags_notation_toolbar_match_audio_channel_callback), notation_toolbar, NULL); g_object_disconnect(G_OBJECT(list->next->data), "any_signal::activate", G_CALLBACK(ags_notation_toolbar_no_duplicates_callback), notation_toolbar, NULL); g_list_free(list); /* additional tools */ ags_connectable_disconnect(AGS_CONNECTABLE(notation_toolbar->position_notation_cursor)); ags_connectable_disconnect(AGS_CONNECTABLE(notation_toolbar->crop_note)); ags_connectable_disconnect(AGS_CONNECTABLE(notation_toolbar->move_note)); ags_connectable_disconnect(AGS_CONNECTABLE(notation_toolbar->select_note)); /* zoom */ g_object_disconnect(G_OBJECT(notation_toolbar->zoom), "any_signal::changed", G_CALLBACK(ags_notation_toolbar_zoom_callback), notation_toolbar, NULL); /* opacity */ g_object_disconnect(G_OBJECT(notation_toolbar->opacity), "any_signal::value-changed", G_CALLBACK(ags_notation_toolbar_opacity_callback), notation_toolbar, NULL); }