From 1783b491361dc96ee5c947550cbe523d3ed26b1c Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 25 Mar 2017 22:59:30 +0300 Subject: [PATCH] Fullscreen on/off actions ToggleFullscreen is not enough when, for example, you want to move a window regardless of its fullscreen status. --- openbox/actions/fullscreen.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/openbox/actions/fullscreen.c b/openbox/actions/fullscreen.c index e1fdf232a..8ad766a55 100644 --- a/openbox/actions/fullscreen.c +++ b/openbox/actions/fullscreen.c @@ -6,6 +6,8 @@ static gboolean run_func_toggle(ObActionsData *data, gpointer options); void action_fullscreen_startup(void) { actions_register("ToggleFullscreen", NULL, NULL, run_func_toggle); + actions_register("Fullscreen", NULL, NULL, run_func_on); + actions_register("Unfullscreen", NULL, NULL, run_func_off); } /* Always return FALSE because its not interactive */ @@ -18,3 +20,25 @@ static gboolean run_func_toggle(ObActionsData *data, gpointer options) } return FALSE; } + +/* Always return FALSE because its not interactive */ +static gboolean run_func_on(ObActionsData *data, gpointer options) +{ + if (data->client) { + actions_client_move(data, TRUE); + client_fullscreen(data->client, TRUE); + actions_client_move(data, FALSE); + } + return FALSE; +} + +/* Always return FALSE because its not interactive */ +static gboolean run_func_off(ObActionsData *data, gpointer options) +{ + if (data->client) { + actions_client_move(data, TRUE); + client_fullscreen(data->client, FALSE); + actions_client_move(data, FALSE); + } + return FALSE; +}