From 86128efd2023b3380389dcd72a0c63ae01f23b55 Mon Sep 17 00:00:00 2001
From: Sebastian Pape <pape@vr.rwth-aachen.de>
Date: Mon, 2 Sep 2024 13:57:46 +0200
Subject: [PATCH] Adding right-click support for the widget interaction
 component

---
 Config/DefaultRWTHVRToolkit.ini               |   5 ++-
 Content/BP_RWTHVRGameModeBase.uasset          | Bin 21411 -> 21411 bytes
 ...BP_RWTHVRWidgetInteractionComponent.uasset | Bin 15720 -> 15787 bytes
 .../WidgetInteraction/IA_WidgetClick.uasset   | Bin 1482 -> 0 bytes
 .../IA_WidgetLeftClick.uasset                 | Bin 0 -> 1502 bytes
 .../IA_WidgetRightClick.uasset                | Bin 0 -> 1507 bytes
 Content/Input/Default_IMC/IMC_General.uasset  | Bin 33611 -> 34334 bytes
 .../RWTHVRWidgetInteractionComponent.cpp      |  34 ++++++++++++++----
 .../RWTHVRWidgetInteractionComponent.h        |  14 ++++++--
 9 files changed, 43 insertions(+), 10 deletions(-)
 delete mode 100644 Content/Components/WidgetInteraction/IA_WidgetClick.uasset
 create mode 100644 Content/Components/WidgetInteraction/IA_WidgetLeftClick.uasset
 create mode 100644 Content/Components/WidgetInteraction/IA_WidgetRightClick.uasset

diff --git a/Config/DefaultRWTHVRToolkit.ini b/Config/DefaultRWTHVRToolkit.ini
index 13066ebe..1fa18ba2 100644
--- a/Config/DefaultRWTHVRToolkit.ini
+++ b/Config/DefaultRWTHVRToolkit.ini
@@ -18,4 +18,7 @@
 +FunctionRedirects = (OldName="/Script/RWTHVRToolkit.DirectInteractionComponent.OnBeginGrab",NewName="/Script/RWTHVRToolkit.DirectInteractionComponent.OnBeginInteraction")
 +FunctionRedirects = (OldName="/Script/RWTHVRToolkit.DirectInteractionComponent.OnEndGrab",NewName="/Script/RWTHVRToolkit.DirectInteractionComponent.OnEndInteraction")
 +PropertyRedirects = (OldName="/Script/RWTHVRToolkit.DirectInteractionComponent.PreviousGrabBehavioursInRange",NewName="/Script/RWTHVRToolkit.DirectInteractionComponent.PreviousInteractableComponentsInRange")
-+PropertyRedirects = (OldName="/Script/RWTHVRToolkit.DirectInteractionComponent.CurrentGrabBehavioursInRange",NewName="/Script/RWTHVRToolkit.DirectInteractionComponent.CurrentInteractableComponentsInRange")
\ No newline at end of file
++PropertyRedirects = (OldName="/Script/RWTHVRToolkit.DirectInteractionComponent.CurrentGrabBehavioursInRange",NewName="/Script/RWTHVRToolkit.DirectInteractionComponent.CurrentInteractableComponentsInRange")
++PropertyRedirects=(OldName="/Script/RWTHVRToolkit.RWTHVRWidgetInteractionComponent.WidgetClickInputAction",NewName="/Script/RWTHVRToolkit.RWTHVRWidgetInteractionComponent.WidgetLeftClickInputAction")
++FunctionRedirects=(OldName="/Script/RWTHVRToolkit.RWTHVRWidgetInteractionComponent.OnBeginClick",NewName="/Script/RWTHVRToolkit.RWTHVRWidgetInteractionComponent.OnBeginLeftClick")
++FunctionRedirects=(OldName="/Script/RWTHVRToolkit.RWTHVRWidgetInteractionComponent.OnEndClick",NewName="/Script/RWTHVRToolkit.RWTHVRWidgetInteractionComponent.OnEndLeftClick")
\ No newline at end of file
diff --git a/Content/BP_RWTHVRGameModeBase.uasset b/Content/BP_RWTHVRGameModeBase.uasset
index a073a7f7cc247654e724c9d348d57f9bdc55d9ed..3bfda91bae7068c7283ece3e8bbe26477c25bd90 100644
GIT binary patch
delta 59
zcmZ3yoN@7T#tmJJ0?Yc>UuI&da9bF5UZNp6YQg4NjMKas873S0?wB0ye`xbd-y+7z
RmjbR%Ht^lLd3oR;MgaJj8e;$e

