diff options
author | Sergey Shakhnazarov <v-seshak@microsoft.com> | 2020-02-27 20:45:39 +0300 |
---|---|---|
committer | Sergey Shakhnazarov <v-seshak@microsoft.com> | 2020-02-27 20:45:39 +0300 |
commit | 602823d1e00d75f1cec7edfc849f1d4ed6221383 (patch) | |
tree | 0992f76c723c1a124a171684e50c2fb939792bd7 /Xwt.Gtk | |
parent | ec734b3fc81994753e23d8b06c6d1878fe8f7b75 (diff) |
[GTK] Unsubscribe Popover from Hidden event on hiding
Diffstat (limited to 'Xwt.Gtk')
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/PopoverBackend.cs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Xwt.Gtk/Xwt.GtkBackend/PopoverBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/PopoverBackend.cs index 6e7fddc4..4dbf0dc3 100644 --- a/Xwt.Gtk/Xwt.GtkBackend/PopoverBackend.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/PopoverBackend.cs @@ -269,7 +269,7 @@ namespace Xwt.GtkBackend popover.TransientFor.FocusInEvent += HandleParentFocusInEvent; } - popover.Hidden += (o, args) => sink.OnClosed (); + popover.Hidden += PopoverHidden; var screenBounds = reference.ScreenBounds; if (positionRect == Rectangle.Zero) @@ -288,6 +288,12 @@ namespace Xwt.GtkBackend }; } + void PopoverHidden (object sender, EventArgs e) + { + sink.OnClosed (); + popover.Hidden -= PopoverHidden; + } + void UpdatePopoverPosition (Rectangle positionRect, int width, int height) { var position = new Point (positionRect.Center.X, popover.ArrowPosition == Xwt.Popover.Position.Top ? positionRect.Bottom : positionRect.Top); |