mirror of
https://github.com/swaywm/sway.git
synced 2025-11-12 13:29:56 -05:00
Create sway_workspace struct.
This commit is contained in:
parent
bfd5834f4c
commit
c685ef081f
8 changed files with 28 additions and 26 deletions
|
|
@ -197,6 +197,7 @@ static struct sway_container *container_workspace_destroy(
|
|||
}
|
||||
}
|
||||
|
||||
free(workspace->sway_workspace);
|
||||
_container_destroy(workspace);
|
||||
|
||||
output_damage_whole(output->sway_output);
|
||||
|
|
|
|||
|
|
@ -572,7 +572,7 @@ void arrange_windows(struct sway_container *container,
|
|||
return;
|
||||
case C_WORKSPACE:
|
||||
{
|
||||
if (container->fullscreen) {
|
||||
if (container->sway_workspace->fullscreen) {
|
||||
return;
|
||||
}
|
||||
struct sway_container *output =
|
||||
|
|
@ -847,22 +847,6 @@ struct sway_container *container_get_in_direction(
|
|||
}
|
||||
}
|
||||
|
||||
// TODO WLR fullscreen
|
||||
/*
|
||||
if (container->type == C_VIEW && swayc_is_fullscreen(container)) {
|
||||
wlr_log(L_DEBUG, "Moving from fullscreen view, skipping to output");
|
||||
container = container_parent(container, C_OUTPUT);
|
||||
get_layout_center_position(container, &abs_pos);
|
||||
struct sway_container *output =
|
||||
swayc_adjacent_output(container, dir, &abs_pos, true);
|
||||
return get_swayc_in_output_direction(output, dir);
|
||||
}
|
||||
if (container->type == C_WORKSPACE && container->fullscreen) {
|
||||
sway_log(L_DEBUG, "Moving to fullscreen view");
|
||||
return container->fullscreen;
|
||||
}
|
||||
*/
|
||||
|
||||
struct sway_container *wrap_candidate = NULL;
|
||||
while (true) {
|
||||
bool can_move = false;
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
#include "sway/tree/container.h"
|
||||
#include "sway/tree/layout.h"
|
||||
#include "sway/tree/view.h"
|
||||
#include "sway/tree/workspace.h"
|
||||
|
||||
void view_init(struct sway_view *view, enum sway_view_type type,
|
||||
const struct sway_view_impl *impl) {
|
||||
|
|
@ -90,10 +91,10 @@ void view_set_fullscreen(struct sway_view *view, bool fullscreen) {
|
|||
view->is_fullscreen = fullscreen;
|
||||
|
||||
if (fullscreen) {
|
||||
workspace->fullscreen = view;
|
||||
workspace->sway_workspace->fullscreen = view;
|
||||
view_configure(view, 0, 0, output->wlr_output->width, output->wlr_output->height);
|
||||
} else {
|
||||
workspace->fullscreen = NULL;
|
||||
workspace->sway_workspace->fullscreen = NULL;
|
||||
arrange_windows(workspace, -1, -1);
|
||||
}
|
||||
|
||||
|
|
@ -105,7 +106,7 @@ void view_set_fullscreen(struct sway_view *view, bool fullscreen) {
|
|||
void view_close(struct sway_view *view) {
|
||||
if (view->is_fullscreen) {
|
||||
struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE);
|
||||
ws->fullscreen = NULL;
|
||||
ws->sway_workspace->fullscreen = NULL;
|
||||
}
|
||||
|
||||
if (view->impl->close) {
|
||||
|
|
|
|||
|
|
@ -59,6 +59,13 @@ struct sway_container *workspace_create(struct sway_container *output,
|
|||
workspace->layout = container_get_default_layout(output);
|
||||
workspace->workspace_layout = workspace->layout;
|
||||
|
||||
struct sway_workspace *swayws = calloc(1, sizeof(struct sway_workspace));
|
||||
if (!swayws) {
|
||||
return NULL;
|
||||
}
|
||||
swayws->swayc = workspace;
|
||||
workspace->sway_workspace = swayws;
|
||||
|
||||
container_add_child(output, workspace);
|
||||
container_sort_workspaces(output);
|
||||
container_create_notify(workspace);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue