[anjuta] document-manager: Add search_box to document manager box directly.



commit 6196012d38a46ef01a8ba8b07c7ebee16da8a4b9
Author: Carl-Anton Ingmarsson <ca ingmarsson gmail com>
Date:   Fri Nov 16 13:13:44 2012 +0100

    document-manager: Add search_box to document manager box directly.
    
    This is now possible since the shell doesn't call gtk_widget_show_all on plugin widgets
    anymore.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=688460

 plugins/document-manager/action-callbacks.c |   43 ++++-----------------------
 plugins/document-manager/plugin.c           |   10 +++---
 plugins/document-manager/search-box.c       |    5 ++-
 3 files changed, 14 insertions(+), 44 deletions(-)
---
diff --git a/plugins/document-manager/action-callbacks.c b/plugins/document-manager/action-callbacks.c
index e2fc51f..ce00180 100644
--- a/plugins/document-manager/action-callbacks.c
+++ b/plugins/document-manager/action-callbacks.c
@@ -705,11 +705,6 @@ on_goto_line_no1_activate (GtkAction *action, gpointer user_data)
 
 	plugin = ANJUTA_PLUGIN_DOCMAN (user_data);
 
-	if (!gtk_widget_get_parent (plugin->search_box))
-	{
-		gtk_box_pack_end (GTK_BOX (plugin->vbox), plugin->search_box, FALSE, FALSE, 0);
-	}
-
 	gtk_widget_show (plugin->search_box);
 	search_box_grab_line_focus (SEARCH_BOX (plugin->search_box));
 }
@@ -779,8 +774,6 @@ on_show_search (GtkAction *action, gpointer user_data)
 	plugin = ANJUTA_PLUGIN_DOCMAN (user_data);
 
 	search_box = plugin->search_box;
-	if (!gtk_widget_get_parent (search_box))
-		gtk_box_pack_end (GTK_BOX (plugin->vbox), search_box, FALSE, FALSE, 0);
 
 	search_box_fill_search_focus (SEARCH_BOX (search_box), FALSE);
 	gtk_widget_show (search_box);
@@ -795,11 +788,8 @@ on_repeat_quicksearch (GtkAction *action, gpointer user_data)
 	plugin = ANJUTA_PLUGIN_DOCMAN (user_data);
 
 	search_box = plugin->search_box;
-	if (!gtk_widget_get_parent (search_box))
-		gtk_box_pack_end (GTK_BOX (plugin->vbox), search_box, FALSE, FALSE, 0);
 
-	if (!gtk_widget_get_visible (search_box))
-		gtk_widget_show (search_box);
+	gtk_widget_show (search_box);
 	search_box_incremental_search (SEARCH_BOX (search_box), TRUE, TRUE);
 }
 
@@ -812,11 +802,8 @@ on_search_previous (GtkAction *action, gpointer user_data)
 	plugin = ANJUTA_PLUGIN_DOCMAN (user_data);
 
 	search_box = plugin->search_box;
-	if (!gtk_widget_get_parent (search_box))
-		gtk_box_pack_end (GTK_BOX (plugin->vbox), search_box, FALSE, FALSE, 0);
 
-	if (!gtk_widget_get_visible (search_box))
-		gtk_widget_show (search_box);
+	gtk_widget_show (search_box);
 	search_box_incremental_search (SEARCH_BOX (search_box), FALSE, TRUE);
 }
 
@@ -829,8 +816,6 @@ on_search_and_replace (GtkAction *action, gpointer user_data)
 	plugin = ANJUTA_PLUGIN_DOCMAN (user_data);
 
 	search_box = plugin->search_box;
-	if (!gtk_widget_get_parent (search_box))
-		gtk_box_pack_end (GTK_BOX (plugin->vbox), search_box, FALSE, FALSE, 0);
 
 	search_box_fill_search_focus (SEARCH_BOX (search_box), TRUE);
 	gtk_widget_show (search_box);
@@ -847,12 +832,8 @@ on_search_popup_case_sensitive_toggle (GtkAction *action, gpointer user_data)
 	plugin = ANJUTA_PLUGIN_DOCMAN (user_data);
 
 	search_box = plugin->search_box;
-	if (!gtk_widget_get_parent (search_box))
-		gtk_box_pack_end (GTK_BOX (plugin->vbox), search_box, FALSE, FALSE, 0);
-
-	if (!gtk_widget_get_visible (search_box))
-		gtk_widget_show (search_box);
 
+	gtk_widget_show (search_box);
 	search_box_toggle_case_sensitive (SEARCH_BOX (search_box), case_sensitive_status);
 }
 
