feat: support fakefullscreen dispatch
This commit is contained in:
@@ -193,6 +193,7 @@ bind=ALT,Tab,toggleoverview,
|
|||||||
bind=ALT,backslash,togglefloating,
|
bind=ALT,backslash,togglefloating,
|
||||||
bind=ALT,a,togglemaxmizescreen,
|
bind=ALT,a,togglemaxmizescreen,
|
||||||
bind=ALT,f,togglefullscreen,
|
bind=ALT,f,togglefullscreen,
|
||||||
|
bind=ALT+SHIFT,f,togglefakefullscreen,
|
||||||
bind=SUPER,i,minized,
|
bind=SUPER,i,minized,
|
||||||
bind=SUPER+SHIFT,I,restore_minized
|
bind=SUPER+SHIFT,I,restore_minized
|
||||||
bind=ALT,z,toggle_scratchpad
|
bind=ALT,z,toggle_scratchpad
|
||||||
|
|||||||
@@ -456,6 +456,8 @@ FuncType parse_func_name(char *func_name, Arg *arg, char *arg_value) {
|
|||||||
func = togglefloating;
|
func = togglefloating;
|
||||||
} else if (strcmp(func_name, "togglefullscreen") == 0) {
|
} else if (strcmp(func_name, "togglefullscreen") == 0) {
|
||||||
func = togglefullscreen;
|
func = togglefullscreen;
|
||||||
|
} else if (strcmp(func_name, "togglefakefullscreen") == 0) {
|
||||||
|
func = togglefakefullscreen;
|
||||||
} else if (strcmp(func_name, "minized") == 0) {
|
} else if (strcmp(func_name, "minized") == 0) {
|
||||||
func = minized;
|
func = minized;
|
||||||
} else if (strcmp(func_name, "restore_minized") == 0) {
|
} else if (strcmp(func_name, "restore_minized") == 0) {
|
||||||
|
|||||||
@@ -49,3 +49,4 @@ void incohgaps(const Arg *arg);
|
|||||||
void incovgaps(const Arg *arg);
|
void incovgaps(const Arg *arg);
|
||||||
void incigaps(const Arg *arg);
|
void incigaps(const Arg *arg);
|
||||||
void defaultgaps(const Arg *arg);
|
void defaultgaps(const Arg *arg);
|
||||||
|
void togglefakefullscreen(const Arg *arg);
|
||||||
|
|||||||
22
src/maomao.c
22
src/maomao.c
@@ -231,7 +231,7 @@ struct Client {
|
|||||||
bool dirty;
|
bool dirty;
|
||||||
uint32_t configure_serial;
|
uint32_t configure_serial;
|
||||||
struct wlr_foreign_toplevel_handle_v1 *foreign_toplevel;
|
struct wlr_foreign_toplevel_handle_v1 *foreign_toplevel;
|
||||||
int isfloating, isurgent, isfullscreen, need_float_size_reduce, isminied;
|
int isfloating, isurgent, isfullscreen, isfakefullscreen, need_float_size_reduce, isminied;
|
||||||
int ismaxmizescreen;
|
int ismaxmizescreen;
|
||||||
int overview_backup_bw;
|
int overview_backup_bw;
|
||||||
int fullscreen_backup_x, fullscreen_backup_y, fullscreen_backup_w,
|
int fullscreen_backup_x, fullscreen_backup_y, fullscreen_backup_w,
|
||||||
@@ -539,6 +539,7 @@ static void resize(Client *c, struct wlr_box geo, int interact);
|
|||||||
static void run(char *startup_cmd);
|
static void run(char *startup_cmd);
|
||||||
static void setcursor(struct wl_listener *listener, void *data);
|
static void setcursor(struct wl_listener *listener, void *data);
|
||||||
static void setfloating(Client *c, int floating);
|
static void setfloating(Client *c, int floating);
|
||||||
|
static void setfakefullscreen(Client *c, int fakefullscreen);
|
||||||
static void setfullscreen(Client *c, int fullscreen);
|
static void setfullscreen(Client *c, int fullscreen);
|
||||||
static void setmaxmizescreen(Client *c, int maxmizescreen);
|
static void setmaxmizescreen(Client *c, int maxmizescreen);
|
||||||
static void reset_maxmizescreen_size(Client *c);
|
static void reset_maxmizescreen_size(Client *c);
|
||||||
@@ -5069,6 +5070,17 @@ void setmaxmizescreen(Client *c, int maxmizescreen) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
setfakefullscreen(Client *c, int fakefullscreen)
|
||||||
|
{
|
||||||
|
c->isfakefullscreen = fakefullscreen;
|
||||||
|
if (!c->mon)
|
||||||
|
return;
|
||||||
|
if (c->isfullscreen)
|
||||||
|
setfullscreen(c, 0);
|
||||||
|
client_set_fullscreen(c, fakefullscreen);
|
||||||
|
}
|
||||||
|
|
||||||
void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带全屏
|
void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带全屏
|
||||||
{
|
{
|
||||||
c->isfullscreen = fullscreen;
|
c->isfullscreen = fullscreen;
|
||||||
@@ -6336,6 +6348,14 @@ void togglefloating(const Arg *arg) {
|
|||||||
setborder_color(sel);
|
setborder_color(sel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
togglefakefullscreen(const Arg *arg)
|
||||||
|
{
|
||||||
|
Client *sel = focustop(selmon);
|
||||||
|
if (sel)
|
||||||
|
setfakefullscreen(sel, !sel->isfakefullscreen);
|
||||||
|
}
|
||||||
|
|
||||||
void togglefullscreen(const Arg *arg) {
|
void togglefullscreen(const Arg *arg) {
|
||||||
Client *sel = focustop(selmon);
|
Client *sel = focustop(selmon);
|
||||||
if (!sel)
|
if (!sel)
|
||||||
|
|||||||
Reference in New Issue
Block a user