diff options
author | Derek Foreman <derekf@osg.samsung.com> | 2017-03-09 16:11:56 -0600 |
---|---|---|
committer | Derek Foreman <derekf@osg.samsung.com> | 2017-03-09 16:11:56 -0600 |
commit | 5e7456a3150ddaed135f702c70800c7ed3d4f16f (patch) | |
tree | 66545c7b2ab6adb1fb81665e6bcfbb32bd1e3e03 | |
parent | 4f1c858928c196d77c69e78254d50217ef4ae2b2 (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.c | 6 |
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 | ||
145 | static void | 145 | static 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) && |