all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [yew-devel] [PATCH yew-widget-toolkit v2] widget: dropdown: update picker placement after showing
@ 2024-12-20 10:31 Dominik Csapak
  2024-12-20 10:42 ` Dominik Csapak
  2024-12-20 15:03 ` [yew-devel] applied: " Thomas Lamprecht
  0 siblings, 2 replies; 4+ messages in thread
From: Dominik Csapak @ 2024-12-20 10:31 UTC (permalink / raw)
  To: yew-devel

It seems that under certain circumstances (e.g. a dropdown in a dialog)
updating the position of the picker before it's opened (it's a
popover) does not work properly in safari/webkit/epiphany.

When trying to open such a dropdown, it (or some parts of it) would
be rendered with a height of 0px, even though the elements have
a height set explicitly.

To fix this, update the picker placement after opening it. What exactly
is the cause (e.g. if it's a browser bug or our css/aligning) is yet to
be determined.

This fixes an issue on webkit (tested with epiphany) that opening
dropdowns in a dialog did not show the dropdown properly.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 src/widget/dropdown.rs | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/widget/dropdown.rs b/src/widget/dropdown.rs
index f9b49f1..a125bf6 100644
--- a/src/widget/dropdown.rs
+++ b/src/widget/dropdown.rs
@@ -510,12 +510,6 @@ impl Component for PwtDropdown {
             }
         }
 
-        if let Some(placer) = &self.picker_placer {
-            if let Err(err) = placer.update() {
-                log::error!("error updating placement: {}", err.to_string());
-            }
-        }
-
         if self.show != self.last_show {
             self.last_show = self.show;
             if let Some(popover_node) = self.picker_ref.get() {
@@ -533,6 +527,14 @@ impl Component for PwtDropdown {
                 }
             }
         }
+
+        // update picker placement after we opened/closed it
+        if let Some(placer) = &self.picker_placer {
+            if let Err(err) = placer.update() {
+                log::error!("error updating placement: {}", err.to_string());
+            }
+        }
+
         self.focus_on_field = false;
     }
 }
-- 
2.39.5



_______________________________________________
yew-devel mailing list
yew-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/yew-devel


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-12-20 15:04 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-12-20 10:31 [yew-devel] [PATCH yew-widget-toolkit v2] widget: dropdown: update picker placement after showing Dominik Csapak
2024-12-20 10:42 ` Dominik Csapak
2024-12-20 10:45   ` Maximiliano Sandoval
2024-12-20 15:03 ` [yew-devel] applied: " Thomas Lamprecht

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal