mirror of
https://github.com/brl/mutter.git
synced 2024-11-28 11:00:54 -05:00
compositor: Prevent an error in application code from keeping unredirect on permanently
We substract one from the unredirect counter when enable_unredirect_for_screen gets called. It is an unsigned integer so substracting one from zero (which means enable) would overflow and thus keep it peramently enabled. This should never happen because it means there is an unmatched enable / disable pair somewhere. So in addition to fixing it add a warning when this case gets triggered. https://bugzilla.gnome.org/show_bug.cgi?id=701224
This commit is contained in:
parent
edfde6221f
commit
7b36dcf4a0
@ -1567,8 +1567,10 @@ void
|
|||||||
meta_enable_unredirect_for_screen (MetaScreen *screen)
|
meta_enable_unredirect_for_screen (MetaScreen *screen)
|
||||||
{
|
{
|
||||||
MetaCompScreen *info = meta_screen_get_compositor_data (screen);
|
MetaCompScreen *info = meta_screen_get_compositor_data (screen);
|
||||||
if (info != NULL)
|
if (info != NULL && info->disable_unredirect_count == 0)
|
||||||
info->disable_unredirect_count = MAX(0, info->disable_unredirect_count - 1);
|
g_warning ("Called enable_unredirect_for_screen while unredirection is enabled.");
|
||||||
|
if (info != NULL && info->disable_unredirect_count > 0)
|
||||||
|
info->disable_unredirect_count = info->disable_unredirect_count - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define FLASH_TIME_MS 50
|
#define FLASH_TIME_MS 50
|
||||||
|
Loading…
Reference in New Issue
Block a user