aboutsummaryrefslogtreecommitdiff
path: root/src/launcher-menu-item.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/launcher-menu-item.c')
-rw-r--r--src/launcher-menu-item.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/launcher-menu-item.c b/src/launcher-menu-item.c
index 4f05ae6..653592c 100644
--- a/src/launcher-menu-item.c
+++ b/src/launcher-menu-item.c
@@ -24,6 +24,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config.h"
#endif
+#include <gdk/gdk.h>
#include <glib/gi18n.h>
#include <gio/gdesktopappinfo.h>
#include "launcher-menu-item.h"
@@ -156,12 +157,23 @@ activate_cb (LauncherMenuItem * self, gpointer data)
LauncherMenuItemPrivate * priv = LAUNCHER_MENU_ITEM_GET_PRIVATE(self);
g_return_if_fail(priv->appinfo != NULL);
+ /* This should manage the X stuff for us */
+ GdkAppLaunchContext * context = gdk_app_launch_context_new();
+
+ /* Using the current time as we don't have the event
+ time as that's not sent across the bus */
+ GTimeVal time;
+ g_get_current_time(&time);
+ gdk_app_launch_context_set_timestamp(context, time.tv_usec);
+
GError * error = NULL;
- if (!g_app_info_launch(priv->appinfo, NULL, NULL, &error)) {
+ if (!g_app_info_launch(priv->appinfo, NULL, G_APP_LAUNCH_CONTEXT(context), &error)) {
g_warning("Application failed to launch '%s' because: %s", launcher_menu_item_get_name(self), error->message);
g_error_free(error);
}
+ g_object_unref(G_OBJECT(context));
+
return;
}