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