labwc/src/action.c
Johan Malm 543f00131c action: add "ShowMenu" option
Parse the following in rc.xml:

<keyboard>
  <keybind key="">
    <action name="ShowMenu">
      <menu>root-menu</menu>
    </action>
  </keybind>
</keyboard>
2020-10-31 15:27:22 +00:00

42 lines
1 KiB
C

#include <strings.h>
#include "common/log.h"
#include "common/spawn.h"
#include "labwc.h"
#include "menu/menu.h"
static void
show_menu(struct server *server, const char *menu)
{
if (!menu) {
return;
}
if (!strcasecmp(menu, "root-menu")) {
server->input_mode = LAB_INPUT_STATE_MENU;
menu_move(server->rootmenu, server->seat.cursor->x,
server->seat.cursor->y);
}
}
void
action(struct server *server, const char *action, const char *command)
{
if (!action)
return;
if (!strcasecmp(action, "Debug")) {
/* nothing */
} else if (!strcasecmp(action, "Execute")) {
spawn_async_no_shell(command);
} else if (!strcasecmp(action, "Exit")) {
wl_display_terminate(server->wl_display);
} else if (!strcasecmp(action, "NextWindow")) {
server->cycle_view =
desktop_cycle_view(server, server->cycle_view);
} else if (!strcasecmp(action, "Reconfigure")) {
spawn_async_no_shell("killall -SIGHUP labwc");
} else if (!strcasecmp(action, "ShowMenu")) {
show_menu(server, command);
} else {
warn("action (%s) not supported", action);
}
}