summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog18
-rw-r--r--src/glade-clipboard-view.c14
-rw-r--r--src/glade-clipboard.c34
-rw-r--r--src/glade-widget.c18
-rw-r--r--src/glade-widget.h1
5 files changed, 46 insertions, 39 deletions
diff --git a/ChangeLog b/ChangeLog
index 5f00ed74..66e4722f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 */