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