"\t Shortcut to scroll page up\n"
"\t --grab-page-down <grab> [<Shift>Next]\n"
"\t Shortcut to scroll page down\n"
+ "\t --grab-fullscreen <grab> [F11]\n"
+ "\t Shortcut to toggle fullscreen mode\n"
+ "\n"
"Font Options:\n"
"\t --font-engine <engine> [pango]\n"
"\t Font engine\n"
.keysym = XKB_KEY_Next,
};
+static struct conf_grab def_grab_fullscreen = {
+ .mods = 0,
+ .keysym = XKB_KEY_F11,
+};
+
struct conf_option options[] = {
CONF_OPTION_BOOL('h', "help", aftercheck_help, &wlt_conf.help, false),
CONF_OPTION_BOOL('v', "verbose", NULL, &wlt_conf.verbose, false),
CONF_OPTION_GRAB(0, "grab-scroll-down", NULL, &wlt_conf.grab_scroll_down, &def_grab_scroll_down),
CONF_OPTION_GRAB(0, "grab-page-up", NULL, &wlt_conf.grab_page_up, &def_grab_page_up),
CONF_OPTION_GRAB(0, "grab-page-down", NULL, &wlt_conf.grab_page_down, &def_grab_page_down),
+ CONF_OPTION_GRAB(0, "grab-fullscreen", NULL, &wlt_conf.grab_fullscreen, &def_grab_fullscreen),
CONF_OPTION_STRING(0, "font-engine", NULL, &wlt_conf.font_engine, "pango"),
CONF_OPTION_UINT(0, "font-size", NULL, &wlt_conf.font_size, 12),
#include <string.h>
#include <wayland-client.h>
#include "log.h"
+#include "shl_misc.h"
+#include "wlt_main.h"
#include "wlt_theme.h"
#include "wlt_toolkit.h"
}
}
+static bool widget_key(struct wlt_widget *widget, unsigned int mask,
+ uint32_t sym, uint32_t state, bool handled, void *data)
+{
+ struct wlt_theme *theme = data;
+
+ if (handled || state != WL_KEYBOARD_KEY_STATE_PRESSED)
+ return false;
+
+ if (SHL_HAS_BITS(mask, wlt_conf.grab_fullscreen->mods) &&
+ sym == wlt_conf.grab_fullscreen->keysym) {
+ wlt_window_toggle_fullscreen(theme->wnd);
+ return true;
+ }
+
+ return false;
+}
+
+
static void widget_destroy(struct wlt_widget *widget, void *data)
{
struct wlt_theme *theme = data;
wlt_widget_set_pointer_cb(theme->widget, widget_pointer_enter,
widget_pointer_leave, widget_pointer_motion,
widget_pointer_button);
+ wlt_widget_set_keyboard_cb(theme->widget, widget_key);
*out = theme;
return 0;