fix: close dropdown menu when focus lost (#986)
* fix: close dropdown menu when focus lost Signed-off-by: davfsa <davfsa@gmail.com> * fix: shadow var name to avoid unused lint Signed-off-by: davfsa <davfsa@gmail.com> * fix: remove unused argument Signed-off-by: davfsa <davfsa@gmail.com> --------- Signed-off-by: davfsa <davfsa@gmail.com> Co-authored-by: Jas Singh <jaskiratpal.singh@outlook.com>
This commit is contained in:
@@ -25,11 +25,21 @@ export default ({
|
|||||||
name={name}
|
name={name}
|
||||||
namespace={name}
|
namespace={name}
|
||||||
className={`${name} dropdown-menu`}
|
className={`${name} dropdown-menu`}
|
||||||
onKeyPressEvent={(_, event) => {
|
onKeyPressEvent={(self, event) => {
|
||||||
const key = event.get_keyval()[1];
|
const key = event.get_keyval()[1];
|
||||||
|
|
||||||
if (key === Gdk.KEY_Escape) {
|
if (key === Gdk.KEY_Escape) {
|
||||||
App.get_window(name)?.set_visible(false);
|
self.visible = false;
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
onFocusOutEvent={(self) => {
|
||||||
|
self.visible = false;
|
||||||
|
}}
|
||||||
|
onButtonPressEvent={(self, event) => {
|
||||||
|
const buttonClicked = event.get_button()[1];
|
||||||
|
|
||||||
|
if (buttonClicked === Gdk.BUTTON_PRIMARY || buttonClicked === Gdk.BUTTON_SECONDARY) {
|
||||||
|
self.visible = false;
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
visible={false}
|
visible={false}
|
||||||
@@ -48,17 +58,7 @@ export default ({
|
|||||||
})}
|
})}
|
||||||
{...props}
|
{...props}
|
||||||
>
|
>
|
||||||
<eventbox
|
<box vertical>
|
||||||
className="parent-event"
|
|
||||||
onButtonPressEvent={(_, event) => {
|
|
||||||
const buttonClicked = event.get_button()[1];
|
|
||||||
|
|
||||||
if (buttonClicked === Gdk.BUTTON_PRIMARY || buttonClicked === Gdk.BUTTON_SECONDARY) {
|
|
||||||
App.get_window(name)?.set_visible(false);
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<box className="top-eb" vertical>
|
|
||||||
{bind(location).as((lcn) => {
|
{bind(location).as((lcn) => {
|
||||||
if (locationMap[lcn] === Astal.WindowAnchor.TOP) {
|
if (locationMap[lcn] === Astal.WindowAnchor.TOP) {
|
||||||
return <BarEventMargins windowName={name} />;
|
return <BarEventMargins windowName={name} />;
|
||||||
@@ -70,10 +70,7 @@ export default ({
|
|||||||
onButtonPressEvent={(_, event) => {
|
onButtonPressEvent={(_, event) => {
|
||||||
const buttonClicked = event.get_button()[1];
|
const buttonClicked = event.get_button()[1];
|
||||||
|
|
||||||
if (
|
if (buttonClicked === Gdk.BUTTON_PRIMARY || buttonClicked === Gdk.BUTTON_SECONDARY) {
|
||||||
buttonClicked === Gdk.BUTTON_PRIMARY ||
|
|
||||||
buttonClicked === Gdk.BUTTON_SECONDARY
|
|
||||||
) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
@@ -108,7 +105,6 @@ export default ({
|
|||||||
return <box />;
|
return <box />;
|
||||||
})}
|
})}
|
||||||
</box>
|
</box>
|
||||||
</eventbox>
|
|
||||||
</window>
|
</window>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user