@@ -866,12 +847,8 @@ on_search_popup_highlight_toggle (GtkAction *action, gpointer user_data)
 	plugin = ANJUTA_PLUGIN_DOCMAN (user_data);
 
 	search_box = plugin->search_box;
-	if (!gtk_widget_get_parent (search_box))
-		gtk_box_pack_end (GTK_BOX (plugin->vbox), search_box, FALSE, FALSE, 0);
-
-	if (!gtk_widget_get_visible (search_box))
-		gtk_widget_show (search_box);
 
+	gtk_widget_show (search_box);
 	search_box_toggle_highlight (SEARCH_BOX (search_box), highlight_status);
 }
 
@@ -884,12 +861,8 @@ on_search_popup_clear_highlight (GtkAction *action, gpointer user_data)
 	plugin = ANJUTA_PLUGIN_DOCMAN (user_data);
 
 	search_box = plugin->search_box;
-	if (!gtk_widget_get_parent (search_box))
-		gtk_box_pack_end (GTK_BOX (plugin->vbox), search_box, FALSE, FALSE, 0);
-
-	if (!gtk_widget_get_visible (search_box))
-		gtk_widget_show (search_box);
 
+	gtk_widget_show (search_box);
 	search_box_clear_highlight (SEARCH_BOX (search_box));
 }
 
@@ -903,12 +876,8 @@ on_search_popup_regex_search (GtkAction *action, gpointer user_data)
 	plugin = ANJUTA_PLUGIN_DOCMAN (user_data);
 
 	search_box = plugin->search_box;
-	if (!gtk_widget_get_parent (search_box))
-		gtk_box_pack_end (GTK_BOX (plugin->vbox), search_box, FALSE, FALSE, 0);
-
-	if (!gtk_widget_get_visible (search_box))
-		gtk_widget_show (search_box);
 
+	gtk_widget_show (search_box);
 	search_box_toggle_regex (SEARCH_BOX (search_box), regex_active);
 }
 
diff --git a/plugins/document-manager/plugin.c b/plugins/document-manager/plugin.c
index 7bd4bd7..e6f61d9 100644
--- a/plugins/document-manager/plugin.c
+++ b/plugins/document-manager/plugin.c
@@ -1661,6 +1661,11 @@ activate_plugin (AnjutaPlugin *plugin)
 	dplugin->vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
 	gtk_widget_show (dplugin->vbox);
 	gtk_box_pack_start (GTK_BOX(dplugin->vbox), docman, TRUE, TRUE, 0);
+
+	/* Create the default searchbox instance. */
+	dplugin->search_box = search_box_new (ANJUTA_DOCMAN (docman));
+	gtk_box_pack_end (GTK_BOX (dplugin->vbox), dplugin->search_box, FALSE, FALSE, 0);
+
 	anjuta_shell_add_widget_full (plugin->shell, dplugin->vbox,
 							 "AnjutaDocumentManager", _("Documents"),
 							 "editor-plugin-icon",
@@ -1670,10 +1675,6 @@ activate_plugin (AnjutaPlugin *plugin)
 
 	ui_give_shorter_names (plugin);
 	update_document_ui (plugin, NULL);
-
-	/* Create the default searchbox instance, but don't yet put it into
-	   dplugin->vbox, to prevent the box being displayed at session start */
-	dplugin->search_box = search_box_new (ANJUTA_DOCMAN (docman));
 	
 	/* Setup popup menu */
 	popup_menu = gtk_ui_manager_get_widget (GTK_UI_MANAGER (ui),
@@ -1738,7 +1739,6 @@ deactivate_plugin (AnjutaPlugin *plugin)
 
 	/* Widget is removed from the container when destroyed */
 	gtk_widget_destroy (eplugin->docman);
-	gtk_widget_destroy (eplugin->search_box);	/* the default searchbox instance may still be unparented */
 	g_object_unref (eplugin->bookmarks);
 	anjuta_ui_unmerge (ui, eplugin->uiid);
 	node = eplugin->action_groups;
diff --git a/plugins/document-manager/search-box.c b/plugins/document-manager/search-box.c
index 9359b77..c2ada5c 100644
--- a/plugins/document-manager/search-box.c
+++ b/plugins/document-manager/search-box.c
@@ -1055,9 +1055,10 @@ search_box_init (SearchBox *search_box)
 	gtk_container_set_focus_chain (GTK_CONTAINER (search_box->priv->grid),
 	                               focus_chain);
 	g_list_free (focus_chain);
-	
+
+	/* Show all children but keep the top box hidden. */
 	gtk_widget_show_all (GTK_WIDGET (search_box));
-	
+	gtk_widget_hide (GTK_WIDGET (search_box));
 }
 
 static void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]