diff options
-rw-r--r-- | ChangeLog | 18 | ||||
-rw-r--r-- | src/glade-clipboard-view.c | 14 | ||||
-rw-r--r-- | src/glade-clipboard.c | 34 | ||||
-rw-r--r-- | src/glade-widget.c | 18 | ||||
-rw-r--r-- | src/glade-widget.h | 1 |
5 files changed, 46 insertions, 39 deletions
@@ -1,3 +1,21 @@ +2002-03-27 Archit Baweja <bighead@users.sourceforge.net> + + * src/glade-clipboard.c (glade_clipboard_paste): removed call to + glade_widget_set_default_packing_options (). Fixed "clipboard copy" + bug. + +2002-03-23 Archit Baweja <bighead@users.sourceforge.net> + + * src/glade-clipboard-view.c + (glade_clipboard_view_selection_changed_cb): fixed bug. + +2002-03-22 Archit Baweja <bighead@users.sourceforge.net> + + * src/glade-widget.c (glade_widget_replace_with_placeholder): new + function. This piece if code was badly needed as a seperate function. + Changed all callers. + (glade_widget_delete): call above. + 2002-03-20 Carlos Perelló Marín <carlos@gnome-db.org> * src/glade-widget.c: fixed a small bug. Thanks Justin Zaun. diff --git a/src/glade-clipboard-view.c b/src/glade-clipboard-view.c index a0cb5362..24b7c4a8 100644 --- a/src/glade-clipboard-view.c +++ b/src/glade-clipboard-view.c @@ -44,8 +44,18 @@ glade_clipboard_view_selection_changed_cb (GtkTreeSelection * sel, return; gtk_tree_model_get (model, &iter, 0, &widget, -1); - if (widget) - view->clipboard->curr = widget; + /* + * FIXME: I think this is a bit hack-ish. If so, I'm not proud of it. + */ + if (widget) { + GladeWidget *real_widget; + GList *list = view->clipboard->widgets; + for (; list; list = list->next) { + real_widget = (GladeWidget *) list->data; + if (!strcmp (real_widget->name, widget->name)) + view->clipboard->curr = real_widget; + } + } } static void diff --git a/src/glade-clipboard.c b/src/glade-clipboard.c index 2921066e..f71ecb8c 100644 --- a/src/glade-clipboard.c +++ b/src/glade-clipboard.c @@ -116,7 +116,7 @@ glade_clipboard_add (GladeClipboard * clipboard, GladeWidget * widget) * If there is view present, update it. */ if (clipboard->view) - glade_clipboard_view_add (clipboard->view, widget); + glade_clipboard_view_add (GLADE_CLIPBOARD_VIEW (clipboard->view), widget); } /** @@ -136,7 +136,7 @@ glade_clipboard_remove (GladeClipboard * clipboard, GladeWidget * widget) * If there is a view present, update it. */ if (clipboard->view) - glade_clipboard_view_remove (clipboard->view, widget); + glade_clipboard_view_remove (GLADE_CLIPBOARD_VIEW (clipboard->view), widget); } /** @@ -149,36 +149,11 @@ glade_clipboard_remove (GladeClipboard * clipboard, GladeWidget * widget) void glade_clipboard_cut (GladeClipboard * clipboard, GladeWidget * widget) { - GladeWidget *parent; - g_return_if_fail (GLADE_IS_CLIPBOARD (clipboard)); g_return_if_fail (GLADE_IS_WIDGET (widget)); - parent = widget->parent; - glade_project_remove_widget (widget); - - /* - * If its not a toplevel widget, we remove it from its container. - * This is all GladeWidget stuff. - */ - if (parent) { - GladePlaceholder *placeholder; - - gtk_widget_ref (widget->widget); - placeholder = glade_placeholder_new (parent); - if (parent->class->placeholder_replace) - parent->class->placeholder_replace (widget->widget, - GTK_WIDGET (placeholder), - parent->widget); - gtk_widget_unref (widget->widget); - - /* Remove it from the parent's child list */ - parent->children = g_list_remove (parent->children, - widget); - } - - gtk_widget_hide (widget->widget); + glade_widget_replace_with_placeholder (widget); glade_clipboard_add (clipboard, widget); } @@ -247,8 +222,7 @@ glade_clipboard_paste (GladeClipboard * clipboard, glade_widget_set_contents (widget); glade_widget_connect_signals (widget); glade_placeholder_replace (placeholder, parent, widget); - glade_widget_set_default_packing_options (widget); - glade_project_selection_set (widget, TRUE); + glade_widget_select (widget); /* * This damned 'if' statement caused a 1 month delay. diff --git a/src/glade-widget.c b/src/glade-widget.c index c2d2d1c8..7b3c830a 100644 --- a/src/glade-widget.c +++ b/src/glade-widget.c @@ -552,7 +552,7 @@ glade_widget_key_press(GtkWidget *event_widget, GdkEventKey *event, gpointer use g_return_val_if_fail (selection->data != NULL, FALSE); glade_widget = GLADE_WIDGET (selection->data); - /* g_print ("Widget %s deleted.\n", glade_widget->name); */ + glade_widget_delete (glade_widget); } } @@ -1056,16 +1056,12 @@ glade_widget_free (GladeWidget *widget) } void -glade_widget_delete (GladeWidget *widget) +glade_widget_replace_with_placeholder (GladeWidget *widget) { GladeWidget *parent; - g_return_if_fail (widget != NULL); - - glade_project_remove_widget (widget); - parent = widget->parent; - + if (parent) { GladePlaceholder *placeholder; /* Replace the slot it was occuping with a placeholder */ @@ -1080,7 +1076,15 @@ glade_widget_delete (GladeWidget *widget) } else { gtk_widget_destroy (widget->widget); } +} +void +glade_widget_delete (GladeWidget *widget) +{ + g_return_if_fail (widget != NULL); + + glade_project_remove_widget (widget); + glade_widget_replace_with_placeholder (widget); glade_widget_free (widget); } diff --git a/src/glade-widget.h b/src/glade-widget.h index bfe871f3..6146a890 100644 --- a/src/glade-widget.h +++ b/src/glade-widget.h @@ -95,6 +95,7 @@ void glade_widget_cut (GladeWidget *widget); void glade_widget_copy (GladeWidget *widget); void glade_widget_paste (GladeWidget *widget); +void glade_widget_replace_with_placeholder (GladeWidget *widget); GladeWidget * glade_widget_get_from_gtk_widget (GtkWidget *widget); /* Xml saving & reading */ |