aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.me.uk>2018-04-15 18:21:18 +0200
committerThomas White <taw@bitwiz.me.uk>2018-04-15 18:21:18 +0200
commit13d49eed1282614105902a9a47b13e2bf36c53f5 (patch)
treebc5b4b66f2f5d48e441f4cd6d28dbcc172a522aa
parent8a9af01a658e844c83ba16d3d0dc1b8ab882af55 (diff)
Set transient parent for about box
A bit tricky because it can be called up from two different windows (narrative and slide editor)
-rw-r--r--data/menu-bar.ui2
-rw-r--r--src/colloquium.c4
-rw-r--r--src/colloquium.h1
-rw-r--r--src/narrative_window.c8
-rw-r--r--src/slide_window.c8
5 files changed, 20 insertions, 3 deletions
diff --git a/data/menu-bar.ui b/data/menu-bar.ui
index 909eb37..fc5b663 100644
--- a/data/menu-bar.ui
+++ b/data/menu-bar.ui
@@ -159,7 +159,7 @@
</item>
<item>
<attribute name='label' translatable='yes'>About</attribute>
- <attribute name='action'>app.about</attribute>
+ <attribute name='action'>win.about</attribute>
</item>
</section>
</submenu>
diff --git a/src/colloquium.c b/src/colloquium.c
index de093e8..dbe9caf 100644
--- a/src/colloquium.c
+++ b/src/colloquium.c
@@ -88,7 +88,7 @@ static void intro_sig(GSimpleAction *action, GVariant *parameter, gpointer vp)
}
-static void about_sig(GSimpleAction *action, GVariant *parameter, gpointer vp)
+void open_about_dialog(GtkWidget *parent)
{
GtkWidget *window;
@@ -98,6 +98,7 @@ static void about_sig(GSimpleAction *action, GVariant *parameter, gpointer vp)
};
window = gtk_about_dialog_new();
+ gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(parent));
gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(window),
"Colloquium");
@@ -210,7 +211,6 @@ GActionEntry app_entries[] = {
{ "new", new_sig, NULL, NULL, NULL },
{ "open", open_sig, NULL, NULL, NULL },
- { "about", about_sig, NULL, NULL, NULL },
{ "intro", intro_sig, NULL, NULL, NULL },
{ "quit", quit_sig, NULL, NULL, NULL },
};
diff --git a/src/colloquium.h b/src/colloquium.h
index beb7ec8..71bae1c 100644
--- a/src/colloquium.h
+++ b/src/colloquium.h
@@ -39,6 +39,7 @@ typedef struct _colloquium Colloquium;
extern const char *colloquium_get_imagestore(Colloquium *app);
extern int colloquium_get_hidepointer(Colloquium *app);
+extern void open_about_dialog(GtkWidget *parent);
#endif /* COLLOQUIUM_H */
diff --git a/src/narrative_window.c b/src/narrative_window.c
index 551195e..7d51350 100644
--- a/src/narrative_window.c
+++ b/src/narrative_window.c
@@ -139,6 +139,13 @@ static void saveas_sig(GSimpleAction *action, GVariant *parameter, gpointer vp)
}
+static void about_sig(GSimpleAction *action, GVariant *parameter, gpointer vp)
+{
+ NarrativeWindow *nw = vp;
+ open_about_dialog(nw->window);
+}
+
+
static void save_sig(GSimpleAction *action, GVariant *parameter, gpointer vp)
{
NarrativeWindow *nw = vp;
@@ -727,6 +734,7 @@ static int click_thumbnail(double x, double y, void *bvp, void *vp)
GActionEntry nw_entries[] = {
+ { "about", about_sig, NULL, NULL, NULL },
{ "save", save_sig, NULL, NULL, NULL },
{ "saveas", saveas_sig, NULL, NULL, NULL },
{ "sorter", open_slidesorter_sig, NULL, NULL, NULL },
diff --git a/src/slide_window.c b/src/slide_window.c
index 28d556b..a9f8459 100644
--- a/src/slide_window.c
+++ b/src/slide_window.c
@@ -212,8 +212,16 @@ static gboolean sw_key_press_sig(GtkWidget *da, GdkEventKey *event,
}
+static void about_sig(GSimpleAction *action, GVariant *parameter, gpointer vp)
+{
+ SlideWindow *sw = vp;
+ open_about_dialog(sw->window);
+}
+
+
GActionEntry sw_entries[] = {
+ { "about", about_sig, NULL, NULL, NULL },
{ "paste", paste_sig, NULL, NULL, NULL },
{ "copyframe", copy_frame_sig, NULL, NULL, NULL },
{ "deleteframe", delete_frame_sig, NULL, NULL, NULL },