57 lines
2.0 KiB
Diff
57 lines
2.0 KiB
Diff
|
diff --git a/lib/menu.in b/lib/menu.in
|
||
|
index 88a3d70..e79d828 100644
|
||
|
--- a/lib/menu.in
|
||
|
+++ b/lib/menu.in
|
||
|
@@ -13,5 +13,6 @@ prog XChat xchat xchat
|
||
|
prog Gimp gimp gimp
|
||
|
separator
|
||
|
menuprog "Desktop Apps" folder icewm-menu-fdo
|
||
|
-menufile Programs folder programs
|
||
|
+#menufile Programs folder programs
|
||
|
menufile Tool_bar folder toolbar
|
||
|
+menuprog SUSE folder xdg_menu --format icewm
|
||
|
diff --git a/src/wmprog.cc b/src/wmprog.cc
|
||
|
index d1ce6b0..5190d80 100644
|
||
|
--- a/src/wmprog.cc
|
||
|
+++ b/src/wmprog.cc
|
||
|
@@ -250,6 +250,14 @@ char *parseIncludeStatement(IApp *app, YSMListener *smActionListener, YActionLis
|
||
|
return p;
|
||
|
}
|
||
|
|
||
|
+void loadMenusProg(
|
||
|
+ IApp *app,
|
||
|
+ YSMListener *smActionListener,
|
||
|
+ YActionListener *wmActionListener,
|
||
|
+ const char *command,
|
||
|
+ char *const argv[],
|
||
|
+ ObjectContainer *container);
|
||
|
+
|
||
|
char *parseMenus(IApp *app, YSMListener *smActionListener, YActionListener *wmActionListener, char *data, ObjectContainer *container) {
|
||
|
char *p = data;
|
||
|
char word[32];
|
||
|
@@ -416,7 +424,23 @@ char *parseMenus(IApp *app, YSMListener *smActionListener, YActionListener *wmAc
|
||
|
delete[] name;
|
||
|
delete[] icons;
|
||
|
delete[] command;
|
||
|
- } else if (!strcmp(word, "menuprogreload")) {
|
||
|
+ } else if(!strcmp(word, "suseprog")) {
|
||
|
+ char *command;
|
||
|
+ YStringArray args;
|
||
|
+
|
||
|
+ p = getCommandArgs(p, &command, args);
|
||
|
+ if (p == 0) {
|
||
|
+ msg(_("Error at prog %s"), "susemenu"); return p;
|
||
|
+ }
|
||
|
+
|
||
|
+ MSG(("suseprog %s", command));
|
||
|
+
|
||
|
+ upath fullPath = findPath(getenv("PATH"), X_OK, command);
|
||
|
+ if (fullPath != null) {
|
||
|
+ loadMenusProg(app,smActionListener,wmActionListener,command,args.getCArray(),container);
|
||
|
+ }
|
||
|
+ delete[] command;
|
||
|
+ } else if(!strcmp(word, "menuprogreload")) {
|
||
|
char *name;
|
||
|
|
||
|
p = YConfig::getArgument(&name, p, false);
|