231 lines
7.2 KiB
Diff
231 lines
7.2 KiB
Diff
From bd151c8174796c1c5b0b6466ef8a0e3a0e214054 Mon Sep 17 00:00:00 2001
|
|
From: Cosimo Cecchi <cosimoc@gnome.org>
|
|
Date: Sun, 26 Dec 2010 15:20:00 +0000
|
|
Subject: general: don't use deprecated gdk_app_launch_context_new()
|
|
|
|
---
|
|
diff --git a/eel/eel-gnome-extensions.c b/eel/eel-gnome-extensions.c
|
|
index fbe7437..73e9378 100644
|
|
--- a/eel/eel-gnome-extensions.c
|
|
+++ b/eel/eel-gnome-extensions.c
|
|
@@ -144,7 +144,7 @@ get_terminal_command_prefix (gboolean for_command)
|
|
return command;
|
|
}
|
|
|
|
-char *
|
|
+static char *
|
|
eel_gnome_make_terminal_command (const char *command)
|
|
{
|
|
char *prefix, *quoted, *terminal_command;
|
|
@@ -168,6 +168,7 @@ eel_gnome_open_terminal_on_screen (const char *command,
|
|
GAppInfo *app;
|
|
GdkAppLaunchContext *ctx;
|
|
GError *error = NULL;
|
|
+ GdkDisplay *display;
|
|
|
|
command_line = eel_gnome_make_terminal_command (command);
|
|
if (command_line == NULL) {
|
|
@@ -178,7 +179,8 @@ eel_gnome_open_terminal_on_screen (const char *command,
|
|
app = g_app_info_create_from_commandline (command_line, NULL, 0, &error);
|
|
|
|
if (app != NULL && screen != NULL) {
|
|
- ctx = gdk_app_launch_context_new ();
|
|
+ display = gdk_screen_get_display (screen);
|
|
+ ctx = gdk_display_get_app_launch_context (display);
|
|
gdk_app_launch_context_set_screen (ctx, screen);
|
|
|
|
g_app_info_launch (app, NULL, G_APP_LAUNCH_CONTEXT (ctx), &error);
|
|
@@ -195,9 +197,3 @@ eel_gnome_open_terminal_on_screen (const char *command,
|
|
|
|
g_free (command_line);
|
|
}
|
|
-
|
|
-void
|
|
-eel_gnome_open_terminal (const char *command)
|
|
-{
|
|
- eel_gnome_open_terminal_on_screen (command, NULL);
|
|
-}
|
|
diff --git a/eel/eel-gnome-extensions.h b/eel/eel-gnome-extensions.h
|
|
index 82c1374..8a00d5e 100644
|
|
--- a/eel/eel-gnome-extensions.h
|
|
+++ b/eel/eel-gnome-extensions.h
|
|
@@ -29,11 +29,7 @@
|
|
|
|
#include <gtk/gtk.h>
|
|
|
|
-/* Return a command string containing the path to a terminal on this system. */
|
|
-char * eel_gnome_make_terminal_command (const char *command);
|
|
-
|
|
/* Open up a new terminal, optionally passing in a command to execute */
|
|
-void eel_gnome_open_terminal (const char *command);
|
|
void eel_gnome_open_terminal_on_screen (const char *command,
|
|
GdkScreen *screen);
|
|
|
|
diff --git a/libnautilus-private/nautilus-program-choosing.c b/libnautilus-private/nautilus-program-choosing.c
|
|
index a003b84..e2e791e 100644
|
|
--- a/libnautilus-private/nautilus-program-choosing.c
|
|
+++ b/libnautilus-private/nautilus-program-choosing.c
|
|
@@ -95,12 +95,13 @@ nautilus_launch_application_by_uri (GAppInfo *application,
|
|
GList *uris,
|
|
GtkWindow *parent_window)
|
|
{
|
|
- char *uri;
|
|
- GList *locations, *l;
|
|
+ char *uri;
|
|
+ GList *locations, *l;
|
|
GFile *location;
|
|
- NautilusFile *file;
|
|
- gboolean result;
|
|
+ NautilusFile *file;
|
|
+ gboolean result;
|
|
GError *error;
|
|
+ GdkDisplay *display;
|
|
GdkAppLaunchContext *launch_context;
|
|
NautilusIconInfo *icon;
|
|
int count, total;
|
|
@@ -122,10 +123,18 @@ nautilus_launch_application_by_uri (GAppInfo *application,
|
|
}
|
|
locations = g_list_reverse (locations);
|
|
|
|
- launch_context = gdk_app_launch_context_new ();
|
|
- if (parent_window)
|
|
+ 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));
|
|
+ }
|
|
|
|
file = nautilus_file_get_by_uri (uris->data);
|
|
icon = nautilus_file_get_icon (file, 48, 0);
|
|
@@ -168,6 +177,33 @@ nautilus_launch_application_by_uri (GAppInfo *application,
|
|
g_list_free_full (locations, g_object_unref);
|
|
}
|
|
|
|
+static void
|
|
+launch_application_from_command_internal (const gchar *full_command,
|
|
+ GdkScreen *screen,
|
|
+ gboolean use_terminal)
|
|
+{
|
|
+ GAppInfo *app;
|
|
+ GdkAppLaunchContext *ctx;
|
|
+ GdkDisplay *display;
|
|
+
|
|
+ if (use_terminal) {
|
|
+ eel_gnome_open_terminal_on_screen (full_command, screen);
|
|
+ } else {
|
|
+ app = g_app_info_create_from_commandline (full_command, NULL, 0, NULL);
|
|
+
|
|
+ if (app != NULL) {
|
|
+ display = gdk_screen_get_display (screen);
|
|
+ ctx = gdk_display_get_app_launch_context (display);
|
|
+ gdk_app_launch_context_set_screen (ctx, screen);
|
|
+
|
|
+ g_app_info_launch (app, NULL, G_APP_LAUNCH_CONTEXT (ctx), NULL);
|
|
+
|
|
+ g_object_unref (app);
|
|
+ g_object_unref (ctx);
|
|
+ }
|
|
+ }
|
|
+}
|
|
+
|
|
/**
|
|
* nautilus_launch_application_from_command:
|
|
*
|
|
@@ -188,8 +224,6 @@ nautilus_launch_application_from_command (GdkScreen *screen,
|
|
char *quoted_parameter;
|
|
char *parameter;
|
|
va_list ap;
|
|
- GAppInfo *app;
|
|
- GdkAppLaunchContext *ctx;
|
|
|
|
full_command = g_strdup (command_string);
|
|
|
|
@@ -207,22 +241,8 @@ nautilus_launch_application_from_command (GdkScreen *screen,
|
|
|
|
va_end (ap);
|
|
|
|
- if (use_terminal) {
|
|
- eel_gnome_open_terminal_on_screen (full_command, screen);
|
|
- } else {
|
|
- app = g_app_info_create_from_commandline (full_command, NULL, 0, NULL);
|
|
-
|
|
- if (app != NULL) {
|
|
- ctx = gdk_app_launch_context_new ();
|
|
- gdk_app_launch_context_set_screen (ctx, screen);
|
|
-
|
|
- g_app_info_launch (app, NULL, G_APP_LAUNCH_CONTEXT (ctx), NULL);
|
|
-
|
|
- g_object_unref (app);
|
|
- g_object_unref (ctx);
|
|
- }
|
|
- }
|
|
-
|
|
+ launch_application_from_command_internal (full_command, screen, use_terminal);
|
|
+
|
|
g_free (full_command);
|
|
}
|
|
|
|
@@ -245,8 +265,6 @@ nautilus_launch_application_from_command_array (GdkScreen *screen,
|
|
char *full_command, *tmp;
|
|
char *quoted_parameter;
|
|
const char * const *p;
|
|
- GAppInfo *app;
|
|
- GdkAppLaunchContext *ctx;
|
|
|
|
full_command = g_strdup (command_string);
|
|
|
|
@@ -261,21 +279,7 @@ nautilus_launch_application_from_command_array (GdkScreen *screen,
|
|
}
|
|
}
|
|
|
|
- if (use_terminal) {
|
|
- eel_gnome_open_terminal_on_screen (full_command, screen);
|
|
- } else {
|
|
- app = g_app_info_create_from_commandline (full_command, NULL, 0, NULL);
|
|
-
|
|
- if (app != NULL) {
|
|
- ctx = gdk_app_launch_context_new ();
|
|
- gdk_app_launch_context_set_screen (ctx, screen);
|
|
-
|
|
- g_app_info_launch (app, NULL, G_APP_LAUNCH_CONTEXT (ctx), NULL);
|
|
-
|
|
- g_object_unref (app);
|
|
- g_object_unref (ctx);
|
|
- }
|
|
- }
|
|
+ launch_application_from_command_internal (full_command, screen, use_terminal);
|
|
|
|
g_free (full_command);
|
|
}
|
|
@@ -362,7 +366,7 @@ nautilus_launch_desktop_file (GdkScreen *screen,
|
|
}
|
|
|
|
error = NULL;
|
|
- context = gdk_app_launch_context_new ();
|
|
+ context = gdk_display_get_app_launch_context (gtk_widget_get_display (GTK_WIDGET (parent_window)));
|
|
/* 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/nautilus-connect-server-dialog-main.c b/src/nautilus-connect-server-dialog-main.c
|
|
index d25eaf3..8b518fe 100644
|
|
--- a/src/nautilus-connect-server-dialog-main.c
|
|
+++ b/src/nautilus-connect-server-dialog-main.c
|
|
@@ -88,7 +88,7 @@ nautilus_connect_server_dialog_display_location_async (NautilusConnectServerDial
|
|
g_print ("%s\n", uri);
|
|
}
|
|
else {
|
|
- launch_context = gdk_app_launch_context_new ();
|
|
+ launch_context = gdk_display_get_app_launch_context (gtk_widget_get_display (GTK_WIDGET (self)));
|
|
gdk_app_launch_context_set_screen (launch_context,
|
|
gtk_widget_get_screen (GTK_WIDGET (self)));
|
|
|
|
--
|
|
cgit v0.8.3.1
|