Emmanuele Bassi
00a3c69868
[x11] Fix a race condition when resizing a stage
...
There is a race condition when we resize a stage before showing
it on X11.
The race goes like this:
- clutter_init() creates the default stage and realize it, which
will cause a 640x480 Window to be created
- call set_size(800, 600) on the stage will cause the Window to be
resized to 800x600
- call show() on the stage for the first time will cause COGL
to set up an 800 by 600 GL viewport
- the Window will be mapped, which will cause X to notify the
window manager that the Window should be resized to 800x600
- the window manager will approve the resize
- X resizes the drawable to 800x600
To fix the race, we need to defer COGL from setting up the viewport
until we receive a ConfigureNotify event and the X server has resized
the Drawable.
In order to defer the call to cogl_setup_viewport() we add a new
private flag, CLUTTER_STAGE_IN_RESIZE; the flag is checked whenever
we need to change the viewport size along with the SYNC_MATRICES
private flag. Thus, cogl_setup_viewport() will be called only if
SYNC_MATRICES is set and IN_RESIZE is not set.
2009-01-09 12:06:46 +00:00
..
2009-01-07 16:25:26 +00:00
2008-10-30 17:04:34 +00:00
2008-10-30 17:04:34 +00:00
2008-10-30 17:04:34 +00:00
2009-01-06 12:15:02 +00:00
2008-04-09 14:18:42 +00:00
2008-10-30 17:04:34 +00:00
2008-11-28 13:14:10 +00:00
2008-10-30 17:04:34 +00:00
2008-10-30 17:04:34 +00:00
2009-01-09 12:06:46 +00:00
2009-01-08 16:00:47 +00:00
2009-01-05 15:29:10 +00:00
2009-01-05 13:19:40 +00:00
2008-11-18 12:42:05 +00:00
2009-01-05 13:19:40 +00:00
2008-11-18 09:50:03 +00:00
2008-12-23 16:59:14 +00:00
2008-12-23 15:03:11 +00:00
2008-10-30 16:37:55 +00:00
2008-10-30 17:04:34 +00:00
2008-12-13 11:53:03 +00:00
2008-10-30 17:04:34 +00:00
2008-01-18 11:02:34 +00:00
2008-10-30 17:04:34 +00:00
2008-12-16 15:39:53 +00:00
2008-12-05 13:13:37 +00:00
2008-12-23 20:55:35 +00:00
2008-10-30 17:04:34 +00:00
2008-10-30 16:37:55 +00:00
2008-10-30 17:04:34 +00:00
2009-01-05 13:19:40 +00:00
2008-10-30 17:04:34 +00:00
2008-12-05 13:13:37 +00:00
2008-12-05 13:13:37 +00:00
2009-01-07 14:53:54 +00:00
2009-01-05 16:25:50 +00:00
2008-12-19 17:48:30 +00:00
2008-12-21 21:52:50 +00:00
2008-08-06 10:20:57 +00:00
2008-10-30 17:04:34 +00:00
2009-01-05 13:19:40 +00:00
2008-10-30 17:04:34 +00:00
2008-11-05 12:16:15 +00:00
2008-10-30 17:04:34 +00:00
2008-10-16 10:28:17 +00:00
2008-10-30 17:04:34 +00:00
2008-11-18 09:50:03 +00:00
2008-11-18 09:50:03 +00:00
2008-12-05 13:13:37 +00:00
2008-10-30 17:04:34 +00:00
2007-12-25 11:41:10 +00:00
2007-08-20 20:16:15 +00:00
2008-12-08 13:57:10 +00:00
2008-12-08 13:57:10 +00:00
2008-06-06 13:44:22 +00:00
2008-10-30 17:04:34 +00:00
2008-12-15 14:29:59 +00:00
2008-10-31 12:07:01 +00:00
2008-05-09 16:27:06 +00:00
2008-10-30 17:04:34 +00:00
2008-11-26 16:46:48 +00:00
2008-10-30 17:04:34 +00:00
2008-03-09 19:07:17 +00:00
2008-10-30 17:04:34 +00:00
2008-12-17 19:26:24 +00:00
2008-11-18 09:50:03 +00:00
2008-04-23 13:58:58 +00:00
2008-06-10 06:37:46 +00:00
2008-08-05 10:54:40 +00:00
2008-03-19 18:33:33 +00:00
2008-10-30 17:04:34 +00:00
2009-01-09 12:06:46 +00:00
2008-10-30 17:11:29 +00:00
2008-12-08 13:57:10 +00:00
2008-11-21 16:18:38 +00:00
2008-10-30 17:04:34 +00:00
2008-01-09 14:18:53 +00:00
2008-07-30 10:32:25 +00:00
2008-10-30 17:04:34 +00:00
2008-12-19 18:21:36 +00:00
2008-12-21 21:52:50 +00:00
2009-01-09 12:06:46 +00:00
2008-11-17 14:21:49 +00:00
2008-10-30 17:04:34 +00:00
2008-11-25 13:19:48 +00:00
2008-10-30 17:04:34 +00:00
2008-08-04 16:21:27 +00:00
2008-08-04 16:21:27 +00:00
2008-11-18 18:53:10 +00:00
2008-10-30 17:04:34 +00:00
2007-11-14 11:32:24 +00:00
2008-10-30 17:04:34 +00:00
2008-11-18 15:08:40 +00:00
2008-11-18 15:08:40 +00:00
2008-11-18 15:08:40 +00:00
2008-11-18 15:08:40 +00:00
2008-06-03 20:15:11 +00:00
2008-10-30 17:04:34 +00:00
2008-04-04 15:02:11 +00:00
2008-10-30 17:04:34 +00:00
2009-01-06 12:27:13 +00:00
2008-10-30 17:04:34 +00:00
2009-01-08 17:06:04 +00:00
2009-01-07 11:46:22 +00:00
2009-01-05 11:11:10 +00:00
2008-12-24 00:48:32 +00:00
2008-12-05 17:44:12 +00:00
2008-10-30 17:04:34 +00:00
2008-09-23 13:25:31 +00:00
2008-10-30 17:04:34 +00:00
2008-11-18 12:42:05 +00:00
2008-05-09 10:58:26 +00:00
2009-01-08 16:00:47 +00:00
2008-02-12 17:17:52 +00:00
2008-10-30 17:04:34 +00:00
2008-03-31 17:15:02 +00:00
2009-01-07 12:06:33 +00:00
2009-01-07 12:06:33 +00:00