mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-03-21 05:33:45 -04:00
render: render_resize_*() returns a boolean indicating whether size changed.
This commit is contained in:
parent
a4d77608b9
commit
595b32ddf9
2 changed files with 12 additions and 9 deletions
16
render.c
16
render.c
|
|
@ -1114,11 +1114,11 @@ render_search_box(struct terminal *term)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Move to terminal.c? */
|
/* Move to terminal.c? */
|
||||||
static void
|
static bool
|
||||||
maybe_resize(struct terminal *term, int width, int height, bool force)
|
maybe_resize(struct terminal *term, int width, int height, bool force)
|
||||||
{
|
{
|
||||||
if (!force && (width == 0 || height == 0))
|
if (!force && (width == 0 || height == 0))
|
||||||
return;
|
return false;
|
||||||
|
|
||||||
int scale = -1;
|
int scale = -1;
|
||||||
tll_foreach(term->window->on_outputs, it) {
|
tll_foreach(term->window->on_outputs, it) {
|
||||||
|
|
@ -1136,7 +1136,7 @@ maybe_resize(struct terminal *term, int width, int height, bool force)
|
||||||
|
|
||||||
if (!force && width == 0 && height == 0) {
|
if (!force && width == 0 && height == 0) {
|
||||||
/* Assume we're not fully up and running yet */
|
/* Assume we're not fully up and running yet */
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Scaled CSD border + title bar sizes */
|
/* Scaled CSD border + title bar sizes */
|
||||||
|
|
@ -1161,7 +1161,7 @@ maybe_resize(struct terminal *term, int width, int height, bool force)
|
||||||
height = max(height, min_height);
|
height = max(height, min_height);
|
||||||
|
|
||||||
if (!force && width == term->width && height == term->height && scale == term->scale)
|
if (!force && width == term->width && height == term->height && scale == term->scale)
|
||||||
return;
|
return false;
|
||||||
|
|
||||||
selection_cancel(term);
|
selection_cancel(term);
|
||||||
|
|
||||||
|
|
@ -1261,22 +1261,24 @@ maybe_resize(struct terminal *term, int width, int height, bool force)
|
||||||
term->render.last_cursor.cell = NULL;
|
term->render.last_cursor.cell = NULL;
|
||||||
|
|
||||||
damage_view:
|
damage_view:
|
||||||
xdg_toplevel_set_min_size(term->window->xdg_toplevel, min_width / scale, min_height / scale);
|
xdg_toplevel_set_min_size(
|
||||||
|
term->window->xdg_toplevel, min_width / scale, min_height / scale);
|
||||||
tll_free(term->normal.scroll_damage);
|
tll_free(term->normal.scroll_damage);
|
||||||
tll_free(term->alt.scroll_damage);
|
tll_free(term->alt.scroll_damage);
|
||||||
render_csd(term);
|
render_csd(term);
|
||||||
term->render.last_buf = NULL;
|
term->render.last_buf = NULL;
|
||||||
term_damage_view(term);
|
term_damage_view(term);
|
||||||
render_refresh(term);
|
render_refresh(term);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
bool
|
||||||
render_resize(struct terminal *term, int width, int height)
|
render_resize(struct terminal *term, int width, int height)
|
||||||
{
|
{
|
||||||
return maybe_resize(term, width, height, false);
|
return maybe_resize(term, width, height, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
bool
|
||||||
render_resize_force(struct terminal *term, int width, int height)
|
render_resize_force(struct terminal *term, int width, int height)
|
||||||
{
|
{
|
||||||
return maybe_resize(term, width, height, true);
|
return maybe_resize(term, width, height, true);
|
||||||
|
|
|
||||||
5
render.h
5
render.h
|
|
@ -1,4 +1,5 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
#include "fdm.h"
|
#include "fdm.h"
|
||||||
|
|
@ -8,8 +9,8 @@ struct renderer;
|
||||||
struct renderer *render_init(struct fdm *fdm, struct wayland *wayl);
|
struct renderer *render_init(struct fdm *fdm, struct wayland *wayl);
|
||||||
void render_destroy(struct renderer *renderer);
|
void render_destroy(struct renderer *renderer);
|
||||||
|
|
||||||
void render_resize(struct terminal *term, int width, int height);
|
bool render_resize(struct terminal *term, int width, int height);
|
||||||
void render_resize_force(struct terminal *term, int width, int height);
|
bool render_resize_force(struct terminal *term, int width, int height);
|
||||||
|
|
||||||
void render_set_title(struct terminal *term, const char *title);
|
void render_set_title(struct terminal *term, const char *title);
|
||||||
void render_refresh(struct terminal *term);
|
void render_refresh(struct terminal *term);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue