[gnome-photos] Create a GAppLaunchContext even if a GtkWidget isn't around
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos] Create a GAppLaunchContext even if a GtkWidget isn't around
- Date: Thu, 18 Jan 2018 13:32:36 +0000 (UTC)
commit 781f8b632fc3183c9303768be63baaa6e9c8d1df
Author: Debarshi Ray <debarshir gnome org>
Date: Thu Jan 18 14:12:48 2018 +0100
Create a GAppLaunchContext even if a GtkWidget isn't around
src/photos-share-point-email.c | 6 +++++-
src/photos-utils.c | 20 +++++++++++---------
2 files changed, 16 insertions(+), 10 deletions(-)
---
diff --git a/src/photos-share-point-email.c b/src/photos-share-point-email.c
index a5ac56bf..f2de54ff 100644
--- a/src/photos-share-point-email.c
+++ b/src/photos-share-point-email.c
@@ -92,6 +92,7 @@ static void
photos_share_point_email_share_save_to_dir (GObject *source_object, GAsyncResult *res, gpointer user_data)
{
PhotosSharePointEmail *self;
+ GAppLaunchContext *ctx = NULL;
GError *error;
GFile *file = NULL;
GTask *task = G_TASK (user_data);
@@ -114,8 +115,10 @@ photos_share_point_email_share_save_to_dir (GObject *source_object, GAsyncResult
escaped_path = g_uri_escape_string (path, G_URI_RESERVED_CHARS_ALLOWED_IN_PATH, FALSE);
uri = g_strconcat ("mailto:?attach=", escaped_path, NULL);
+ ctx = photos_utils_new_app_launch_context_from_widget (NULL);
+
error = NULL;
- if (!photos_glib_app_info_launch_uri (self->default_app, uri, NULL, &error))
+ if (!photos_glib_app_info_launch_uri (self->default_app, uri, ctx, &error))
{
g_task_return_error (task, error);
goto out;
@@ -127,6 +130,7 @@ photos_share_point_email_share_save_to_dir (GObject *source_object, GAsyncResult
g_free (escaped_path);
g_free (path);
g_free (uri);
+ g_clear_object (&ctx);
g_clear_object (&file);
g_object_unref (task);
}
diff --git a/src/photos-utils.c b/src/photos-utils.c
index 08625a2b..923dea49 100644
--- a/src/photos-utils.c
+++ b/src/photos-utils.c
@@ -1280,21 +1280,23 @@ photos_utils_new_app_launch_context_from_widget (GtkWidget *widget)
{
GAppLaunchContext *ret_val = NULL;
g_autoptr (GdkAppLaunchContext) ctx = NULL;
- GdkDisplay *display;
- GdkScreen *screen;
+ GdkDisplay *display = NULL;
+ GdkScreen *screen = NULL;
- if (widget == NULL)
- goto out;
+ if (widget != NULL)
+ {
+ screen = gtk_widget_get_screen (widget);
+ display = gdk_screen_get_display (screen);
+ }
- screen = gtk_widget_get_screen (widget);
- display = gdk_screen_get_display (screen);
+ if (display == NULL)
+ display = gdk_display_get_default ();
ctx = gdk_display_get_app_launch_context (display);
- gdk_app_launch_context_set_screen (ctx, screen);
+ if (screen != NULL)
+ gdk_app_launch_context_set_screen (ctx, screen);
ret_val = G_APP_LAUNCH_CONTEXT (g_steal_pointer (&ctx));
-
- out:
return ret_val;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]