Merge branch 'allcontext' into magnifier

This commit is contained in:
Simon Long 2024-05-03 12:10:25 +01:00
commit 22914f9142
5 changed files with 11 additions and 1 deletions

View file

@ -559,6 +559,7 @@ extending outward from the snapped edge.
through to the application.
- Desktop: The desktop background, where no windows are present.
- Root: A synonym for Desktop (for compatibility).
- All: Anywhere on the screen.
Supported mouse *buttons* are:
- Left

View file

@ -45,6 +45,7 @@ enum ssd_part_type {
LAB_SSD_LAYER_SURFACE,
LAB_SSD_LAYER_SUBSURFACE,
LAB_SSD_UNMANAGED,
LAB_SSD_ALL,
LAB_SSD_END_MARKER
};

View file

@ -142,6 +142,8 @@ context_from_str(const char *str)
return LAB_SSD_ROOT;
} else if (!strcasecmp(str, "Root")) {
return LAB_SSD_ROOT;
} else if (!strcasecmp(str, "All")) {
return LAB_SSD_ALL;
}
wlr_log(WLR_ERROR, "unknown mouse context (%s)", str);
return LAB_SSD_NONE;

View file

@ -823,12 +823,15 @@ handle_release_mousebinding(struct server *server,
*/
consumed_by_frame_context |=
mousebind->context == LAB_SSD_FRAME;
consumed_by_frame_context |=
mousebind->context == LAB_SSD_ALL;
}
continue;
default:
continue;
}
consumed_by_frame_context |= mousebind->context == LAB_SSD_FRAME;
consumed_by_frame_context |= mousebind->context == LAB_SSD_ALL;
actions_run(ctx->view, server, &mousebind->actions,
/*resize_edges*/ 0);
}
@ -909,6 +912,8 @@ handle_press_mousebinding(struct server *server, struct cursor_context *ctx,
*/
consumed_by_frame_context |=
mousebind->context == LAB_SSD_FRAME;
consumed_by_frame_context |=
mousebind->context == LAB_SSD_ALL;
mousebind->pressed_in_context = true;
}
continue;
@ -923,6 +928,7 @@ handle_press_mousebinding(struct server *server, struct cursor_context *ctx,
continue;
}
consumed_by_frame_context |= mousebind->context == LAB_SSD_FRAME;
consumed_by_frame_context |= mousebind->context == LAB_SSD_ALL;
actions_run(ctx->view, server, &mousebind->actions, resize_edges);
}
}

View file

@ -309,7 +309,7 @@ ssd_destroy(struct ssd *ssd)
bool
ssd_part_contains(enum ssd_part_type whole, enum ssd_part_type candidate)
{
if (whole == candidate) {
if (whole == candidate || whole == LAB_SSD_ALL) {
return true;
}
if (whole == LAB_SSD_PART_TITLEBAR) {