feat: allows fullscreen support

This commit is contained in:
DanyLE
2024-04-02 23:00:11 +02:00
parent 68b1890d61
commit 1ae9cd000a
4 changed files with 65 additions and 93 deletions

View File

@ -52,17 +52,20 @@ void diyac_reset_cursor_mode(struct diyac_server *server)
static void process_cursor_move(struct diyac_server *server, uint32_t time)
{
/* Move the grabbed toplevel to the new position. */
struct diyac_view *toplevel = server->grabbed_view;
if (toplevel->state != DIYAC_VIEW_NORMAL)
/* Move the grabbed toplevel to the new position. */
if (toplevel->state == DIYAC_VIEW_FULL_SCREEN)
{
// cancel maximize or fullscreen state
return;
}
if (toplevel->state == DIYAC_VIEW_MAXIMIZE)
{
// cancel maximize state
wlr_xdg_toplevel_set_maximized(toplevel->xdg_toplevel, false);
wlr_xdg_toplevel_set_fullscreen(toplevel->xdg_toplevel, false);
// move the windows to cursor
server->grab_x = toplevel->original.width * server->grab_x / toplevel->output->usable_area.width;
}
toplevel->state = DIYAC_VIEW_NORMAL;
toplevel->requested = DIYAC_VIEW_NORMAL;
toplevel->original.y = server->seat.cursor->y - server->grab_y;
toplevel->original.x = server->seat.cursor->x - server->grab_x;
@ -135,7 +138,7 @@ static void process_cursor_resize(struct diyac_server *server, uint32_t time)
int new_height = new_bottom - new_top;
toplevel->original.width = new_width;
toplevel->original.height = new_height;
toplevel->state = DIYAC_VIEW_NORMAL;
toplevel->requested = DIYAC_VIEW_NORMAL;
diyac_view_update_geometry(toplevel, false);
/*
wlr_scene_node_set_position(&toplevel->scene_tree->node,