delta 57
zcmZ3yoN@7T#tmJJ0@a&huJ-?^aGE&v$C7lttm~U+F;4TI{3&4T=H-56jFVsb9-3_8
QyLGaF&(+P#1OG4r068@ru>b%7

diff --git a/Content/Components/WidgetInteraction/BP_RWTHVRWidgetInteractionComponent.uasset b/Content/Components/WidgetInteraction/BP_RWTHVRWidgetInteractionComponent.uasset
index 904f5d3363442da0ff916b54041f595a4e023ffc..f6f9bafd520036d434be5501aade85a17a8a6f7a 100644
GIT binary patch
delta 1095
zcmaD+wYqx34<=i^$<a(<lLHu8c+(je7-E?i7#JBC7`9GMWYh_~!o$G8!N9=aBEY~P
z#=yV;;=2e#RMZGFFti9WFf0&eV3@Ey{D;G7DcAK;nzFa=Jt?`>V4Tdqq1<<lR_*#(
zXLF{4Oaz&eKKUMFu%d<t14Fqj0}A;6|NnnmJq89(1_p-e%|T3a*gT{e7#PAcQ_@pQ
zd{Wa&oO3dhvpw?)N=qD*OEUBG820b^T_OWl5|o*qfvM)&&mUg)lleF;_~Aw{)R{`|
zasZ1V^e_lLI@!NDfb$QdxiA9*gQsIWn#Bw`F5GWLkfo3`*GevJnw-piSI`gYB_=5S
zdh$eGaZz6=FAPe*|NsAg)Z~j6!dPYEvC6#r|NnmiPMJikGH?I?{~rjF5kz;v+sTet
z+yzn}3{sEbE|5$JPMJuoGH?F>|DOty5%h=pI}S>Jn!J!lTohgO<NyEvV?pXUVXjS@
z9LOh+#H&Q%Ekxm+<dcWHItgkIi1I}<@goj(0U&jv0U#|53=FAI8svuvkj!KOeh%I=
zsOX3P|Np0eMHBc17=tDk@(VNCPHyFoXY$pXoM0|DnMFW{F?6z_fG|^#!Q_cTa+6a8
zbi~4;x(yi^7*;~ri$Kz9lg|jKFh)=QC?L$_Z8&+NklJJ&K^4aM$$^5xOn;CCHVO(e
zS(t)Vyb)AkOr9(#B+S%eIXS^xZL*J$1mo+;sX`N3I)oV*CVO+qOcoQ?Vx1z)z@WR?
zRoIQ0cm3D@|Ct#W!LVra3^87o$rEMdHmgf--~u!J)poFRf-?Dpzjh3alP_9`Z&ugK
nV`6+Yd76PIqsQb21`>>)H{UVf<J|0NwTo%;Bg^>7%(kfj=>ixe

delta 1298
zcmZ2o{i15Z4<>QF$<a(<lLHu8cvBb{7-E?i7#JBC7!)TbGU^06@GvlNFfcGA@G~%o
zFfcHH_z6M~6*Ghw7#0XIFzgXxVBqwZdHiT+ukUgP-sIGjrfs(xjFb5{l>5%ns$D<p
zY|d1Wi6C=QCf{QWR&)_&U@);|Kmq^%|Nk$p$H3shz`$U!If!Wvn}Rq414DRbN_uLE
zb53S*wr5^JX^CTUNoIZ?!}tDwPpv1%G3ifU!^z17mS#BBky5$&2<IP0aef8{22aO$
zB)tq-U7IW>f9Jj{>I1cv2}-~H|Nno$WI<kGQE#Y72$cT#|Ns98oH8+3Wj_4>|34O|
zOdM93_y7O@_s1#2gi|IEr%Vt|nQ*K!@BaV)pEOyJSDG^#>i5r+d3nX*ArcQ21yLR-
zCLqgrf@C;hp%_1zmtP*M3EpVxV)^BfbO{OwPd>oUGg(G}gEt9eAp-*g$bDfTUGUgT
zhRS^U|NnpDWJ3XE(EzB3CIbtD0F*60Ia45>NnLL;pQ+sB7XmtB!B7cK1_lP01|5UR
z69wfadkE@?g+iqb85kIPpzIoh$%-cGlQ#+~i$y|(KnZyxjBN;(78Ftzi(!D|3y`!8
zGemwTsx&Ckfuwy{Aktq=z`8FADT^gQL>NFyK0|doT2AIORhw)eEW!A8vZwGwmL)<A
z43qbB$xQwwti`%Ph=GB9v!;j}GjG7x|Nog87{T!3<{EKcmU;*WM2doi85zPD0vM7R
zvKi7CQW#1ZTp6+$N*D?mav72ssu=tkk{I$B(iln@7#S3y>Yc#q3K)tRTo?)%@)!yk
z3K;Sk(irj?N*Syfg2CpbF=R26Go&#%Go&$OFk~_0GXz3R+`L43GZzJpkRihnp$u6J
zDGWIbj0|iL-J5IFHnMYq%B=}|`572NDQL5&UJ(=Ho5_0&JU1&Da&u08Zxg;*)#?z_
IWH;MX0D2w&kpKVy

diff --git a/Content/Components/WidgetInteraction/IA_WidgetClick.uasset b/Content/Components/WidgetInteraction/IA_WidgetClick.uasset
deleted file mode 100644
index 470e02e6edeec5b128dd66f602fc5680e3fb9dbe..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1482
zcmX@utTpe)|Ns9Jm>C$jm>3v7GBbbyBLf4&+l&oQUOG+r!hOqdk>hSRJq-p127Oir
z25S%<6dvLc78H`7pOc+gqVJraTacfZnpaY+AD)?#o?7CWSCU$km|T*XpQrEX7!MJ2
z&dE&91{=@Iz`)P|vV(zv;S3W4gCYY1gR!fzxrLLdqp7)tv!S7ZrHQ4BnW2$|laq_N
ziL0xLBUmFyF%ts=Lk=?o0}E8M4v4|Pz+l1x!7eNe40YG|jV*qE^jssq!-oBICV#Zm
zik}<@zPe40oH1u=q5fBp-5_&74q;_rW?*9Y=e?g%h=GAYTRYU%R68g&CpED+Ro7I{
zm;ofuz_3bZ5e|6<D6oosz6`|7XJKHN#tLE~@c;k+|AWE~<kVS6a(oO73`x%UdBvr<
zsh)WSr6mlXFE}xQT;-IXpA%4&Uyxc<Qpq5|vY`v4%P&7KmEjBXQC?XF28Mvd<m|-s
zRG<9h#GK5kL{M1!CFZ6U7bGU9G6<Dac2F2mr#ez9ML=;KoLrPy0E*<I)KLGVtkmQZ
zh991~c4A0!u6Y@WdC93M5I<a9clr$*0|SF|PGWH}LrHnXM1BSa2DEgL)wRij2P6#g
zwj(&HFbGK`@NhCPF!-jHB)TM)Br-f{*fN;|;a7%Y_YP431Rt($uFjHFPym5KoE=0k
zFfjc6|NlQ1lnsh&D3bwQ-Jk#e|AQ<A$zxN;4U&Ljm|jBaK)wfQL00$g|Ns9WF&GB<
z3&aMQuLfd(!V_izl#fh-(kuvr#6al@L?dH#F;L)w<UwwL<Q@iwP$cs~W`QtB4LU|Q
z3tb+W4>AK}7dY;r5s4+fEm#;Bl%dvxv|v%91PTFYYC}m;ddOyj`~!;Du*96w)R4-8
zR0dE;g7QmhVjcs?C4Pw|nPsVv)MtxirgJ_#1?z!j)%6M4rVcJ<K-Qsq8JW+(0CE&e
w1epyI1NjzOt`b+$flB4+-<CG$Ss%FwGE4?!3KA~6XA#J9YQLrdR1BmZ09xlQivR!s

diff --git a/Content/Components/WidgetInteraction/IA_WidgetLeftClick.uasset b/Content/Components/WidgetInteraction/IA_WidgetLeftClick.uasset
new file mode 100644
index 0000000000000000000000000000000000000000..c3e97377bcc821f4ea99df5a92b44594c710564f
GIT binary patch
literal 1502
zcmX@utTpe)|Ns9Jm>C$jm>3v7GBbbyBLf4&+l&oQUOG+r!hOqdk>hSRJq-p124_|V
z273ku2K}J$5Rb5+ko^3d?938<=ltA){Jhk>l4AYv%#`%h63@Jn)S|@XlFa-(eNV@D
zh@ekuT8VQ`W^y*z3SI^Vh8B=L3=9l6m>3uo85kIhU5(8xoJ<`}%`Kb_4Gk<!EM3eD
zjVzp;T+B^eT}>Rp8bOMg7#J8Tm>C#Ypqec}3<d@U2NnnpU}0crH)Xe3lFa2b$)(}d
zYDe9Bt!uXZy->8nX-X-3r{qtEiy*r}=71c+%D~LP#PH91Kcf%>1B149sH>@VP-;$U
zVsWajsh%+dNS=XVmChm@@?eKCFfd5DacY6s^(+hwt5`uS1pfd3|9?>Uft<PyNsf<!
zfg#B`Kd-nnH`Oz*ptOYH^93g+kgJ^X^K$}<@(WUnN-7xyST=Nlbou4yr80bBKFTZ0
zz`ziYn4F!Mp6ZjIoS2hYl?V!Nzr@_s;)2BFR0g4v$_^?-R-LKjE)h_i2PYS07JwqV
zC^ghSDJwO(gyDy$uALZ?oNHc2VqS7;3dA2**PVXD21+$KiN(bXCFK<pg&7zau%w3^
z7w)$_ASsad9l^<lK}aHjhm(PU!8f%e(Iv4Yk>N?hmdP9lKQk1&cZdog_;7V|b(W-p
z0tyuJ>>z@Hf#L7}|Npt5Y*3s-nGERa{`~*{A7m*=9-BIDkOUON^b%4B3IUK7WOe`k
z|NjpXgJF=rKx~ltY9IzE)L<4s`N$L~?Se2!43w@wG%`jP0|hQf9^?i{E@EKFL^2;_
z76^mXpks8i(B+Z&ATvOAf#V+<kvQVqg@u8^9O?v+HXO>7aHTFiWII6q0>y7wVoqsl
zNM%7P11Lm6`6o3oj{)Q&zr>QvvQ%eqO0-2X(>WiWn)Sf4>iW=hj*^y<ZBqvqJ0R=O
zy^hRhU;sG^CW6cciGh3!Eo+G@`9LN0^lwWW^sJ9u1Q{j+G6e~j-LnW}IkjKY04fGj
F4*>k`GtdA4

literal 0
HcmV?d00001

diff --git a/Content/Components/WidgetInteraction/IA_WidgetRightClick.uasset b/Content/Components/WidgetInteraction/IA_WidgetRightClick.uasset
new file mode 100644
index 0000000000000000000000000000000000000000..320bf66bc73fa8714baae5258c680aba5f20261a
GIT binary patch
literal 1507
zcmX@utTpe)|Ns9Jm>C$jm>3v7GBbbyBLf4&+l&oQUOG+r!hOqdk>hSRJq-p11`k#S
z1_uTP2K}J$5Rb5+ko^3d?938<=ltA){Jhk>l4AYv%#`%h63@Jn)S|@XlFa-(eNV@D
zh+t4=dPa$JPG)j8*bZI>28LFUMGOoKx0x6i6d4#8TwTlz%$%KF-3%?vES-%^TwNRu
z9W4x8E!~VvoQ>Tq!5Tq|nHU%ts+k!WSfHA%K@0{424@xs4rXCsxV`=2Wh2v-?n^^N
z9L3CJ@67s=p_jSnvqRe&RUL8P!#_ZFgUkUrgq4Arfr;Ut_kKnp1_lOg?NC=!?V!}0
z)WqUcT~j?{29P`h!z!IcIOM?&V_;zDESz^0#BOF`U|7!zVj=MV|NsAk0ubcX%}8>5
z3=9lO&iQ%8rMan|c?G2<44*GJF@ap=l%JmyP?TSgT2xZWAi%Pr3#7|0KQEQx3-eK4
zSq27%fW+kN#Pn33{N%)(%&J6CfcquprWO|@CZ{q8l~i_6BesMdo$MC@#d>gZQDy-s
zx{Fdn{gbj%lS>$Wc<S1TA<4PsWhCY$r=~zWa&_J5H*BD2$w@3OW+*AIm<TclTZ*Wa
zT-wCLz`y|3=Lk+Y3_=nKJe&*+48Ex)i7tsHi40E~woK+g_?n^Ey+c$0!H27xtFt5(
z6jY$FX9p1s3=Dt&|NqYgWrJcJ%49%S_vior{~$|2^4QdIgCw9Brk9X9P!NE$AglZL
z|NnoG7z~5_1!9BDR|7Gi*$v9Xpg^e?gh3LZlm()ZF}fHia6$4QH#mYA3=9l;Fb^;=
zFo4VgVW<=eg>Dv#BpL@~2FNbth{P4??ko%pHc&T!^x;ycge!sRA=?7-87PLs5_3vZ
zLn;eW89-qQ%0sD%c?=*o`6ZTQmZds_6QeDXna=s}1g!^_Ro90mb(G|cY@0f`=mA-W
z?0=9akogP@AV<MOkl7$HkZNdwOI+y(Dz2x0TiT#!edHp@Fd2|3NVx2tMIg(m{h9_)
HF_3xy@Gdz=

literal 0
HcmV?d00001

diff --git a/Content/Input/Default_IMC/IMC_General.uasset b/Content/Input/Default_IMC/IMC_General.uasset
index 6acdb72a1f1896d89873376ff2a06bdd4788506a..89b1411e4650beb0d2d263244dd0a9e21e5e936b 100644
GIT binary patch
delta 1426
zcmX@z#x$>oX@UXk3QYzE-N_fZ^@SN27+4tm7#J9e7#YBziF@*gCiQwQ1_p*EZUzP>
z1_p+=>I@7b3=9lsRTvo7YJgQSY}H@@<D(i349fZ;e>B#Kxh=7&32A&Ydrn%rgT>OC
z-!6UHm%bP;3zG$z3^E5~4J!jP0~5nP@BNHI3=9m~+M%wd+Cix~sfop@x~6)@3?O+1
zhE?7=i*P7_SkJ&PC+X*25c{hJ1H-FU5DS6-|Ns9V<V8yc28MU7n|&C$IT-CH-)5Jc
zT*@iU?~|HV;+&J2oXt>YD!I!6CN2<^nVtca5PEd79~?fDPjSvM2L+O+V|;jKN_uJu
zLU)b}_ghe~z@?B3sFhsWv^kASjD512kkjOSf*F%92sus85XzWbC2Ti2K%8arau3DH
z#=`EC{Y300A5dqRyhnHvqxs~ELXMLsh@?;6D{2oGwGwTfEGX_gNi2QxZgG3C##Le&
zllvu{CWnY;Fd9$3C}ay(xW7zxvb03WWKJok$rmNkCvTF17*H+QH<?|=ZnA+A>tr9P
z^vQQ*Al7%rD^3=Zc4xE%TRC4keex<<hz<dBmdU;{eUn4vAbh1P$;sxjC6iamLv+5C
z&6r%P0AWv;%a|<4=QP<pPjT`m3HQlAM4TqSmY+1)QqpPieud7-pA?-YcPXY%o~`6O
z*+eO0vYWEg<a<gPlRqd!^miyj{UGWDjXf7A{r3O=|K5|cRiq7JB5(fx|L+BrRfEzX
z${9p3Ffe#R>93RfRmAJjMZf(2|6dTQ0-x^B|NsAYB|_b&|NsAkA|Ip_i+Nmd=X{*3
zuPUC1?wk+*|NnOb>1AMGz@i<l`~Cm_|J{jD_il2%s`%tO6%Iz9$@5j^p{(O@)_XWh
zTn#2`4`-!ASiC+^n?RI3DDWA5CU1wxG5Sot4`HFGa-RHJO<BwXq=A8fft!JWfiVWc
zS)n<3qq@{&J9PswUx)~}EOCUgSGG=WQLkg$slmW7M{_cV#!_ccX#V>TGJ=6Y7ODzV
za)6juqCq4BgAs&cV9;SeD1r&jkKX)2LrrY5RI%UY6#Hq6o5k$?csGA2)?nH!ugS+a
z`9QGW<^#Us+><wiwQZhPwvZ7bJTJv>vWH{G<ohvgn;oNXiZgzjZ0PDcc|vK&X8Q_H
zMksfFLdRtLinhs5st!X%Zuvt*Oq3KStJE%nih@i6sZ*+lsoUZSQP-iYI60{irtXe+
J#pF{>jQ|AzarFQI

delta 1156
zcmbQ&!*sfhX@UXkP7MYI-N}KX`oath3@i-Z3=9lmj0|A#m}_FWcKu^61_mYu28MrX
z3=BdH3=DcI3=I3!!3r3TsWX7_HFXAtSL`O6p7_}R7ZdB-D}Q5ybXvQE#nPJJE`8dU
zz8EhHlLZ+HG6!S>D+4nF6T>Q<MT{&A3=E;JrVJnv1{4v94Gh{0bCQ1U1##Fk7#PHx
zK`aFR|NsAgkPj>w7#O6RH)k+%b4;GdAvgI3r!=>7PG)j8!>NvxO0fSX8*$Cq%*rjs
zK6#_K)8ts8jLFhMPLtV%GbSGua+<tRIAe0Yu-)Vh8Z48eMJ7#_6tSD^Aiy$NUo?HP
zyMpuNo1)E=r-|Bw#pa8pGZ|V=-pJ=T*;71Ya;%usWbr7)$s!W&li9@~Mg+ykPTnO^
z0=B9^GJUeNqVr@aslLg2l1`IfNo7pFA!#>xf^-g}8Q2s%ne@rarR*m+q;gDtBhxoI
zP}&~skiD|Klb6Xr9MU6~F}Ye6!Zwr70Gs?kK4Y?%9K^;hg-MgYK-qDMos1S>lQosn
zCqGkko_wudaq<@>_sJ8LoF>;QXH2$McABiNk}>(IvYn+PG&r51^!xw+|9e2$YET+P
zp{sj0Sx!xSa;zE$ryEF`fq~)MWIa`|2ro?J>;M1%1t)u{NyA0H{Qv*o1x4iZ|Ns9*
zKq7E+K21J{X3od||Nl#X)F{GC{_y|*e@UplD6X8mF++HAp_&MzBbYT4&N>KZy@ay_
z)nV!^VJuMxoThfd)J)!}E;9M8x`3D~R4q3H1A}Z7gtJp)@<I)%$+{W_%3cr=aQ=Y>
z-?b*FAOiyfBLl<aMnO?<Wcz9eOkS%Y0cIc7&|y2J&cLu%WAb;6rOu#i_wPRwSf4DI
z1ZxGeK16~k1|tZ?z@QCs3X}sA+#R|3zNVVk=9i9syqn_#i+MKhcj9B5d?4Fzvb0Ob
z=DUgU5|ddS{3d5<cTDE@ZQH!pe-Y#4)zNL6BjOe^P7bJVn>?fXFjz&7R|lA{siZjh
uM(rZ7SY>j@=74%nMleU(1)|_<BSb^H4}`C-qBz;K1)^cSU&Z9Pt&IRuBs#4C

diff --git a/Source/RWTHVRToolkit/Private/Interaction/Interactors/RWTHVRWidgetInteractionComponent.cpp b/Source/RWTHVRToolkit/Private/Interaction/Interactors/RWTHVRWidgetInteractionComponent.cpp
index 3a87de65..bae88c04 100644
--- a/Source/RWTHVRToolkit/Private/Interaction/Interactors/RWTHVRWidgetInteractionComponent.cpp
+++ b/Source/RWTHVRToolkit/Private/Interaction/Interactors/RWTHVRWidgetInteractionComponent.cpp
@@ -51,10 +51,20 @@ void URWTHVRWidgetInteractionComponent::SetupPlayerInput(UInputComponent* Player
 		return;
 	}
 
-	EI->BindAction(WidgetClickInputAction, ETriggerEvent::Started, this,
-				   &URWTHVRWidgetInteractionComponent::OnBeginClick);
-	EI->BindAction(WidgetClickInputAction, ETriggerEvent::Completed, this,
-				   &URWTHVRWidgetInteractionComponent::OnEndClick);
+	if(WidgetLeftClickInputAction)
+	{
+		EI->BindAction(WidgetLeftClickInputAction, ETriggerEvent::Started, this,
+					   &URWTHVRWidgetInteractionComponent::OnBeginLeftClick);
+		EI->BindAction(WidgetLeftClickInputAction, ETriggerEvent::Completed, this,
+					   &URWTHVRWidgetInteractionComponent::OnEndLeftClick);
+	}
+	if(WidgetRightClickInputAction)
+	{
+		EI->BindAction(WidgetRightClickInputAction, ETriggerEvent::Started, this,
+					   &URWTHVRWidgetInteractionComponent::OnBeginRightClick);
+		EI->BindAction(WidgetRightClickInputAction, ETriggerEvent::Completed, this,
+					   &URWTHVRWidgetInteractionComponent::OnEndRightClick);
+	}
 }
 
 // Called every frame
@@ -99,17 +109,29 @@ void URWTHVRWidgetInteractionComponent::SetInteractionRayVisibility(EInteraction
 }
 
 // Forward the click to the WidgetInteraction
-void URWTHVRWidgetInteractionComponent::OnBeginClick(const FInputActionValue& Value)
+void URWTHVRWidgetInteractionComponent::OnBeginLeftClick(const FInputActionValue& Value)
 {
 	PressPointerKey(EKeys::LeftMouseButton);
 }
 
 // Forward the end click to the WidgetInteraction
-void URWTHVRWidgetInteractionComponent::OnEndClick(const FInputActionValue& Value)
+void URWTHVRWidgetInteractionComponent::OnEndLeftClick(const FInputActionValue& Value)
 {
 	ReleasePointerKey(EKeys::LeftMouseButton);
 }
 
+// Forward the click to the WidgetInteraction
+void URWTHVRWidgetInteractionComponent::OnBeginRightClick(const FInputActionValue& Value)
+{
+	PressPointerKey(EKeys::RightMouseButton);
+}
+
+// Forward the end click to the WidgetInteraction
+void URWTHVRWidgetInteractionComponent::OnEndRightClick(const FInputActionValue& Value)
+{
+	ReleasePointerKey(EKeys::RightMouseButton);
+}
+
 void URWTHVRWidgetInteractionComponent::CreateInteractionRay()
 {
 	// Only create a new static mesh component if we haven't gotten one already
diff --git a/Source/RWTHVRToolkit/Public/Interaction/Interactors/RWTHVRWidgetInteractionComponent.h b/Source/RWTHVRToolkit/Public/Interaction/Interactors/RWTHVRWidgetInteractionComponent.h
index 4b1139cf..34770d50 100644
--- a/Source/RWTHVRToolkit/Public/Interaction/Interactors/RWTHVRWidgetInteractionComponent.h
+++ b/Source/RWTHVRToolkit/Public/Interaction/Interactors/RWTHVRWidgetInteractionComponent.h
@@ -44,14 +44,22 @@ public:
 	TEnumAsByte<EInteractionRayVisibility> InteractionRayVisibility = EInteractionRayVisibility::Invisible;
 
 	UPROPERTY(EditAnywhere, Category = "Input")
-	class UInputAction* WidgetClickInputAction;
+	class UInputAction* WidgetLeftClickInputAction;
+	UPROPERTY(EditAnywhere, Category = "Input")
+	class UInputAction* WidgetRightClickInputAction;
 
 private:
 	UFUNCTION()
-	void OnBeginClick(const FInputActionValue& Value);
+	void OnBeginLeftClick(const FInputActionValue& Value);
+
+	UFUNCTION()
+	void OnEndLeftClick(const FInputActionValue& Value);
+
+	UFUNCTION()
+	void OnBeginRightClick(const FInputActionValue& Value);
 
 	UFUNCTION()
-	void OnEndClick(const FInputActionValue& Value);
+	void OnEndRightClick(const FInputActionValue& Value);
 
 	void CreateInteractionRay();
 	void SetupInteractionRay();
-- 
GitLab