This commit is contained in:
Samq64 2026-02-24 22:37:04 -05:00 committed by GitHub
commit a4793c25f9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -708,7 +708,7 @@ static Client *termforwin(Client *w);
static void swallow(Client *c, Client *w); static void swallow(Client *c, Client *w);
static void warp_cursor_to_selmon(Monitor *m); static void warp_cursor_to_selmon(Monitor *m);
uint32_t want_restore_fullscreen(Client *target_client); static bool want_restore_fullscreen(Client *target_client);
static void overview_restore(Client *c, const Arg *arg); static void overview_restore(Client *c, const Arg *arg);
static void overview_backup(Client *c); static void overview_backup(Client *c);
static void set_minimized(Client *c); static void set_minimized(Client *c);
@ -1031,11 +1031,7 @@ void clear_fullscreen_and_maximized_state(Monitor *m) {
/*清除全屏标志,还原全屏时清0的border*/ /*清除全屏标志,还原全屏时清0的border*/
void clear_fullscreen_flag(Client *c) { void clear_fullscreen_flag(Client *c) {
if ((c->mon->pertag->ltidxs[get_tags_first_tag_num(c->tags)]->id == if (is_scroller_layout(c->mon) && !c->isfloating) {
SCROLLER ||
c->mon->pertag->ltidxs[get_tags_first_tag_num(c->tags)]->id ==
VERTICAL_SCROLLER) &&
!c->isfloating) {
return; return;
} }
@ -1198,9 +1194,8 @@ void apply_named_scratchpad(Client *target_client) {
if (!target_client->is_in_scratchpad) { if (!target_client->is_in_scratchpad) {
set_minimized(target_client); set_minimized(target_client);
switch_scratchpad_client_state(target_client); }
} else switch_scratchpad_client_state(target_client);
switch_scratchpad_client_state(target_client);
} }
void gpureset(struct wl_listener *listener, void *data) { void gpureset(struct wl_listener *listener, void *data) {
@ -2307,11 +2302,7 @@ static void iter_layer_scene_buffers(struct wlr_scene_buffer *buffer,
wlr_scene_buffer_set_backdrop_blur(buffer, true); wlr_scene_buffer_set_backdrop_blur(buffer, true);
wlr_scene_buffer_set_backdrop_blur_ignore_transparent(buffer, true); wlr_scene_buffer_set_backdrop_blur_ignore_transparent(buffer, true);
if (blur_optimized) { wlr_scene_buffer_set_backdrop_blur_optimized(buffer, blur_optimized);
wlr_scene_buffer_set_backdrop_blur_optimized(buffer, true);
} else {
wlr_scene_buffer_set_backdrop_blur_optimized(buffer, false);
}
} }
void layer_flush_blur_background(LayerSurface *l) { void layer_flush_blur_background(LayerSurface *l) {
@ -3928,11 +3919,7 @@ static void iter_xdg_scene_buffers(struct wlr_scene_buffer *buffer, int32_t sx,
if (blur && c && !c->noblur) { if (blur && c && !c->noblur) {
wlr_scene_buffer_set_backdrop_blur(buffer, true); wlr_scene_buffer_set_backdrop_blur(buffer, true);
wlr_scene_buffer_set_backdrop_blur_ignore_transparent(buffer, false); wlr_scene_buffer_set_backdrop_blur_ignore_transparent(buffer, false);
if (blur_optimized) { wlr_scene_buffer_set_backdrop_blur_optimized(buffer, blur_optimized);
wlr_scene_buffer_set_backdrop_blur_optimized(buffer, true);
} else {
wlr_scene_buffer_set_backdrop_blur_optimized(buffer, false);
}
} else { } else {
wlr_scene_buffer_set_backdrop_blur(buffer, false); wlr_scene_buffer_set_backdrop_blur(buffer, false);
} }
@ -4617,10 +4604,8 @@ void rendermon(struct wl_listener *listener, void *data) {
skip: skip:
// 发送帧完成通知 // 发送帧完成通知
clock_gettime(CLOCK_MONOTONIC, &now); clock_gettime(CLOCK_MONOTONIC, &now);
if (allow_tearing && frame_allow_tearing) { wlr_scene_output_send_frame_done(m->scene_output, &now);
wlr_scene_output_send_frame_done(m->scene_output, &now); if (!allow_tearing || !frame_allow_tearing) {
} else {
wlr_scene_output_send_frame_done(m->scene_output, &now);
wlr_output_state_finish(&pending); wlr_output_state_finish(&pending);
} }
@ -5732,20 +5717,16 @@ void tag_client(const Arg *arg, Client *target_client) {
void overview(Monitor *m) { grid(m); } void overview(Monitor *m) { grid(m); }
// 目标窗口有其他窗口和它同个tag就返回0 // 目标窗口有其他窗口和它同个tag就返回0
uint32_t want_restore_fullscreen(Client *target_client) { bool want_restore_fullscreen(Client *target_client) {
Client *c = NULL; Client *c = NULL;
wl_list_for_each(c, &clients, link) { wl_list_for_each(c, &clients, link) {
if (c && c != target_client && c->tags == target_client->tags && if (c && c != target_client && c->tags == target_client->tags &&
c == selmon->sel && c == selmon->sel && !is_scroller_layout(c->mon)) {
c->mon->pertag->ltidxs[get_tags_first_tag_num(c->tags)]->id != return false;
SCROLLER &&
c->mon->pertag->ltidxs[get_tags_first_tag_num(c->tags)]->id !=
VERTICAL_SCROLLER) {
return 0;
} }
} }
return 1; return true;
} }
// 普通视图切换到overview时保存窗口的旧状态 // 普通视图切换到overview时保存窗口的旧状态
@ -6196,16 +6177,14 @@ toggleseltags:
void view(const Arg *arg, bool want_animation) { void view(const Arg *arg, bool want_animation) {
Monitor *m = NULL; Monitor *m = NULL;
view_in_mon(arg, want_animation, selmon, true);
if (arg->i) { if (arg->i) {
view_in_mon(arg, want_animation, selmon, true);
wl_list_for_each(m, &mons, link) { wl_list_for_each(m, &mons, link) {
if (!m->wlr_output->enabled || m == selmon) if (!m->wlr_output->enabled || m == selmon)
continue; continue;
// only arrange, not change monitor focus // only arrange, not change monitor focus
view_in_mon(arg, want_animation, m, false); view_in_mon(arg, want_animation, m, false);
} }
} else {
view_in_mon(arg, want_animation, selmon, true);
} }
} }