diff options
| author | Mikael Magnusson <mikachu@gmail.com> | 2010-04-16 17:58:20 +0200 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2011-08-01 11:53:29 -0400 |
| commit | 588aa0790abd0bf6452843c0e3490482e90b3654 (patch) | |
| tree | b8c5b5bbf7dcf6aa1605ee811dd9a492d2180637 /openbox/menu.c | |
| parent | 6ad5f085fa5a38ab8373769cac5cd52839d0a7a5 (diff) | |
Allow setting icons for submenus
Diffstat (limited to 'openbox/menu.c')
| -rw-r--r-- | openbox/menu.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/openbox/menu.c b/openbox/menu.c index 6c346e85..daea0b65 100644 --- a/openbox/menu.c +++ b/openbox/menu.c @@ -326,6 +326,8 @@ static void parse_menu(xmlNodePtr node, gpointer data) ObMenuParseState *state = data; gchar *name = NULL, *title = NULL, *script = NULL; ObMenu *menu; + ObMenuEntry *e; + gchar *icon; if (!obt_xml_attr_string(node, "id", &name)) goto parse_menu_fail; @@ -349,8 +351,20 @@ static void parse_menu(xmlNodePtr node, gpointer data) } } - if (state->parent) - menu_add_submenu(state->parent, -1, name); + if (state->parent) { + e = menu_add_submenu(state->parent, -1, name); + + if (config_menu_show_icons && + obt_xml_attr_string(node, "icon", &icon)) + { + e->data.submenu.icon = RrImageNewFromName(ob_rr_icons, icon); + + if (e->data.submenu.icon) + e->data.submenu.icon_alpha = 0xff; + + g_free(icon); + } + } parse_menu_fail: g_free(name); @@ -534,6 +548,7 @@ void menu_entry_unref(ObMenuEntry *self) } break; case OB_MENU_ENTRY_TYPE_SUBMENU: + RrImageUnref(self->data.submenu.icon); g_free(self->data.submenu.name); break; case OB_MENU_ENTRY_TYPE_SEPARATOR: |
