aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/colloquium.ui3
-rw-r--r--src/mainwindow.c20
-rw-r--r--src/presentation.c2
-rw-r--r--src/presentation.h2
4 files changed, 23 insertions, 4 deletions
diff --git a/data/colloquium.ui b/data/colloquium.ui
index f68a248..76a9084 100644
--- a/data/colloquium.ui
+++ b/data/colloquium.ui
@@ -21,7 +21,8 @@
<menuitem name="cut" action="CutAction" />
<menuitem name="copy" action="CopyAction" />
<menuitem name="paste" action="PasteAction" />
- <menuitem name="delete" action="DeleteAction" />
+ <separator />
+ <menuitem name="deleteframe" action="DeleteFrameAction" />
<separator />
<menuitem name="slidesorter" action="SorterAction" />
<menuitem name="stylesheet" action="EditStyleAction" />
diff --git a/src/mainwindow.c b/src/mainwindow.c
index 00667a3..fcd49a1 100644
--- a/src/mainwindow.c
+++ b/src/mainwindow.c
@@ -731,6 +731,22 @@ static gint open_slidesorter_sig(GtkWidget *widget, struct presentation *p)
return FALSE;
}
+static gint delete_frame_sig(GtkWidget *widget, struct presentation *p)
+{
+ int i;
+
+ for ( i=0; i<p->n_selection; i++ ) {
+ delete_subframe(p->cur_edit_slide, p->selection[i]);
+ }
+ p->n_selection = 0;
+
+ rerender_slide(p);
+ redraw_editor(p);
+
+ return FALSE;
+}
+
+
static void add_menu_bar(struct presentation *p, GtkWidget *vbox)
{
GError *error = NULL;
@@ -771,8 +787,8 @@ static void add_menu_bar(struct presentation *p, GtkWidget *vbox)
NULL, NULL, NULL },
{ "PasteAction", GTK_STOCK_PASTE, "Paste",
NULL, NULL, NULL },
- { "DeleteAction", GTK_STOCK_DELETE, "Delete",
- NULL, NULL, NULL },
+ { "DeleteFrameAction", GTK_STOCK_DELETE, "Delete Frame",
+ NULL, NULL, G_CALLBACK(delete_frame_sig) },
{ "EditStyleAction", NULL, "Stylesheet...",
NULL, NULL, G_CALLBACK(open_stylesheet_sig) },
diff --git a/src/presentation.c b/src/presentation.c
index 4612f03..426783f 100644
--- a/src/presentation.c
+++ b/src/presentation.c
@@ -609,7 +609,7 @@ static struct frame *find_parent(struct frame *fr, struct frame *search)
}
-static void delete_subframe(struct slide *s, struct frame *fr)
+void delete_subframe(struct slide *s, struct frame *fr)
{
struct frame *parent;
int i, idx, found;
diff --git a/src/presentation.h b/src/presentation.h
index 3bb96ed..2294c48 100644
--- a/src/presentation.h
+++ b/src/presentation.h
@@ -201,6 +201,8 @@ extern int insert_slide(struct presentation *p, struct slide *s, int pos);
extern void free_slide(struct slide *s);
extern void delete_slide(struct presentation *p, struct slide *s);
+extern void delete_subframe(struct slide *s, struct frame *fr);
+
extern void get_titlebar_string(struct presentation *p);
extern char *packed_sc(struct frame *fr, StyleSheet *ss);