diff options
| -rw-r--r-- | libcaja-private/caja-program-choosing.c | 30 | ||||
| -rw-r--r-- | src/caja-connect-server-dialog-main.c | 4 | 
2 files changed, 32 insertions, 2 deletions
| diff --git a/libcaja-private/caja-program-choosing.c b/libcaja-private/caja-program-choosing.c index 8ac87f0b..6793608e 100644 --- a/libcaja-private/caja-program-choosing.c +++ b/libcaja-private/caja-program-choosing.c @@ -205,6 +205,9 @@ caja_launch_application_by_uri (GAppInfo *application,      CajaFile    *file;      gboolean        result;      GError *error; +#if GTK_CHECK_VERSION (3, 0, 0) +    GdkDisplay *display; +#endif      GdkAppLaunchContext *launch_context;      CajaIconInfo *icon;      int count, total; @@ -228,10 +231,25 @@ caja_launch_application_by_uri (GAppInfo *application,      }      locations = g_list_reverse (locations); +#if GTK_CHECK_VERSION (3, 0, 0) +    if (parent_window != NULL) { +            display = gtk_widget_get_display (GTK_WIDGET (parent_window)); +    } else { +            display = gdk_display_get_default (); +    } + +    launch_context = gdk_display_get_app_launch_context (display); + +    if (parent_window != NULL) { +        gdk_app_launch_context_set_screen (launch_context, +                                           gtk_window_get_screen (parent_window)); +    } +#else      launch_context = gdk_app_launch_context_new ();      if (parent_window)          gdk_app_launch_context_set_screen (launch_context,                                             gtk_window_get_screen (parent_window)); +#endif      file = caja_file_get_by_uri (uris->data);      icon = caja_file_get_icon (file, 48, 0); @@ -338,6 +356,7 @@ caja_launch_application_from_command (GdkScreen  *screen,      {  #if GTK_CHECK_VERSION (3, 0, 0)          GdkAppLaunchContext *launch_context; +        GdkDisplay *display;          GAppInfo *app_info = NULL;          app_info = g_app_info_create_from_commandline (full_command,                                                         NULL, @@ -345,7 +364,8 @@ caja_launch_application_from_command (GdkScreen  *screen,                                                         NULL);          if (app_info != NULL)          { -            launch_context = gdk_app_launch_context_new (); +            display = gdk_screen_get_display (screen); +            launch_context = gdk_display_get_app_launch_context (display);              gdk_app_launch_context_set_screen (launch_context, screen);              g_app_info_launch (app_info, NULL, G_APP_LAUNCH_CONTEXT (launch_context), NULL);              g_object_unref (launch_context); @@ -432,6 +452,7 @@ caja_launch_application_from_command_array (GdkScreen  *screen,      {  #if GTK_CHECK_VERSION (3, 0, 0)          GdkAppLaunchContext *launch_context; +        GdkDisplay *display;          GAppInfo *app_info = NULL;          app_info = g_app_info_create_from_commandline (full_command,                                                         NULL, @@ -439,7 +460,8 @@ caja_launch_application_from_command_array (GdkScreen  *screen,                                                         NULL);          if (app_info != NULL)          { -            launch_context = gdk_app_launch_context_new (); +            display = gdk_screen_get_display (screen); +            launch_context = gdk_display_get_app_launch_context (display);              gdk_app_launch_context_set_screen (launch_context, screen);              g_app_info_launch (app_info, NULL, G_APP_LAUNCH_CONTEXT (launch_context), NULL);              g_object_unref (launch_context); @@ -572,7 +594,11 @@ caja_launch_desktop_file (GdkScreen   *screen,      }      error = NULL; +#if GTK_CHECK_VERSION (3, 0, 0) +    context = gdk_display_get_app_launch_context (gtk_widget_get_display (GTK_WIDGET (parent_window))); +#else      context = gdk_app_launch_context_new (); +#endif      /* TODO: Ideally we should accept a timestamp here instead of using GDK_CURRENT_TIME */      gdk_app_launch_context_set_timestamp (context, GDK_CURRENT_TIME);      gdk_app_launch_context_set_screen (context, diff --git a/src/caja-connect-server-dialog-main.c b/src/caja-connect-server-dialog-main.c index 4c80fc16..393cdc88 100644 --- a/src/caja-connect-server-dialog-main.c +++ b/src/caja-connect-server-dialog-main.c @@ -82,7 +82,11 @@ caja_connect_server_dialog_display_location_async (CajaConnectServerDialog *self      error = NULL;      uri = g_file_get_uri (location); +#if GTK_CHECK_VERSION (3, 0, 0) +    launch_context = gdk_display_get_app_launch_context (gtk_widget_get_display (GTK_WIDGET (self))); +#else      launch_context = gdk_app_launch_context_new (); +#endif      gdk_app_launch_context_set_screen (launch_context,                                         gtk_widget_get_screen (GTK_WIDGET (self))); | 
