r2185 - in trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu: . src
stefan at sita.openmoko.org
stefan at sita.openmoko.org
Wed Jun 6 23:35:32 CEST 2007
Author: stefan
Date: 2007-06-06 23:35:30 +0200 (Wed, 06 Jun 2007)
New Revision: 2185
Modified:
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/ChangeLog
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/configure.ac
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/src/Makefile.am
trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/src/stylusmenu.c
Log:
2007-06-06 Stefan Schmidt <stefan at openmoko.org>
* configure.ac:
* src/Makefile.am:
* src/stylusmenu.c:
(moko_stylus_menu_activate_item):
Add launcher startup notification support. Close bug #575
Modified: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/ChangeLog
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/ChangeLog 2007-06-06 20:57:51 UTC (rev 2184)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/ChangeLog 2007-06-06 21:35:30 UTC (rev 2185)
@@ -1,5 +1,13 @@
2007-06-06 Stefan Schmidt <stefan at openmoko.org>
+ * configure.ac:
+ * src/Makefile.am:
+ * src/stylusmenu.c:
+ (moko_stylus_menu_activate_item):
+ Add launcher startup notification support. Close bug #575
+
+2007-06-06 Stefan Schmidt <stefan at openmoko.org>
+
* src/buttonactions.h:
* src/mokodesktop.c:
* src/mokodesktop.h:
Modified: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/configure.ac
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/configure.ac 2007-06-06 20:57:51 UTC (rev 2184)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/configure.ac 2007-06-06 21:35:30 UTC (rev 2185)
@@ -15,9 +15,15 @@
AC_MSG_ERROR([*** Required OpenMoko Libraries >= 0.0.2 not installed ***]))
PKG_CHECK_MODULES(LIBMB, libmb,,
AC_MSG_ERROR([matchbox-lib required]))
-LIBS="$LIBS $OPENMOKO_LIBS $LIBMB_LIBS"
-CFLAGS="$CFLAGS $OPENMOKO_CFLAGS $LIBMB_CFLAGS"
+PKG_CHECK_MODULES(LIBSN, libstartup-notification-1.0, ,
+ AC_MSG_ERROR([*** Required Startup Notification library not installed ***]))
+#AC_SUBST(SN_LIBS)
+#AC_SUBST(SN_CFLAGS)
+
+LIBS="$LIBS $OPENMOKO_LIBS $LIBMB_LIBS $LIBSN_LIBS"
+CFLAGS="$CFLAGS $OPENMOKO_CFLAGS $LIBMB_CFLAGS $LIBSN_CFLAGS"
+
# output stuff
AC_OUTPUT([
Makefile
Modified: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/src/Makefile.am 2007-06-06 20:57:51 UTC (rev 2184)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/src/Makefile.am 2007-06-06 21:35:30 UTC (rev 2185)
@@ -1,5 +1,5 @@
AM_CPPFLAGS=-DPKGDATADIR=\"$(pkgdatadir)\" -DGETTEXT_PACKAGE=\"matchbox-panel\"
-AM_CFLAGS = -Wall -std=c99 -pedantic @OPENMOKO_CFLAGS@ @LIBMB_CFLAGS@
+AM_CFLAGS = -Wall -std=c99 -pedantic @OPENMOKO_CFLAGS@ @LIBMB_CFLAGS@ @LIBSN_CFLAGS@
appletdir = $(libdir)/matchbox-panel/
applet_LTLIBRARIES = libopenmoko-panel-mainmenu.la
@@ -10,7 +10,7 @@
stylusmenu.c \
mokodesktop.c \
mokodesktop_item.c
-libopenmoko_panel_mainmenu_la_LIBADD = @OPENMOKO_LIBS@ @LIBMB_LIBS@
+libopenmoko_panel_mainmenu_la_LIBADD = @OPENMOKO_LIBS@ @LIBMB_LIBS@ @LIBSN_LIBS@
MAINTAINERCLEANFILES = Makefile.in
Modified: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/src/stylusmenu.c
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/src/stylusmenu.c 2007-06-06 20:57:51 UTC (rev 2184)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-mainmenu/src/stylusmenu.c 2007-06-06 21:35:30 UTC (rev 2185)
@@ -20,6 +20,10 @@
#include "stylusmenu.h"
//#include "callbacks.h"
+#define SN_API_NOT_YET_FROZEN 1
+#include <libsn/sn-launcher.h>
+#include <gdk/gdkx.h>
+
static GtkImageMenuItem *moko_build_new_menu_item(const char *icon_name,
const char *icon_path);
static void moko_stylus_menu_activate_item(GtkWidget * widget, void *user_data);
@@ -150,16 +154,37 @@
static void moko_stylus_menu_activate_item(GtkWidget * widget, void *user_data)
{
MokoDesktopItem *ditem = user_data;
+ char* child = (char *)ditem->data;
+ SnLauncherContext* sn_context;
+ SnDisplay* sn_dpy;
+ Display* display;
+ int screen;
+ pid_t pid = 0;
+
g_debug("item activated: %s", ditem->data);
- switch (fork()) {
+
+ display = gdk_x11_display_get_xdisplay(gtk_widget_get_display (widget));
+ sn_dpy = sn_display_new(display, NULL, NULL);
+
+ screen = gdk_screen_get_number(gtk_widget_get_screen (widget));
+ sn_context = sn_launcher_context_new(sn_dpy, screen);
+ sn_display_unref(sn_dpy);
+
+ sn_launcher_context_set_binary_name(sn_context, child);
+ sn_launcher_context_initiate(sn_context, "openmoko-panel-mainmenu", child, CurrentTime);
+
+ switch ((pid =fork())) {
case 0:
- mb_exec((char *)ditem->data);
- fprintf(stderr, "exec failed, cleaning up child\n");
+ sn_launcher_context_setup_child_process(sn_context);
+ mb_exec(child);
+ g_warning("Failed to exec %s", child);
exit(1);
case -1:
- fprintf(stderr, "can't fork\n");
+ g_warning("Failed to fork %s", child);
break;
}
+
+ sn_launcher_context_unref(sn_context);
}
void
More information about the commitlog
mailing list