mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2025-10-29 05:40:21 -04:00
feat: support fakefullscreen dispatch
This commit is contained in:
parent
e8e5d768c5
commit
719c50de65
4 changed files with 25 additions and 1 deletions
|
|
@ -193,6 +193,7 @@ bind=ALT,Tab,toggleoverview,
|
|||
bind=ALT,backslash,togglefloating,
|
||||
bind=ALT,a,togglemaxmizescreen,
|
||||
bind=ALT,f,togglefullscreen,
|
||||
bind=ALT+SHIFT,f,togglefakefullscreen,
|
||||
bind=SUPER,i,minized,
|
||||
bind=SUPER+SHIFT,I,restore_minized
|
||||
bind=ALT,z,toggle_scratchpad
|
||||
|
|
|
|||
|
|
@ -456,6 +456,8 @@ FuncType parse_func_name(char *func_name, Arg *arg, char *arg_value) {
|
|||
func = togglefloating;
|
||||
} else if (strcmp(func_name, "togglefullscreen") == 0) {
|
||||
func = togglefullscreen;
|
||||
} else if (strcmp(func_name, "togglefakefullscreen") == 0) {
|
||||
func = togglefakefullscreen;
|
||||
} else if (strcmp(func_name, "minized") == 0) {
|
||||
func = minized;
|
||||
} else if (strcmp(func_name, "restore_minized") == 0) {
|
||||
|
|
|
|||
|
|
@ -49,3 +49,4 @@ void incohgaps(const Arg *arg);
|
|||
void incovgaps(const Arg *arg);
|
||||
void incigaps(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;
|
||||
uint32_t configure_serial;
|
||||
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 overview_backup_bw;
|
||||
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 setcursor(struct wl_listener *listener, void *data);
|
||||
static void setfloating(Client *c, int floating);
|
||||
static void setfakefullscreen(Client *c, int fakefullscreen);
|
||||
static void setfullscreen(Client *c, int fullscreen);
|
||||
static void setmaxmizescreen(Client *c, int maxmizescreen);
|
||||
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) // 用自定义全屏代理自带全屏
|
||||
{
|
||||
c->isfullscreen = fullscreen;
|
||||
|
|
@ -6336,6 +6348,14 @@ void togglefloating(const Arg *arg) {
|
|||
setborder_color(sel);
|
||||
}
|
||||
|
||||
void
|
||||
togglefakefullscreen(const Arg *arg)
|
||||
{
|
||||
Client *sel = focustop(selmon);
|
||||
if (sel)
|
||||
setfakefullscreen(sel, !sel->isfakefullscreen);
|
||||
}
|
||||
|
||||
void togglefullscreen(const Arg *arg) {
|
||||
Client *sel = focustop(selmon);
|
||||
if (!sel)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue