From 102294d4a5b68d0b3127fcfa434655f6484d46a7 Mon Sep 17 00:00:00 2001 From: Jiri Kalvoda <jirikalvoda@kam.mff.cuni.cz> Date: Fri, 12 Aug 2022 18:59:14 +0200 Subject: [PATCH] Add i3bar click event. --- Program.cs | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/Program.cs b/Program.cs index 457b63d..9a9c897 100644 --- a/Program.cs +++ b/Program.cs @@ -124,7 +124,9 @@ enum MouseButton enum Modifiers { Shift=1, - Ctrl=2 + Control=2, + Super=4, + Alt=8 } record ClickEvent( @@ -491,10 +493,24 @@ class StatusBarI3: RootStatusBar if(jsonButton == 2) button = MouseButton.Middle; else if(jsonButton == 3) button = MouseButton.Left; else break; + Modifiers mod = 0; + foreach(var i in json["modifiers"].AsArray()) + { + var s = i.AsValue().GetValue<string>(); + if(s=="Shift") mod |= Modifiers.Shift; + if(s=="Control") mod |= Modifiers.Control; + if(s=="Mod4") mod |= Modifiers.Super; + if(s=="Mod1") mod |= Modifiers.Alt; + } + Console.Error.WriteLine(mod); + Console.Error.Flush(); var ev = new ClickEvent( Relative: new Coordinates(json["relative_x"].AsValue().GetValue<int>(), json["relative_y"].AsValue().GetValue<int>()), + Absolute: new Coordinates(json["x"].AsValue().GetValue<int>(), json["y"].AsValue().GetValue<int>()), + Output: new Coordinates(json["output_x"].AsValue().GetValue<int>(), json["output_x"].AsValue().GetValue<int>()), Size: new Coordinates(json["height"].AsValue().GetValue<int>(), json["width"].AsValue().GetValue<int>()), - Button: button + Button: button, + Modifiers: mod ); string name = json["name"].AsValue().GetValue<string>(); int outputId = int.Parse(name.Split(".")[0]); -- GitLab