static void
pad_removed (GstElement * element, GstPad * pad, KmsPlayerEndPoint * self)
{
  GST_DEBUG ("Pad removed");
  GstElement *appsink, *appsrc;

  if (GST_PAD_IS_SINK (pad))
    return;

  appsink = g_object_steal_data (G_OBJECT (pad), APPSINK_DATA);
  appsrc = g_object_steal_data (G_OBJECT (pad), APPSRC_DATA);

  if (appsrc != NULL) {
    GST_INFO ("Removing %" GST_PTR_FORMAT " from its parent", appsrc);
    if (GST_OBJECT_PARENT (appsrc) != NULL) {
      g_object_ref (appsrc);
      gst_bin_remove (GST_BIN (GST_OBJECT_PARENT (appsrc)), appsrc);
      gst_element_set_state (appsrc, GST_STATE_NULL);
      g_object_unref (appsrc);
    }
  }

  if (appsink == NULL) {
    GST_ERROR ("No appsink was found associated with %" GST_PTR_FORMAT, pad);
    return;
  }
  if (!gst_element_set_locked_state (appsink, TRUE))
    GST_ERROR ("Could not block element %s", GST_ELEMENT_NAME (appsink));

  GST_DEBUG ("Removing appsink %s from %s", GST_ELEMENT_NAME (appsink),
      GST_ELEMENT_NAME (self->priv->pipeline));

  gst_element_set_state (appsink, GST_STATE_NULL);
  gst_bin_remove (GST_BIN (self->priv->pipeline), appsink);
}
Exemplo n.º 2
0
/**
 * callback for fullscreen mode gtk_container_foreach()
 */
static void
fullscreen_toggle_widget_visible(GtkWidget *wid, gpointer user_data) {
	gchar* data_label;
	struct FullscreenData *fdata;
	gboolean old_v;
	gchar *propName;

	fdata = user_data;

	// remove shadow of scrolled window
	if (GTK_IS_SCROLLED_WINDOW(wid)) {
		GtkShadowType shadow_type;

		data_label = "fullscreen_shadow_type";
		propName = "shadow-type";

		if (fdata->visible == FALSE) {
			g_object_get(G_OBJECT(wid),
					propName, &shadow_type, NULL);
			g_object_set(G_OBJECT(wid),
					propName, GTK_SHADOW_NONE, NULL);
			g_object_set_data(G_OBJECT(wid), data_label,
					GINT_TO_POINTER(shadow_type));
		} else {
			shadow_type = GPOINTER_TO_INT(g_object_steal_data(
						G_OBJECT(wid), data_label));
			if (shadow_type && shadow_type != GTK_SHADOW_NONE) {
				g_object_set(G_OBJECT(wid),
						propName, shadow_type, NULL);
			}
		}
	}

	if (wid == fdata->me && !GTK_IS_NOTEBOOK(wid)) {
		return;
	}

	data_label = "fullscreen_visible";
	if (GTK_IS_NOTEBOOK(wid)) {
		propName = "show-tabs";
	} else {
		propName = "visible";
	}

	if (fdata->visible == FALSE) {
		g_object_get(G_OBJECT(wid), propName, &old_v, NULL);
		g_object_set(G_OBJECT(wid), propName, FALSE, NULL);
		g_object_set_data(G_OBJECT(wid), data_label,
				GINT_TO_POINTER(old_v));
	} else {
		old_v = GPOINTER_TO_INT(g_object_steal_data(
					G_OBJECT(wid), data_label));
		if (old_v == TRUE) {
			g_object_set(G_OBJECT(wid), propName, TRUE, NULL);
		}
	}
}
Exemplo n.º 3
0
/**
 * 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");
}
Exemplo n.º 4
0
static void
xedit_modeline_plugin_deactivate (XeditPlugin *plugin,
				  XeditWindow *window)
{
	WindowData *wdata;
	GList *views;
	GList *l;

	xedit_debug (DEBUG_PLUGINS);

	wdata = g_object_steal_data (G_OBJECT (window), WINDOW_DATA_KEY);

	g_signal_handler_disconnect (window, wdata->tab_added_handler_id);
	g_signal_handler_disconnect (window, wdata->tab_removed_handler_id);

	window_data_free (wdata);

	views = xedit_window_get_views (window);

	for (l = views; l != NULL; l = l->next)
	{
		disconnect_handlers (XEDIT_VIEW (l->data));
		
		modeline_parser_deactivate (GTK_SOURCE_VIEW (l->data));
	}
	
	g_list_free (views);
}
Exemplo n.º 5
0
void library_view_genres(GtkToggleToolButton *btn, GObject* lview)
{
  if (g_object_steal_data(G_OBJECT(btn), "ignore"))
    return;

  library_view_t* view = (library_view_t*) g_object_get_data(lview, "library_view_t");
  library_view_aspect_page(view, GENRE_ASPECT);
}
Exemplo n.º 6
0
void plugin_cleanup(void)
{
	guint i = 0;

	gtk_widget_destroy(main_menu_item);
	column_mode = FALSE;

	foreach_document(i)
	{
		ScintillaObject *sci = documents[i]->editor->sci;

		assign_select_keys(sci);
		g_object_steal_data(G_OBJECT(sci), "column_mode");
		g_object_steal_data(G_OBJECT(sci), "select_anchor");
		g_object_steal_data(G_OBJECT(sci), "select_space");
	}
}
Exemplo n.º 7
0
void
gstroke_cleanup (GtkWidget *widget)
{
  struct gstroke_metrics *metrics;
  GHashTable *hash_table =
    (GHashTable*)g_object_get_data(G_OBJECT(widget), GSTROKE_SIGNALS);
  if (hash_table)
    /*  FIXME: does this delete the elements too?  */
    g_hash_table_destroy (hash_table);

  g_object_steal_data(G_OBJECT(widget), GSTROKE_SIGNALS);

  metrics = (struct gstroke_metrics*)g_object_get_data(G_OBJECT(widget),
													   GSTROKE_METRICS);
  g_free(metrics);
  g_object_steal_data(G_OBJECT(widget), GSTROKE_METRICS);
}
Exemplo n.º 8
0
static gboolean remmina_rdp_close_connection(RemminaProtocolWidget* gp)
{
	rfContext* rfi;
	freerdp* instance;


	rfi = GET_DATA(gp);
	instance = rfi->instance;

	if (rfi->thread)
	{
		pthread_cancel(rfi->thread);

		if (rfi->thread)
			pthread_join(rfi->thread, NULL);
	}

	pthread_mutex_destroy(&rfi->mutex);

	g_mutex_free(rfi->gmutex);
	g_cond_free(rfi->gcond);

	remmina_rdp_event_uninit(gp);
	remmina_plugin_service->protocol_plugin_emit_signal(gp, "disconnect");

	if (instance)
	{
		if ( rfi->connected ) {
			if (instance->context->channels)
				freerdp_channels_close(instance->context->channels, instance);
			freerdp_disconnect(instance);
			rfi->connected = False;
		}
	}

	if (rfi->rfx_context)
	{
		rfx_context_free(rfi->rfx_context);
		rfi->rfx_context = NULL;
	}

	if (instance)
	{
		/* Remove instance->context from gp object data to avoid double free */
		g_object_steal_data(G_OBJECT(gp), "plugin-data");

		if (instance->context->channels) {
			freerdp_channels_free(instance->context->channels);
			instance->context->channels = NULL;
		}

		freerdp_context_free(instance); /* context is rfContext* rfi */
		freerdp_free(instance);
		rfi->instance = NULL;
	}

	return FALSE;
}
Exemplo n.º 9
0
static void
signal_removed (gpointer  data,
                GClosure *closure)
{
  DisconnectData *dd = data;

  g_object_steal_data (dd->alive_object, "alive-object-data");
  g_free (dd);
}
Exemplo n.º 10
0
static gboolean
bst_canvas_link_build_async (gpointer data)
{
  GnomeCanvasItem *item = GNOME_CANVAS_ITEM (data);
  if (gnome_canvas_item_check_undisposed (item))
    {
      BstCanvasLink *clink = BST_CANVAS_LINK (item);
      if (!clink->arrow)
        clink->arrow = g_object_connect (gnome_canvas_item_new (GNOME_CANVAS_GROUP (clink),
                                                                GNOME_TYPE_CANVAS_POLYGON,
                                                                "outline_color_rgba", 0x000000ff,
                                                                "fill_color_rgba", 0xff0000ff,
                                                                NULL),
                                         "signal::destroy", gtk_widget_destroyed, &clink->arrow,
                                         "swapped_signal::event", bst_canvas_link_child_event, clink,
                                         NULL);
      if (!clink->tag_start)
        clink->tag_start = g_object_connect (gnome_canvas_item_new (GNOME_CANVAS_GROUP (clink),
                                                                    GNOME_TYPE_CANVAS_ELLIPSE,
                                                                    "outline_color_rgba", 0x000000ff, // xffff00ff,
                                                                    "fill_color_rgba", 0xffff00ff,
                                                                    NULL),
                                             "signal::destroy", gtk_widget_destroyed, &clink->tag_start,
                                             "swapped_signal::event", bst_canvas_link_child_event, clink,
                                             NULL);
      if (!clink->tag_end)
        {
          gboolean is_jchannel = FALSE;
          if (clink->icsource)
            is_jchannel = bst_canvas_source_is_jchannel (clink->icsource, clink->ichannel);
          clink->tag_end = g_object_connect (gnome_canvas_item_new (GNOME_CANVAS_GROUP (clink),
                                                                    GNOME_TYPE_CANVAS_ELLIPSE,
                                                                    "outline_color_rgba", 0x000000ff, // 0xff0000ff,
                                                                    "fill_color_rgba", is_jchannel ? 0x00ff00ff : 0xff0000ff,
                                                                    NULL),
                                             "signal::destroy", gtk_widget_destroyed, &clink->tag_end,
                                             "swapped_signal::event", bst_canvas_link_child_event, clink,
                                             NULL);
        }
      if (!clink->line)
        clink->line = g_object_connect (gnome_canvas_item_new (GNOME_CANVAS_GROUP (clink),
                                                               GNOME_TYPE_CANVAS_LINE,
                                                               "fill_color", "black",
                                                               NULL),
                                        "signal::destroy", gtk_widget_destroyed, &clink->line,
                                        "swapped_signal::notify", bst_canvas_link_adjust_arrow, clink,
                                        "swapped_signal::notify", bst_canvas_link_adjust_tags, clink,
                                        NULL);
      bst_canvas_link_update (clink);
    }
  GnomeCanvas *canvas = g_object_steal_data (item, "bst-workaround-canvas-ref");
  g_object_unref (item);
  if (canvas)
    g_object_unref (canvas);      /* canvases don't properly protect their items */
  return FALSE;
}
Exemplo n.º 11
0
static void
bus_factory_proxy_destroy (BusFactoryProxy *factory)
{
    GList *p;

    for (p = factory->engine_list; p != NULL ; p = p->next) {
        IBusEngineDesc *desc = (IBusEngineDesc *)p->data;
        g_object_steal_data ((GObject *)desc, "factory");
        g_object_unref (desc);
    }
    g_list_free (factory->engine_list);
    factory->engine_list = NULL;

    if (factory->component) {
        g_object_steal_data ((GObject *)factory->component, "factory");
        g_object_unref (factory->component);
        factory->component = NULL;
    }

    IBUS_OBJECT_CLASS(parent_class)->destroy (IBUS_OBJECT (factory));
}
Exemplo n.º 12
0
static inline void
callbacks_set (MilterEventLoop *event_loop, GList *callbacks)
{
    GObject *object;

    object = G_OBJECT(event_loop);
    g_object_steal_data(object, CALLBACKS_KEY);
    g_object_set_data_full(object,
			   CALLBACKS_KEY,
			   callbacks,
			   (GDestroyNotify)g_list_free);
}
static gboolean
kms_recorder_end_point_post_error (gpointer data)
{
  KmsRecorderEndPoint *self = KMS_RECORDER_END_POINT (data);

  gchar *message = (gchar *) g_object_steal_data (G_OBJECT (self), "message");

  GST_ELEMENT_ERROR (self, STREAM, FAILED, ("%s", message), (NULL));
  g_free (message);

  return G_SOURCE_REMOVE;
}
Exemplo n.º 14
0
static void
gplp_unload_base (GOPluginLoader *loader, GOErrorInfo **ret_error)
{
	GnmPythonPluginLoader *loader_python = GNM_PYTHON_PLUGIN_LOADER (loader);
	GOPlugin *plugin = go_plugin_loader_get_plugin (loader);

	GO_INIT_RET_ERROR_INFO (ret_error);
	g_object_steal_data (G_OBJECT (plugin), "python-loader");
	gnm_python_destroy_interpreter (
		loader_python->py_object, loader_python->py_interpreter_info);
	g_object_unref (loader_python->py_object);
}
Exemplo n.º 15
0
/***********************************************
 * hc_gtk2_engine_hack_menu_shell_cleanuo_signals -
 *
 *   Cleanup/remove Menu Shell signals
 ***********************************************/
