aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/events/Popups.cpp5
-rw-r--r--src/events/Windows.cpp5
2 files changed, 10 insertions, 0 deletions
diff --git a/src/events/Popups.cpp b/src/events/Popups.cpp
index ae95bc5e..41707b6a 100644
--- a/src/events/Popups.cpp
+++ b/src/events/Popups.cpp
@@ -228,6 +228,11 @@ void Events::listener_unmapPopupXDG(void* owner, void* data) {
void Events::listener_commitPopupXDG(void* owner, void* data) {
SXDGPopup* PPOPUP = (SXDGPopup*)owner;
+ if (PPOPUP->popup->base->initial_commit) {
+ wlr_xdg_surface_schedule_configure(PPOPUP->popup->base);
+ return;
+ }
+
if (g_pCompositor->windowValidMapped(PPOPUP->parentWindow)) {
PPOPUP->lx = PPOPUP->parentWindow->m_vRealPosition.vec().x;
PPOPUP->ly = PPOPUP->parentWindow->m_vRealPosition.vec().y;
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index ea45ad48..0854f68e 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -804,6 +804,11 @@ void Events::listener_ackConfigure(void* owner, void* data) {
void Events::listener_commitWindow(void* owner, void* data) {
CWindow* PWINDOW = (CWindow*)owner;
+ if (!PWINDOW->m_bIsX11 && PWINDOW->m_uSurface.xdg->initial_commit) {
+ wlr_xdg_toplevel_set_size(PWINDOW->m_uSurface.xdg->toplevel, 0, 0);
+ return;
+ }
+
if (!PWINDOW->m_bIsMapped || PWINDOW->isHidden())
return;