Improve config dependant logic
This commit is contained in:
parent
dd5f11cb9a
commit
fa3e7fca3c
3 changed files with 25 additions and 18 deletions
|
@ -336,12 +336,6 @@ static void handle_request_maximize(struct wl_listener *listener, void *data) {
|
||||||
static void handle_request_minimize(struct wl_listener *listener, void *data) {
|
static void handle_request_minimize(struct wl_listener *listener, void *data) {
|
||||||
struct sway_xdg_shell_view *xdg_shell_view =
|
struct sway_xdg_shell_view *xdg_shell_view =
|
||||||
wl_container_of(listener, xdg_shell_view, request_minimize);
|
wl_container_of(listener, xdg_shell_view, request_minimize);
|
||||||
if (!config->scratchpad_minimize) {
|
|
||||||
struct wlr_xdg_toplevel *toplevel = xdg_shell_view->view.wlr_xdg_toplevel;
|
|
||||||
wlr_xdg_surface_schedule_configure(toplevel->base);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct sway_container *container = xdg_shell_view->view.container;
|
struct sway_container *container = xdg_shell_view->view.container;
|
||||||
if (!container->pending.workspace) {
|
if (!container->pending.workspace) {
|
||||||
while (container->pending.parent) {
|
while (container->pending.parent) {
|
||||||
|
@ -430,7 +424,9 @@ static void handle_unmap(struct wl_listener *listener, void *data) {
|
||||||
wl_list_remove(&xdg_shell_view->commit.link);
|
wl_list_remove(&xdg_shell_view->commit.link);
|
||||||
wl_list_remove(&xdg_shell_view->new_popup.link);
|
wl_list_remove(&xdg_shell_view->new_popup.link);
|
||||||
wl_list_remove(&xdg_shell_view->request_maximize.link);
|
wl_list_remove(&xdg_shell_view->request_maximize.link);
|
||||||
|
if (xdg_shell_view->request_minimize.notify) {
|
||||||
wl_list_remove(&xdg_shell_view->request_minimize.link);
|
wl_list_remove(&xdg_shell_view->request_minimize.link);
|
||||||
|
}
|
||||||
wl_list_remove(&xdg_shell_view->request_fullscreen.link);
|
wl_list_remove(&xdg_shell_view->request_fullscreen.link);
|
||||||
wl_list_remove(&xdg_shell_view->request_move.link);
|
wl_list_remove(&xdg_shell_view->request_move.link);
|
||||||
wl_list_remove(&xdg_shell_view->request_resize.link);
|
wl_list_remove(&xdg_shell_view->request_resize.link);
|
||||||
|
@ -483,9 +479,11 @@ static void handle_map(struct wl_listener *listener, void *data) {
|
||||||
wl_signal_add(&toplevel->events.request_maximize,
|
wl_signal_add(&toplevel->events.request_maximize,
|
||||||
&xdg_shell_view->request_maximize);
|
&xdg_shell_view->request_maximize);
|
||||||
|
|
||||||
|
if (config->scratchpad_minimize) {
|
||||||
xdg_shell_view->request_minimize.notify = handle_request_minimize;
|
xdg_shell_view->request_minimize.notify = handle_request_minimize;
|
||||||
wl_signal_add(&toplevel->events.request_minimize,
|
wl_signal_add(&toplevel->events.request_minimize,
|
||||||
&xdg_shell_view->request_minimize);
|
&xdg_shell_view->request_minimize);
|
||||||
|
}
|
||||||
|
|
||||||
xdg_shell_view->request_fullscreen.notify = handle_request_fullscreen;
|
xdg_shell_view->request_fullscreen.notify = handle_request_fullscreen;
|
||||||
wl_signal_add(&toplevel->events.request_fullscreen,
|
wl_signal_add(&toplevel->events.request_fullscreen,
|
||||||
|
|
|
@ -108,7 +108,9 @@ void root_scratchpad_add_container(struct sway_container *con, struct sway_works
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set minimize state to minimized
|
// Set minimize state to minimized
|
||||||
|
if (config->scratchpad_minimize) {
|
||||||
root_scratchpad_set_minimize(con, true);
|
root_scratchpad_set_minimize(con, true);
|
||||||
|
}
|
||||||
|
|
||||||
ipc_event_window(con, "move");
|
ipc_event_window(con, "move");
|
||||||
}
|
}
|
||||||
|
@ -156,7 +158,9 @@ void root_scratchpad_show(struct sway_container *con) {
|
||||||
workspace_add_floating(new_ws, con);
|
workspace_add_floating(new_ws, con);
|
||||||
|
|
||||||
// Set minimize state to normalized
|
// Set minimize state to normalized
|
||||||
|
if (config->scratchpad_minimize) {
|
||||||
root_scratchpad_set_minimize(con, false);
|
root_scratchpad_set_minimize(con, false);
|
||||||
|
}
|
||||||
|
|
||||||
// Make sure the container's center point overlaps this workspace
|
// Make sure the container's center point overlaps this workspace
|
||||||
double center_lx = con->pending.x + con->pending.width / 2;
|
double center_lx = con->pending.x + con->pending.width / 2;
|
||||||
|
@ -190,7 +194,9 @@ void root_scratchpad_hide(struct sway_container *con) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set minimize state to minimized
|
// Set minimize state to minimized
|
||||||
|
if (config->scratchpad_minimize) {
|
||||||
root_scratchpad_set_minimize(con, true);
|
root_scratchpad_set_minimize(con, true);
|
||||||
|
}
|
||||||
|
|
||||||
disable_fullscreen(con, NULL);
|
disable_fullscreen(con, NULL);
|
||||||
container_for_each_child(con, disable_fullscreen, NULL);
|
container_for_each_child(con, disable_fullscreen, NULL);
|
||||||
|
|
|
@ -712,8 +712,6 @@ static void handle_foreign_fullscreen_request(
|
||||||
|
|
||||||
static void handle_foreign_minimize(
|
static void handle_foreign_minimize(
|
||||||
struct wl_listener *listener, void *data) {
|
struct wl_listener *listener, void *data) {
|
||||||
if (!config->scratchpad_minimize) return;
|
|
||||||
|
|
||||||
struct sway_view *view = wl_container_of(
|
struct sway_view *view = wl_container_of(
|
||||||
listener, view, foreign_minimize);
|
listener, view, foreign_minimize);
|
||||||
struct wlr_foreign_toplevel_handle_v1_minimized_event *event = data;
|
struct wlr_foreign_toplevel_handle_v1_minimized_event *event = data;
|
||||||
|
@ -748,6 +746,9 @@ static void handle_foreign_destroy(
|
||||||
listener, view, foreign_destroy);
|
listener, view, foreign_destroy);
|
||||||
|
|
||||||
wl_list_remove(&view->foreign_activate_request.link);
|
wl_list_remove(&view->foreign_activate_request.link);
|
||||||
|
if (view->foreign_minimize.notify) {
|
||||||
|
wl_list_remove(&view->foreign_minimize.link);
|
||||||
|
}
|
||||||
wl_list_remove(&view->foreign_fullscreen_request.link);
|
wl_list_remove(&view->foreign_fullscreen_request.link);
|
||||||
wl_list_remove(&view->foreign_close_request.link);
|
wl_list_remove(&view->foreign_close_request.link);
|
||||||
wl_list_remove(&view->foreign_destroy.link);
|
wl_list_remove(&view->foreign_destroy.link);
|
||||||
|
@ -821,9 +822,11 @@ void view_map(struct sway_view *view, struct wlr_surface *wlr_surface,
|
||||||
view->foreign_destroy.notify = handle_foreign_destroy;
|
view->foreign_destroy.notify = handle_foreign_destroy;
|
||||||
wl_signal_add(&view->foreign_toplevel->events.destroy,
|
wl_signal_add(&view->foreign_toplevel->events.destroy,
|
||||||
&view->foreign_destroy);
|
&view->foreign_destroy);
|
||||||
|
if (config->scratchpad_minimize) {
|
||||||
view->foreign_minimize.notify = handle_foreign_minimize;
|
view->foreign_minimize.notify = handle_foreign_minimize;
|
||||||
wl_signal_add(&view->foreign_toplevel->events.request_minimize,
|
wl_signal_add(&view->foreign_toplevel->events.request_minimize,
|
||||||
&view->foreign_minimize);
|
&view->foreign_minimize);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
struct sway_container *container = view->container;
|
struct sway_container *container = view->container;
|
||||||
|
|
Loading…
Add table
Reference in a new issue