svnno****@sourc*****
svnno****@sourc*****
Fri Oct 5 15:15:21 JST 2007
Revision: 3273 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=kazehakase&view=rev&rev=3273 Author: ikezoe Date: 2007-10-05 15:15:20 +0900 (Fri, 05 Oct 2007) Log Message: ----------- * src/kz-notebook.[ch]: Add kz_notebook_prepend_new_tab(). * src/kz-window.c: Use kz_notebook_prepend_new_tab(). Enable to DnD of URI list. Modified Paths: -------------- kazehakase/trunk/ChangeLog kazehakase/trunk/src/kz-notebook.c kazehakase/trunk/src/kz-notebook.h kazehakase/trunk/src/kz-window.c Modified: kazehakase/trunk/ChangeLog =================================================================== --- kazehakase/trunk/ChangeLog 2007-10-05 05:47:06 UTC (rev 3272) +++ kazehakase/trunk/ChangeLog 2007-10-05 06:15:20 UTC (rev 3273) @@ -4,6 +4,9 @@ assertion `length <= 0' failed" * src/kz-window.c, src/kz-notebook.[ch]: tab_tree is moved into KzNotebook. + * src/kz-notebook.[ch]: Add kz_notebook_prepend_new_tab(). + * src/kz-window.c: Use kz_notebook_prepend_new_tab(). Enable to DnD of + URI list. 2007-10-04 Hiroyuki Ikezoe <poinc****@ikezo*****> Modified: kazehakase/trunk/src/kz-notebook.c =================================================================== --- kazehakase/trunk/src/kz-notebook.c 2007-10-05 05:47:06 UTC (rev 3272) +++ kazehakase/trunk/src/kz-notebook.c 2007-10-05 06:15:20 UTC (rev 3273) @@ -133,10 +133,11 @@ priv->kz = NULL; priv->open_hist = NULL; priv->view_hist = NULL; - priv->tab_tree = NULL; priv->dragged_page = NULL; + priv->tab_tree = g_node_new(NULL); + g_signal_connect(notebook, "page-reordered", G_CALLBACK(cb_page_reordered), NULL); g_signal_connect(notebook, "page-added", @@ -472,9 +473,6 @@ pos = kz_notebook_open_new_tab_at_pos(notebook, embed, label, pos); - /* root node */ - if (!priv->tab_tree) - priv->tab_tree = g_node_new(NULL); /* insret node */ node = g_node_new(embed); g_node_append(priv->tab_tree, node); @@ -493,9 +491,6 @@ pos = kz_notebook_open_new_tab_at_pos(notebook, embed, label, pos); - /* root node */ - if (!priv->tab_tree) - priv->tab_tree = g_node_new(NULL); /* insret node */ node = g_node_new(embed); parent_node = g_node_find(priv->tab_tree, @@ -508,6 +503,22 @@ return pos; } +gint +kz_notebook_prepend_new_tab (KzNotebook *notebook, KzEmbed *embed, KzTabLabel *label) +{ + gint pos; + GNode *node; + KzNotebookPrivate *priv = KZ_NOTEBOOK_GET_PRIVATE(notebook); + + pos = kz_notebook_open_new_tab_at_pos(notebook, embed, label, -1); + + /* insret node */ + node = g_node_new(embed); + g_node_append(priv->tab_tree, node); + + return pos; +} + gboolean kz_notebook_close_tab (KzNotebook *notebook, GtkWidget *widget) { Modified: kazehakase/trunk/src/kz-notebook.h =================================================================== --- kazehakase/trunk/src/kz-notebook.h 2007-10-05 05:47:06 UTC (rev 3272) +++ kazehakase/trunk/src/kz-notebook.h 2007-10-05 06:15:20 UTC (rev 3273) @@ -48,6 +48,9 @@ KzEmbed *embed, KzTabLabel *label, gint pos); +gint kz_notebook_prepend_new_tab (KzNotebook *notebook, + KzEmbed *embed, + KzTabLabel *label); gboolean kz_notebook_close_tab (KzNotebook *notebook, GtkWidget *widget); gboolean kz_notebook_close_tabs (KzNotebook *notebook, Modified: kazehakase/trunk/src/kz-window.c =================================================================== --- kazehakase/trunk/src/kz-window.c 2007-10-05 05:47:06 UTC (rev 3272) +++ kazehakase/trunk/src/kz-window.c 2007-10-05 06:15:20 UTC (rev 3273) @@ -108,9 +108,18 @@ }; enum { - TARGET_TEXT_URI_LIST=999 + TARGET_NETSCAPE_URL, + TARGET_TEXT_URI_LIST }; +static const GtkTargetEntry drag_targets [] = +{ + { "_NETSCAPE_URL", 0, TARGET_NETSCAPE_URL}, + { "text/uri-list", 0, TARGET_TEXT_URI_LIST} +}; + +static const guint n_drag_targets = G_N_ELEMENTS (drag_targets); + static gboolean key_theme_is_emacs = FALSE; static gboolean delete_event (GtkWidget *widget, @@ -574,7 +583,10 @@ gtk_widget_show(kz->statusbar); } - gtk_drag_dest_add_uri_targets(GTK_WIDGET(kz)); + gtk_drag_dest_set(GTK_WIDGET(kz), + GTK_DEST_DEFAULT_ALL, + drag_targets, n_drag_targets, + GDK_ACTION_MOVE | GDK_ACTION_COPY); /* from Galeon-1.3.18 */ /* initialize the listener for the key theme */ @@ -894,7 +906,7 @@ gtk_widget_show_all(GTK_WIDGET(kzembed)); gtk_widget_show(GTK_WIDGET(kztab)); - kz_notebook_open_new_tab_at_pos(KZ_NOTEBOOK(kz->notebook), kzembed, kztab, -1); + kz_notebook_prepend_new_tab(KZ_NOTEBOOK(kz->notebook), kzembed, kztab); kz_window_set_embed_callbacks(kz, kzembed); kz_tab_label_set_history(kztab, child); } @@ -986,8 +998,11 @@ guint info, guint time) { - if (seldata->target == gdk_atom_intern_static_string("text/uri-list")) + switch (info) { + case TARGET_NETSCAPE_URL: + case TARGET_TEXT_URI_LIST: + { KzWindow *kz = KZ_WINDOW(widget); gchar **strings; @@ -997,6 +1012,8 @@ kz_window_open_new_tab(kz, strings[0]); g_strfreev(strings); gtk_drag_finish(context, TRUE, FALSE, time); + break; + } } }