Add action.c

This commit is contained in:
Johan Malm 2020-06-18 20:18:01 +01:00
parent 1e342f8976
commit 7440919452
10 changed files with 30 additions and 28 deletions

View file

@ -29,6 +29,8 @@
#include <wlr/xwayland.h> #include <wlr/xwayland.h>
#include <xkbcommon/xkbcommon.h> #include <xkbcommon/xkbcommon.h>
#include "rcxml.h"
#define XCURSOR_DEFAULT "left_ptr" #define XCURSOR_DEFAULT "left_ptr"
#define XCURSOR_SIZE 24 #define XCURSOR_SIZE 24
#define XCURSOR_MOVE "grabbing" #define XCURSOR_MOVE "grabbing"
@ -176,6 +178,8 @@ struct wlr_box deco_max_extents(struct view *view);
struct wlr_box deco_box(struct view *view, enum deco_part deco_part); struct wlr_box deco_box(struct view *view, enum deco_part deco_part);
enum deco_part deco_at(struct view *view, double lx, double ly); enum deco_part deco_at(struct view *view, double lx, double ly);
void action(struct server *server, struct keybind *keybind);
void dbg_show_one_view(struct view *view); void dbg_show_one_view(struct view *view);
void dbg_show_views(struct server *server); void dbg_show_views(struct server *server);

22
src/action.c Normal file
View file

@ -0,0 +1,22 @@
#include "labwc.h"
#include <strings.h>
void action(struct server *server, struct keybind *keybind)
{
if (!keybind || !keybind->action)
return;
if (!strcasecmp(keybind->action, "Exit")) {
wl_display_terminate(server->wl_display);
} else if (!strcasecmp(keybind->action, "NextWindow")) {
server->cycle_view = next_toplevel(view_front_toplevel(server));
} else if (!strcasecmp(keybind->action, "Execute")) {
if (!fork())
execl("/bin/dmenu_run", "/bin/dmenu_run", (void *)NULL);
} else if (!strcasecmp(keybind->action, "debug-views")) {
dbg_show_views(server);
} else {
fprintf(stderr, "warn: action (%s) not supported\n",
keybind->action);
}
}

View file

@ -56,9 +56,9 @@ void keybind_add(struct wl_list *keybinds, const char *keybind,
void keybind_init() void keybind_init()
{ {
keybind_add(&rc.keybinds, "A-Escape", "exit"); keybind_add(&rc.keybinds, "A-Escape", "Exit");
keybind_add(&rc.keybinds, "A-Tab", "cycle"); keybind_add(&rc.keybinds, "A-Tab", "NextWindow");
keybind_add(&rc.keybinds, "A-F3", "exec"); keybind_add(&rc.keybinds, "A-F3", "Execute");
} }
void keybind_print() void keybind_print()

View file

@ -1,5 +1,4 @@
#include "labwc.h" #include "labwc.h"
#include "rcxml.h"
static void keyboard_handle_modifiers(struct wl_listener *listener, void *data) static void keyboard_handle_modifiers(struct wl_listener *listener, void *data)
{ {
@ -21,25 +20,6 @@ static void keyboard_handle_modifiers(struct wl_listener *listener, void *data)
keyboard->server->seat, &keyboard->device->keyboard->modifiers); keyboard->server->seat, &keyboard->device->keyboard->modifiers);
} }
static void action(struct server *server, struct keybind *keybind)
{
if (!keybind || !keybind->action)
return;
if (!strcmp(keybind->action, "exit")) {
wl_display_terminate(server->wl_display);
} else if (!strcmp(keybind->action, "cycle")) {
server->cycle_view = next_toplevel(view_front_toplevel(server));
} else if (!strcmp(keybind->action, "exec")) {
if (!fork())
execl("/bin/dmenu_run", "/bin/dmenu_run", (void *)NULL);
} else if (!strcmp(keybind->action, "debug-views")) {
dbg_show_views(server);
} else {
fprintf(stderr, "warn: action (%s) not supported\n",
keybind->action);
}
}
static bool handle_keybinding(struct server *server, uint32_t modifiers, static bool handle_keybinding(struct server *server, uint32_t modifiers,
xkb_keysym_t sym) xkb_keysym_t sym)
{ {

View file

@ -1,5 +1,4 @@
#include "labwc.h" #include "labwc.h"
#include "rcxml.h"
#include "theme.h" #include "theme.h"
struct server server = { 0 }; struct server server = { 0 };

View file

@ -1,4 +1,5 @@
labwc_sources = files( labwc_sources = files(
'action.c',
'cursor.c', 'cursor.c',
'deco.c', 'deco.c',
'interactive.c', 'interactive.c',

View file

@ -1,5 +1,4 @@
#include "labwc.h" #include "labwc.h"
#include "rcxml.h"
#include "theme.h" #include "theme.h"
struct draw_data { struct draw_data {

View file

@ -1,5 +1,4 @@
#include "labwc.h" #include "labwc.h"
#include "rcxml.h"
#include <wlr/types/wlr_export_dmabuf_v1.h> #include <wlr/types/wlr_export_dmabuf_v1.h>
#include <wlr/types/wlr_screencopy_v1.h> #include <wlr/types/wlr_screencopy_v1.h>

View file

@ -1,5 +1,4 @@
#include "labwc.h" #include "labwc.h"
#include "rcxml.h"
static bool is_toplevel(struct view *view) static bool is_toplevel(struct view *view)
{ {

View file

@ -1,5 +1,4 @@
#include "labwc.h" #include "labwc.h"
#include "rcxml.h"
struct xdg_deco { struct xdg_deco {
struct wlr_xdg_toplevel_decoration_v1 *wlr_decoration; struct wlr_xdg_toplevel_decoration_v1 *wlr_decoration;