void
hc_gtk2_engine_hack_menu_shell_cleanup_signals(GtkWidget *widget)
{
    if (GE_IS_MENU_BAR(widget))
    {
        gint id = 0;

        id = (gint)g_object_steal_data (G_OBJECT(widget), "HC_MENU_SHELL_MOTION_ID");
        g_signal_handler_disconnect(G_OBJECT(widget), id);

        id = (gint)g_object_steal_data (G_OBJECT(widget), "HC_MENU_SHELL_LEAVE_ID");
        g_signal_handler_disconnect(G_OBJECT(widget), id);

        id = (gint)g_object_steal_data (G_OBJECT(widget), "HC_MENU_SHELL_DESTROY_ID");
        g_signal_handler_disconnect(G_OBJECT(widget), id);

        id = (gint)g_object_steal_data (G_OBJECT(widget), "HC_MENU_SHELL_STYLE_SET_ID");
        g_signal_handler_disconnect(G_OBJECT(widget), id);

        g_object_steal_data (G_OBJECT(widget), "HC_MENU_SHELL_HACK_SET");
    }
}
Exemplo n.º 16
0
static void gsb_csv_export_tree_view_list_export_rows ( FILE *csv_file, GtkTreeView *tree_view )
{
    GtkTreeModel *model;

    model = gtk_tree_view_get_model ( tree_view );
    g_object_set_data ( G_OBJECT ( model ), "tree_view", tree_view );

    gtk_tree_model_foreach ( model,
                        ( GtkTreeModelForeachFunc ) gsb_csv_export_tree_view_list_foreach_callback,
                        csv_file );

    g_object_steal_data ( G_OBJECT ( model ), "tree_view" );
}
Exemplo n.º 17
0
static void
upload_keys (SeahorseWidget *swidget)
{
    GtkWidget *widget;
    const gchar *cuser, *chost;
    gchar *user, *host, *port;
    GList *keys;
    GCancellable *cancellable;

    keys = (GList*)g_object_steal_data (G_OBJECT (swidget), "upload-keys");
    if (keys == NULL)
        return;

    widget = GTK_WIDGET (seahorse_widget_get_widget (swidget, "user-label"));
    cuser = gtk_entry_get_text (GTK_ENTRY (widget));
    g_return_if_fail (cuser && g_utf8_validate (cuser, -1, NULL));
    
    widget = GTK_WIDGET (seahorse_widget_get_widget (swidget, "host-label"));
    chost = (gchar*)gtk_entry_get_text (GTK_ENTRY (widget));
    g_return_if_fail (chost && g_utf8_validate (chost, -1, NULL));
    
    user = g_strdup (cuser);
    host = g_strdup (chost);

    /* Port is anything past a colon */
    port = strchr (host, ':');
    if (port) {
        *port = 0;
        port++;
        
        /* Trim and check */
        seahorse_util_string_trim_whitespace (port);
        if (!port[0])
            port = NULL;
    }

    seahorse_util_string_trim_whitespace (host);
    seahorse_util_string_trim_whitespace (user);

    cancellable = g_cancellable_new ();

    /* Start an upload process */
    seahorse_ssh_op_upload_async (SEAHORSE_SSH_SOURCE (seahorse_object_get_place (keys->data)),
                                  keys, user, host, port, cancellable, on_upload_complete, NULL);

    g_free (host);
    g_free (user);

    seahorse_progress_show (cancellable, _("Configuring Secure Shell Keys..."), FALSE);
    g_object_unref (cancellable);
}
Exemplo n.º 18
0
static void
qtcEntryCleanup(GtkWidget *widget)
{
    if (qtcEntryLastMo == widget)
        qtcEntryLastMo = NULL;
    if (GTK_IS_ENTRY(widget)) {
        GObject *obj = G_OBJECT(widget);
        qtcDisconnectFromData(obj, "QTC_ENTRY_ENTER_ID");
        qtcDisconnectFromData(obj, "QTC_ENTRY_LEAVE_ID");
        qtcDisconnectFromData(obj, "QTC_ENTRY_DESTROY_ID");
        qtcDisconnectFromData(obj, "QTC_ENTRY_UNREALIZE_ID");
        qtcDisconnectFromData(obj, "QTC_ENTRY_STYLE_SET_ID");
        g_object_steal_data(obj, "QTC_ENTRY_HACK_SET");
    }
}
Exemplo n.º 19
0
GdkPixbuf* vfs_file_info_get_big_icon( VFSFileInfo* fi )
{
    /* get special icons for special files, especially for
       some desktop icons */

    if ( G_UNLIKELY( fi->flags != VFS_FILE_INFO_NONE ) )
    {
        int w, h;
        int icon_size;
        vfs_mime_type_get_icon_size( &icon_size, NULL );
        if ( fi->big_thumbnail )
        {
            w = gdk_pixbuf_get_width( fi->big_thumbnail );
            h = gdk_pixbuf_get_height( fi->big_thumbnail );
        }
        else
            w = h = 0;

        if ( ABS( MAX( w, h ) - icon_size ) > 2 )
        {
            char * icon_name = NULL;
            if ( fi->big_thumbnail )
            {
                icon_name = ( char* ) g_object_steal_data(
                                G_OBJECT(fi->big_thumbnail), "name" );
                g_object_unref( fi->big_thumbnail );
                fi->big_thumbnail = NULL;
            }
            if ( G_LIKELY( icon_name ) )
            {
                if ( G_UNLIKELY( icon_name[ 0 ] == '/' ) )
                    fi->big_thumbnail = gdk_pixbuf_new_from_file( icon_name, NULL );
                else
                    fi->big_thumbnail = vfs_load_icon(
                                            gtk_icon_theme_get_default(),
                                            icon_name, icon_size );
            }
            if ( fi->big_thumbnail )
                g_object_set_data_full( G_OBJECT(fi->big_thumbnail), "name", icon_name, g_free );
            else
                g_free( icon_name );
        }
        return fi->big_thumbnail ? g_object_ref( fi->big_thumbnail ) : NULL;
    }
    if( G_UNLIKELY(!fi->mime_type) )
        return NULL;
    return vfs_mime_type_get_icon( fi->mime_type, TRUE );
}
Exemplo n.º 20
0
// Hack to force webview exit from fullscreen mode on new page
static void
liferea_webkit_load_status_changed (WebKitWebView *view, GParamSpec *pspec, gpointer user_data)
{
	WebKitLoadStatus loadStatus;

	g_object_get (view, "load-status", &loadStatus, NULL);
	if (loadStatus == WEBKIT_LOAD_PROVISIONAL) {
		gboolean isFullscreen;
		isFullscreen = GPOINTER_TO_INT(g_object_steal_data(
					G_OBJECT(view), "fullscreen_on"));
		if (isFullscreen == TRUE) {
		webkit_web_view_execute_script (view,
				"document.webkitExitFullscreen();");
		}
	}
}
Exemplo n.º 21
0
static void
qtcComboBoxCleanup(GtkWidget *widget)
{
    if (!widget)
        return;
    GObject *obj = G_OBJECT(widget);
    if (g_object_get_data(obj, "QTC_COMBO_BOX_SET")) {
        qtcDisconnectFromData(obj, "QTC_COMBO_BOX_DESTROY_ID");
        qtcDisconnectFromData(obj, "QTC_COMBO_BOX_UNREALIZE_ID");
        qtcDisconnectFromData(obj, "QTC_COMBO_BOX_STYLE_SET_ID");
        qtcDisconnectFromData(obj, "QTC_COMBO_BOX_ENTER_ID");
        qtcDisconnectFromData(obj, "QTC_COMBO_BOX_LEAVE_ID");
        qtcDisconnectFromData(obj, "QTC_COMBO_BOX_STATE_CHANGE_ID");
        g_object_steal_data(G_OBJECT(widget), "QTC_COMBO_BOX_SET");
    }
}
Exemplo n.º 22
0
static gboolean
fade_in (gpointer data)
{
	GtkWidget *spinner = data;
	gdouble opacity;

	opacity = gtk_widget_get_opacity (spinner);
	opacity = opacity + 0.1;
	gtk_widget_set_opacity (spinner, opacity);

	if (opacity >= 1.0) {
		g_object_steal_data (G_OBJECT (spinner), "fade-timeout");
		return G_SOURCE_REMOVE;
	}
	return G_SOURCE_CONTINUE;
}
Exemplo n.º 23
0
static gboolean
start_spinning (gpointer data)
{
	GtkWidget *spinner = data;
	guint id;

	gtk_widget_set_opacity (spinner, 0);
	gtk_spinner_start (GTK_SPINNER (spinner));
	id = g_timeout_add (100, fade_in, spinner);
	g_object_set_data_full (G_OBJECT (spinner), "fade-timeout",
				GUINT_TO_POINTER (id), remove_source);

	/* don't try to remove this source in the future */
	g_object_steal_data (G_OBJECT (spinner), "start-timeout");
	return G_SOURCE_REMOVE;
}
Exemplo n.º 24
0
/* Finalize this object */
static void cookie_permission_manager_finalize(GObject *inObject)
{
	CookiePermissionManager			*self=COOKIE_PERMISSION_MANAGER(inObject);
	CookiePermissionManagerPrivate	*priv=self->priv;
	GList							*browsers, *browser;
	GList							*tabs, *tab;
	WebKitWebView					*webkitView;

	/* Dispose allocated resources */
	if(priv->databaseFilename)
	{
		g_free(priv->databaseFilename);
		priv->databaseFilename=NULL;
		g_object_notify_by_pspec(inObject, CookiePermissionManagerProperties[PROP_DATABASE_FILENAME]);
	}

	if(priv->database)
	{
		sqlite3_close(priv->database);
		priv->database=NULL;
		g_object_notify_by_pspec(inObject, CookiePermissionManagerProperties[PROP_DATABASE]);
	}

	g_signal_handler_disconnect(priv->cookieJar, priv->cookieJarChangedID);
	g_object_steal_data(G_OBJECT(priv->cookieJar), "cookie-permission-manager");

	g_signal_handlers_disconnect_by_data(priv->application, self);

	browsers=midori_app_get_browsers(priv->application);
	for(browser=browsers; browser; browser=g_list_next(browser))
	{
		g_signal_handlers_disconnect_by_data(browser->data, self);

		tabs=midori_browser_get_tabs(MIDORI_BROWSER(browser->data));
		for(tab=tabs; tab; tab=g_list_next(tab))
		{
			webkitView=WEBKIT_WEB_VIEW(midori_view_get_web_view(MIDORI_VIEW(tab->data)));
			g_signal_handlers_disconnect_by_data(webkitView, self);
		}
		g_list_free(tabs);
	}
	g_list_free(browsers);

	/* Call parent's class finalize method */
	G_OBJECT_CLASS(cookie_permission_manager_parent_class)->finalize(inObject);
}
Exemplo n.º 25
0
static void
disconnect_handlers (XeditView *view)
{
	DocumentData *data;
	GtkTextBuffer *doc;

	doc = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));

	data = g_object_steal_data (G_OBJECT (doc), DOCUMENT_DATA_KEY);

	if (data)
	{
		g_signal_handler_disconnect (doc, data->document_loaded_handler_id);
		g_signal_handler_disconnect (doc, data->document_saved_handler_id);

		document_data_free (data);
	}
	else
	{
		g_warning ("Modeline handlers not found");
	}
}
Exemplo n.º 26
0
static void qtcScrolledWindowCleanup(GtkWidget *widget)
{
    if (widget && g_object_get_data(G_OBJECT(widget), "QTC_SCROLLED_WINDOW_SET"))
    {
        g_signal_handler_disconnect(G_OBJECT(widget),
                                    (gint)g_object_steal_data(G_OBJECT(widget), "QTC_SCROLLED_WINDOW_DESTROY_ID"));
        g_signal_handler_disconnect(G_OBJECT(widget),
                                    (gint)g_object_steal_data(G_OBJECT(widget), "QTC_SCROLLED_WINDOW_UNREALIZE_ID"));
        g_signal_handler_disconnect(G_OBJECT(widget),
                                    (gint)g_object_steal_data(G_OBJECT(widget), "QTC_SCROLLED_WINDOW_STYLE_SET_ID"));
        if(ENTRY_MO)
        {
            g_signal_handler_disconnect(G_OBJECT(widget),
                                        (gint)g_object_steal_data(G_OBJECT(widget), "QTC_SCROLLED_WINDOW_ENTER_ID"));
            g_signal_handler_disconnect(G_OBJECT(widget),
                                        (gint)g_object_steal_data(G_OBJECT(widget), "QTC_SCROLLED_WINDOW_LEAVE_ID"));
        }
        g_signal_handler_disconnect(G_OBJECT(widget),
                                    (gint)g_object_steal_data(G_OBJECT(widget), "QTC_SCROLLED_WINDOW_FOCUS_IN_ID"));
        g_signal_handler_disconnect(G_OBJECT(widget),
                                    (gint)g_object_steal_data(G_OBJECT(widget), "QTC_SCROLLED_WINDOW_FOCUS_OUT_ID"));
        g_object_steal_data(G_OBJECT(widget), "QTC_SCROLLED_WINDOW_SET");
    }
}
Exemplo n.º 27
0
void
gtr_widget_set_visible (GtkWidget * w, gboolean b)
{
  /* toggle the transient children, too */
  if (GTK_IS_WINDOW (w))
    {
      GList * l;
      GList * windows = gtk_window_list_toplevels ();
      GtkWindow * window = GTK_WINDOW (w);

      for (l=windows; l!=NULL; l=l->next)
        {
          if (!GTK_IS_WINDOW (l->data))
            continue;
          if (gtk_window_get_transient_for (GTK_WINDOW (l->data)) != window)
            continue;
          if (gtk_widget_get_visible (GTK_WIDGET (l->data)) == b)
            continue;

          if (b && g_object_get_data (G_OBJECT (l->data), GTR_CHILD_HIDDEN) != NULL)
            {
              g_object_steal_data (G_OBJECT (l->data), GTR_CHILD_HIDDEN);
              gtr_widget_set_visible (GTK_WIDGET (l->data), TRUE);
            }
          else if (!b)
            {
              g_object_set_data (G_OBJECT (l->data), GTR_CHILD_HIDDEN, GINT_TO_POINTER (1));
              gtr_widget_set_visible (GTK_WIDGET (l->data), FALSE);
            }
        }

      g_list_free (windows);
    }

  gtk_widget_set_visible (w, b);
}
Exemplo n.º 28
0
void
_nm_object_cache_clear (NMObject *except)
{
	GHashTableIter iter;
	NMObject *obj;
	const char *path;
	char *foo;

	_init_cache ();
	g_hash_table_iter_init (&iter, cache);
	while (g_hash_table_iter_next (&iter, (gpointer) &path, (gpointer) &obj)) {
		if (obj != except) {
			/* Remove the callback so that if the object isn't yet released
			 * by a client, when it does finally get unrefed, it won't trigger
			 * the cache removal for a new object with the same path as the
			 * one being released.
			 */
			foo = g_object_steal_data (G_OBJECT (obj), "nm-object-cache-tag");
			g_free (foo);

			g_hash_table_iter_remove (&iter);
		}
	}
}
Exemplo n.º 29
0
static gboolean
bst_canvas_source_build_async (gpointer data)
{
  GnomeCanvasItem *item = GNOME_CANVAS_ITEM (data);
  if (gnome_canvas_item_check_undisposed (item))
    {
      BstCanvasSource *csource = BST_CANVAS_SOURCE (item);
      GnomeCanvasGroup *group = GNOME_CANVAS_GROUP (csource);
      
      /* keep in mind, that creation order affects stacking */

      /* add input and output channel items */
      if (!csource->built_ichannels)
        {
          csource->built_ichannels = TRUE;
          bst_canvas_source_build_channels (csource,
                                            TRUE,               /* input channels */
                                            0xffff00, 0x808000,	/* ichannels */
                                            0x00afff, 0x005880, /* jchannels */
                                            TRUE, FALSE);
          return TRUE;
        }
      if (!csource->built_ochannels)
        {
          csource->built_ochannels = TRUE;
          bst_canvas_source_build_channels (csource,
                                            FALSE,              /* output channels */
                                            0xff0000, 0x800000, /* ochannels */
                                            0, 0,               /* unused */
                                            TRUE, FALSE);
          return TRUE;
        }

      /* add icon to group */
      if (!csource->icon_item)
        {
          csource->icon_item = g_object_connect (gnome_canvas_item_new (group,
                                                                        GNOME_TYPE_CANVAS_PIXBUF,
                                                                        "x", ICON_X (csource),
                                                                        "y", ICON_Y (csource),
                                                                        "width", ICON_WIDTH (csource),
                                                                        "height", ICON_HEIGHT (csource),
                                                                        NULL),
                                                 "signal::destroy", gtk_widget_destroyed, &csource->icon_item,
                                                 "swapped_signal::event", bst_canvas_source_child_event, csource,
                                                 NULL);
          source_icon_changed (csource);
          return TRUE;
        }
      
      if (!csource->text)
        {
          /* add text item, invoke name_changed callback to setup the text value */
          guint ocolor = csource->source && bse_item_internal (csource->source) ? RGBA_INTERNAL : RGBA_BLACK;
          csource->text = gnome_canvas_item_new (group,
                                                 GNOME_TYPE_CANVAS_TEXT,
                                                 "fill_color_rgba", ocolor,
                                                 "anchor", GTK_ANCHOR_NORTH,
                                                 "justification", GTK_JUSTIFY_CENTER,
                                                 "x", TEXT_X (csource),
                                                 "y", TEXT_Y (csource),
                                                 "font", TEXT_FONT,
                                                 NULL);
          g_object_connect (csource->text,
                            "signal::destroy", gtk_widget_destroyed, &csource->text,
                            "swapped_signal::event", bst_canvas_source_child_event, csource,
                            NULL);
          gnome_canvas_text_set_zoom_size (GNOME_CANVAS_TEXT (csource->text), FONT_HEIGHT);
          source_name_changed (csource);
          return TRUE;
        }

      /* add input and output channel hints */
      if (!csource->built_ihints)
        {
          csource->built_ihints = TRUE;
          bst_canvas_source_build_channels (csource,
                                            TRUE,               /* input channels */
                                            0xffff00, 0x808000,	/* ichannels */
                                            0x00afff, 0x005880, /* jchannels */
                                            FALSE, TRUE);
          return TRUE;
        }
      if (!csource->built_ohints)
        {
          csource->built_ohints = TRUE;
          bst_canvas_source_build_channels (csource,
                                            FALSE,              /* output channels */
                                            0xff0000, 0x800000, /* ochannels */
                                            0, 0,               /* unused */
                                            FALSE, TRUE);
          return TRUE;
        }
    }
  GnomeCanvas *canvas = g_object_steal_data (item, "bst-workaround-canvas-ref");
  g_object_unref (item);
  if (canvas)
    g_object_unref (canvas);      /* canvases don't properly protect their items */
  return FALSE;
}
Exemplo n.º 30
0
void
remove_pidgin_menuitems (PurpleConversation * conv) {
    if (PIDGIN_IS_PIDGIN_CONVERSATION (conv)) {
        PurplePlugin *plugin;
        GtkWidget *screenshot_insert_menuitem;
        GtkWidget *screenshot_menuitem, *conversation_menu;
        GtkWidget *insert_menu;
        PidginWindow *win;
        PidginConversation *gtkconv;

        gtkconv = PIDGIN_CONVERSATION (conv);
        plugin = purple_plugins_find_with_id (PLUGIN_ID);

        win = pidgin_conv_get_window (gtkconv);
        if (win != NULL) {
            if ((conversation_menu =
                 gtk_item_factory_get_widget (win->menu.item_factory,
                                              N_("/Conversation"))) != NULL) {
                /* remove signal */
                gulong handler = g_signal_handler_find (conversation_menu,
                                                        G_SIGNAL_MATCH_FUNC,
                                                        0,
                                                        0,
                                                        NULL,
                                                        G_CALLBACK
                                                        (on_conversation_menu_show_cb),
                                                        NULL);
                if (handler)
                    g_signal_handler_disconnect (conversation_menu, handler);

                if ((screenshot_menuitem =
                     g_object_get_data (G_OBJECT (conversation_menu),
                                        "screenshot_menuitem")) != NULL) {
                    gtk_widget_destroy (screenshot_menuitem);
                    g_object_steal_data (G_OBJECT (conversation_menu),
                                         "screenshot_menuitem");
                    g_object_steal_data (G_OBJECT (conversation_menu),
                                         "img_menuitem");
#ifdef ENABLE_UPLOAD
                    g_object_steal_data (G_OBJECT (conversation_menu),
                                         "link_menuitem");
                    g_object_steal_data (G_OBJECT (conversation_menu),
                                         "ftp_link_menuitem");
#endif
                }
            }
        }
        /* remove signal */
        if ((insert_menu =
             g_object_get_data (G_OBJECT (gtkconv->toolbar),
                                "insert_menu")) != NULL) {
            gulong handler = g_signal_handler_find (insert_menu,
                                                    G_SIGNAL_MATCH_FUNC,
                                                    0,
                                                    0,
                                                    NULL,
                                                    G_CALLBACK
                                                    (on_insert_menu_show_cb),
                                                    NULL);
            if (handler)
                g_signal_handler_disconnect (insert_menu, handler);
        }

        screenshot_insert_menuitem =
            g_object_get_data (G_OBJECT (gtkconv->toolbar),
                               "screenshot_insert_menuitem");
        if (screenshot_insert_menuitem != NULL) {
            gtk_widget_destroy (screenshot_insert_menuitem);
            g_object_steal_data (G_OBJECT (gtkconv->toolbar),
                                 "screenshot_insert_menuitem");
        }
    }
}