summaryrefslogtreecommitdiff
path: root/present
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-09-04 08:36:07 -0700
committerKeith Packard <keithp@keithp.com>2014-09-11 18:19:41 -0700
commitbf338efc678258d2d366dff2ed873752f98f0bfc (patch)
treed196a4d1b80965cd5b7c64d20607e1558eae9eb9 /present
parent7a0c79c8c478bf22ee71c1ea35886a6f555ef2bb (diff)
glx/present: Only send GLX_BufferSwapComplete for PresentCompleteKindPixmap
Present didn't provide the 'kind' argument to the present_complete_notify hook that GLX uses to construct GLX_BufferSwapComplete events, so GLX was reporting events for PresentCompleteKindMSC notifications, which resulted in duplicate GLX_BufferSwapComplete events and crashes in clutter. See the gnome bug: https://bugzilla.gnome.org/show_bug.cgi?id=733282 Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'present')
-rw-r--r--present/present.h1
-rw-r--r--present/present_event.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/present/present.h b/present/present.h
index 0e3bdc08e..aab2e168a 100644
--- a/present/present.h
+++ b/present/present.h
@@ -116,6 +116,7 @@ extern _X_EXPORT Bool
present_screen_init(ScreenPtr screen, present_screen_info_ptr info);
typedef void (*present_complete_notify_proc)(WindowPtr window,
+ CARD8 kind,
CARD8 mode,
CARD32 serial,
uint64_t ust,
diff --git a/present/present_event.c b/present/present_event.c
index ff57eba41..d3a59ea25 100644
--- a/present/present_event.c
+++ b/present/present_event.c
@@ -174,7 +174,7 @@ present_send_complete_notify(WindowPtr window, CARD8 kind, CARD8 mode, CARD32 se
}
}
if (complete_notify)
- (*complete_notify)(window, mode, serial, ust, msc);
+ (*complete_notify)(window, kind, mode, serial, ust, msc);
}
void