summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2017-03-09 16:11:56 -0600
committerDerek Foreman <derekf@osg.samsung.com>2017-03-09 16:11:56 -0600
commit5e7456a3150ddaed135f702c70800c7ed3d4f16f (patch)
tree66545c7b2ab6adb1fb81665e6bcfbb32bd1e3e03
parent4f1c858928c196d77c69e78254d50217ef4ae2b2 (diff)
ecore_wl2: Fix up xdgv6 ack_configures
We've been immediately acking configure with the correct serial number, then later at commit time sending an incorrect serial (generating a new one). Remove the extra ack, and save that serial for later, and don't overwrite it with a current serial when we get a toplevel configure. Oddly, compositors were letting us get away with this behaviour, so this probably looks functionally the same as before.
-rw-r--r--src/lib/ecore_wl2/ecore_wl2_window.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c b/src/lib/ecore_wl2/ecore_wl2_window.c
index 4093bec8a9..601163136b 100644
--- a/src/lib/ecore_wl2/ecore_wl2_window.c
+++ b/src/lib/ecore_wl2/ecore_wl2_window.c
@@ -143,14 +143,13 @@ static const struct xdg_surface_listener _xdg_surface_listener =
143}; 143};
144 144
145static void 145static void
146_zxdg_surface_cb_configure(void *data, struct zxdg_surface_v6 *zxdg_surface, uint32_t serial) 146_zxdg_surface_cb_configure(void *data, struct zxdg_surface_v6 *zxdg_surface EINA_UNUSED, uint32_t serial)
147{ 147{
148 Ecore_Wl2_Window *window; 148 Ecore_Wl2_Window *window;
149 Ecore_Wl2_Event_Window_Configure_Complete *ev; 149 Ecore_Wl2_Event_Window_Configure_Complete *ev;
150 150
151 zxdg_surface_v6_ack_configure(zxdg_surface, serial);
152
153 window = data; 151 window = data;
152 window->configure_serial = serial;
154 if (!window->pending.configure) return; 153 if (!window->pending.configure) return;
155 window->pending.configure = EINA_FALSE; 154 window->pending.configure = EINA_FALSE;
156 155
@@ -211,7 +210,6 @@ _zxdg_toplevel_cb_configure(void *data, struct zxdg_toplevel_v6 *zxdg_toplevel E
211 else 210 else
212 _ecore_wl2_input_focus_out_send(win); 211 _ecore_wl2_input_focus_out_send(win);
213 212
214 win->configure_serial = wl_display_get_serial(win->display->wl.display);
215 if ((win->geometry.w == width) && (win->geometry.h == height)) 213 if ((win->geometry.w == width) && (win->geometry.h == height))
216 width = height = 0; 214 width = height = 0;
217 else if ((!width) && (!height) && (!win->fullscreen) && (!win->maximized) && 215 else if ((!width) && (!height) && (!win->fullscreen) && (!win->maximized) &&