config: add title window criteria
This commit is contained in:
parent
2b5be7fbd9
commit
6ef7655dbd
14 changed files with 109 additions and 23 deletions
|
|
@ -113,4 +113,6 @@ pub enum WindowCriterionIpc {
|
|||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Clone, Debug, Hash, Eq, PartialEq)]
|
||||
pub enum WindowCriterionStringField {}
|
||||
pub enum WindowCriterionStringField {
|
||||
Title,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@ use {
|
|||
crate::{
|
||||
_private::{
|
||||
ClientCriterionIpc, ClientCriterionStringField, Config, ConfigEntry, ConfigEntryGen,
|
||||
GenericCriterionIpc, PollableId, VERSION, WindowCriterionIpc, WireMode, bincode_ops,
|
||||
GenericCriterionIpc, PollableId, VERSION, WindowCriterionIpc,
|
||||
WindowCriterionStringField, WireMode, bincode_ops,
|
||||
ipc::{
|
||||
ClientMessage, InitMessage, Response, ServerFeature, ServerMessage, WorkspaceSource,
|
||||
},
|
||||
|
|
@ -1609,7 +1610,6 @@ impl ConfigClient {
|
|||
criterion: WindowCriterion,
|
||||
child: bool,
|
||||
) -> (WindowMatcher, bool) {
|
||||
#[expect(unused_macros)]
|
||||
macro_rules! string {
|
||||
($t:expr, $field:ident, $regex:expr) => {
|
||||
WindowCriterionIpc::String {
|
||||
|
|
@ -1653,6 +1653,8 @@ impl ConfigClient {
|
|||
}
|
||||
WindowCriterionIpc::Client(matcher)
|
||||
}
|
||||
WindowCriterion::Title(t) => string!(t, Title, false),
|
||||
WindowCriterion::TitleRegex(t) => string!(t, Title, true),
|
||||
};
|
||||
let res = self.send_with_response(&ClientMessage::CreateWindowMatcher { criterion });
|
||||
get_response!(
|
||||
|
|
|
|||
|
|
@ -236,6 +236,10 @@ pub enum WindowCriterion<'a> {
|
|||
Exactly(usize, &'a [WindowCriterion<'a>]),
|
||||
/// Matches if the window's client matches the client criterion.
|
||||
Client(&'a ClientCriterion<'a>),
|
||||
/// Matches the title of the window verbatim.
|
||||
Title(&'a str),
|
||||
/// Matches the title of the window with a regular expression.
|
||||
TitleRegex(&'a str),
|
||||
}
|
||||
|
||||
impl WindowCriterion<'_> {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue