Deiconify a window when double clicking on its icon in the project view.

This commit is contained in:
Paolo Borelli 2003-11-14 17:58:26 +00:00
parent 087ec185ca
commit e2f20306ec
2 changed files with 36 additions and 15 deletions

View File

@ -1,3 +1,8 @@
2003-11-14 Poalo Borelli <pborelli@katamail.com>
* src/glade-project-view.c: deiconify a window when double clicking on
its icon in the project view.
2003-11-14 Poalo Borelli <pborelli@katamail.com> 2003-11-14 Poalo Borelli <pborelli@katamail.com>
* src/glade-command.[ch]: update the MAKE_TYPE macro for GType and * src/glade-command.[ch]: update the MAKE_TYPE macro for GType and

View File

@ -41,8 +41,10 @@ glade_project_view_get_type (void)
{ {
static GType type = 0; static GType type = 0;
if (!type) { if (!type)
static const GTypeInfo info = { {
static const GTypeInfo info =
{
sizeof (GladeProjectViewClass), sizeof (GladeProjectViewClass),
(GBaseInitFunc) NULL, (GBaseInitFunc) NULL,
(GBaseFinalizeFunc) NULL, (GBaseFinalizeFunc) NULL,
@ -76,7 +78,8 @@ glade_project_view_find_iter (GtkTreeModel *model,
next = gtk_tree_iter_copy (iter); next = gtk_tree_iter_copy (iter);
while (TRUE) { while (TRUE)
{
gtk_tree_model_get (model, next, WIDGET_COLUMN, &widget, -1); gtk_tree_model_get (model, next, WIDGET_COLUMN, &widget, -1);
if (widget == NULL) { if (widget == NULL) {
g_warning ("Could not get the glade widget from the model"); g_warning ("Could not get the glade widget from the model");
@ -86,7 +89,8 @@ glade_project_view_find_iter (GtkTreeModel *model,
return gtk_tree_iter_copy (next); return gtk_tree_iter_copy (next);
/* Me ? leaking ? nah .... */ /* Me ? leaking ? nah .... */
#if 1 #if 1
if (gtk_tree_model_iter_has_child (model, next)) { if (gtk_tree_model_iter_has_child (model, next))
{
GtkTreeIter *child = g_new0 (GtkTreeIter, 1); GtkTreeIter *child = g_new0 (GtkTreeIter, 1);
GtkTreeIter *retval = NULL; GtkTreeIter *retval = NULL;
gtk_tree_model_iter_children (model, child, next); gtk_tree_model_iter_children (model, child, next);
@ -111,14 +115,15 @@ glade_project_view_find_iter_by_widget (GtkTreeModel *model,
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeIter *retval; GtkTreeIter *retval;
if (!gtk_tree_model_get_iter_root (model, &iter)) { if (!gtk_tree_model_get_iter_root (model, &iter))
{
g_warning ("Cound not find first widget."); g_warning ("Cound not find first widget.");
return NULL; return NULL;
} }
retval = glade_project_view_find_iter (model, &iter, findme); retval = glade_project_view_find_iter (model, &iter, findme);
if (retval == NULL) if (!retval)
g_warning ("Could not find iterator for %s\n", findme->name); g_warning ("Could not find iterator for %s\n", findme->name);
return retval; return retval;
@ -139,7 +144,8 @@ glade_project_view_widget_name_changed (GladeProjectView *view,
iter = glade_project_view_find_iter_by_widget (model, findme); iter = glade_project_view_find_iter_by_widget (model, findme);
if (iter) { if (iter)
{
path = gtk_tree_model_get_path (model, iter); path = gtk_tree_model_get_path (model, iter);
gtk_tree_model_row_changed (model, path, iter); gtk_tree_model_row_changed (model, path, iter);
} }
@ -160,18 +166,21 @@ glade_project_view_populate_model_real (GtkTreeStore *model,
list = g_list_copy (widgets); list = g_list_copy (widgets);
list = g_list_reverse (list); list = g_list_reverse (list);
for (; list; list = list->next) { for (; list; list = list->next)
{
GladeWidget *widget; GladeWidget *widget;
widget = glade_widget_get_from_gtk_widget (list->data); widget = glade_widget_get_from_gtk_widget (list->data);
if (widget) { if (widget)
{
gtk_tree_store_append (model, &iter, parent_iter); gtk_tree_store_append (model, &iter, parent_iter);
gtk_tree_store_set (model, &iter, gtk_tree_store_set (model, &iter,
WIDGET_COLUMN, widget, WIDGET_COLUMN, widget,
-1); -1);
} }
if (add_childs && GTK_IS_CONTAINER (list->data)) { if (add_childs && GTK_IS_CONTAINER (list->data))
{
GList *children; GList *children;
GtkTreeIter *copy = NULL; GtkTreeIter *copy = NULL;
@ -198,7 +207,8 @@ glade_project_view_populate_model (GladeProjectView *view)
return; return;
/* Make a list of only the toplevel widgets */ /* Make a list of only the toplevel widgets */
for (list = project->widgets; list; list = list->next) { for (list = project->widgets; list; list = list->next)
{
GtkWidget *widget; GtkWidget *widget;
widget = GTK_WIDGET (list->data); widget = GTK_WIDGET (list->data);
@ -388,6 +398,9 @@ glade_project_view_item_activated_cb (GtkTreeView *view,
gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_model_get (model, &iter, WIDGET_COLUMN, &widget, -1); gtk_tree_model_get (model, &iter, WIDGET_COLUMN, &widget, -1);
if (GTK_IS_WINDOW (widget->widget))
gtk_window_deiconify (GTK_WINDOW (widget->widget));
gtk_widget_show (widget->widget); gtk_widget_show (widget->widget);
} }
@ -527,12 +540,14 @@ glade_project_view_new (GladeProjectViewType type)
{ {
GladeProjectView *view = g_object_new (GLADE_TYPE_PROJECT_VIEW, NULL); GladeProjectView *view = g_object_new (GLADE_TYPE_PROJECT_VIEW, NULL);
if (type == GLADE_PROJECT_VIEW_LIST) { if (type == GLADE_PROJECT_VIEW_LIST)
{
view->is_list = TRUE; view->is_list = TRUE;
/* in the main window list we don't want the header */ /* in the main window list we don't want the header */
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (view->tree_view), FALSE); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (view->tree_view), FALSE);
} else }
else
view->is_list = FALSE; view->is_list = FALSE;
gtk_container_add (GTK_CONTAINER (view), view->tree_view); gtk_container_add (GTK_CONTAINER (view), view->tree_view);
@ -561,7 +576,8 @@ glade_project_view_set_project (GladeProjectView *view,
return; return;
/* This view stops listening to the old project (if there was one) */ /* This view stops listening to the old project (if there was one) */
if (view->project != NULL) { if (view->project != NULL)
{
g_signal_handler_disconnect (G_OBJECT (view->project), g_signal_handler_disconnect (G_OBJECT (view->project),
view->add_widget_signal_id); view->add_widget_signal_id);
g_signal_handler_disconnect (G_OBJECT (view->project), g_signal_handler_disconnect (G_OBJECT (view->project),