| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Since the check for backend->cogl_context was accidentally moved
to clutter_backend_do_real_create_context, the Glib source that
is created at the end of clutter_backend_do_create_context() is
created and added each time create_context() is called, though
create_context() is supposed to be idempotent.
https://bugzilla.gnome.org/show_bug.cgi?id=768243
|
| |
|
|
|
|
|
| |
Otherwise the build will fail when Cogl is compiled without Wayland
winsys.
|
|
|
|
|
|
|
|
| |
This reverts commit 83b738c0e7060b4526fdbd306fcc255f71c064fa.
Given the way Mutter relies on this to get event codes back, we can't change
this as easily on stable branches. Proper fixes are going to the master
branches.
|
|
|
|
|
|
|
|
| |
On X11 those were skipped, so additional pointer buttons would come up
as button >= 8 events. Do here the same, so we remain compatible across
backends.
https://bugzilla.gnome.org/show_bug.cgi?id=758237
|
| |
|
| |
|
|
|
|
|
| |
We're always emulating one of those, depending on the scrolling
device/source, so mark these as such.
|
|
|
|
|
|
|
| |
Otherwise events from other devices or touch sequences might unintendedly
trigger the thresholds, and a "cancelled" ::long-press with it.
https://bugzilla.gnome.org/show_bug.cgi?id=756749
|
| |
|
| |
|
| |
|
|
|
|
| |
Following the coding style.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's handlers around relying on up/down/left/right scroll events,
which won't work as expected if only smooth scroll events are sent.
In order to work properly there, we have to retrofit discrete scroll
events on the evdev backend.
Fix this by implementing emission (on devices with a wheel) and
emulation (on anything else) of discrete scroll events. On the former
both smooth and discrete events are set, for the latter we do accumulate
the dx/dy of the latest scroll events, and emit discrete ones when we
accumulated enough. The ending 0/0 event will reset the accumulators for
the next scrolling batch.
https://bugzilla.gnome.org/show_bug.cgi?id=756284
|
| |
|
| |
|
|
|
|
|
|
|
| |
A check for priv->parent == NULL was inside the else of a check
for (priv->parent == NULL).
https://bugzilla.gnome.org/show_bug.cgi?id=745517
|
|
|
|
|
|
|
|
|
| |
When enable_paint_unmapped is disabled, we shouldn't force the
source widget to be unmapped if the constraints would keep it
mapped; in practice this shouldn't matter unless a paint handler
is messing with the map state.
https://bugzilla.gnome.org/show_bug.cgi?id=745517
|
|
|
|
|
|
|
| |
If we can't realize the source actor for a clone, simply skip updating
the map state and painting it.
https://bugzilla.gnome.org/show_bug.cgi?id=745517
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Enable animation updates from the GdkFrameClock whenever any timeline is
added to the ClutterMasterClockGdk. This may improve animation
smoothness (depending on the GDK backend in use) because it allows GDK
to tweak its frame timing for animation purposes.
https://bugzilla.gnome.org/show_bug.cgi?id=755357
|
| |
|
| |
|
|
|
|
|
| |
We need an updated Docbook schema, and a couple of other attributes, so
that gtk-doc will generate a valid devhelp file.
|
|
|
|
|
|
|
| |
Set the frame budget so that CLUTTER_ENABLE_DIAGNOSTIC correctly outputs
timing diagnostics from the ClutterMasterClockGdk.
https://bugzilla.gnome.org/show_bug.cgi?id=755357
|
|
|
|
|
|
|
|
| |
This is how GdkFrameClock is meant to be used: the frame time is meant
to be queried from the GdkFrameClock within its frame signals, rather
from the system monotonic time source.
https://bugzilla.gnome.org/show_bug.cgi?id=755357
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=755357
|
|
|
|
|
|
|
| |
Just in case the timeline starts being prodded by the ClutterMasterClock
before the add function returns. (This has not been verified.)
https://bugzilla.gnome.org/show_bug.cgi?id=755357
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
When removing the frame callback on the CoglOnscreen, we loose the ability
to get notified of swap events. This could leave us with a counter != 0
which leads to a deadlock situation after the next realize/draw cycle.
https://bugzilla.gnome.org/show_bug.cgi?id=755014
|
|
|
|
|
|
|
| |
Similarly to 13dbb74c81bec861d3a135fb53966ae5562831a7, we need to reset the
framebuffer in the x11 for foreign windows.
https://bugzilla.gnome.org/show_bug.cgi?id=755014
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we call _clutter_stage_do_update() on a ClutterStage that isn't
mapped/visible, no GL command will be queued, and the Mesa/DRI2
implementation of SwapBuffers will do nothing. This causes
GLX_INTEL_swap_event to not be emitted by the X server because no swapping
has been requested through DRI2 and it eventually leads to a deadlock
situation in ClutterStageCogl because we're waiting for an event before we
start the next draw cycle.
This patch removes the non mapped stages from the list of stages to process.
This is consistent with a previous patch for the ClutterMasterClockGdk [1].
[1] : 5733ad58e5a3989f5cb836d42a1cebf3884e7c36
https://bugzilla.gnome.org/show_bug.cgi?id=755014
|
|
|
|
|
|
|
|
|
|
|
| |
We want to avoid waiting for the acknowledgement event from the X
server as we might redraw the stage before that happens.
This patch reimplements a bit of logic already in clutter-gtk [1].
[1] : https://git.gnome.org/browse/clutter-gtk/tree/clutter-gtk/gtk-clutter-embed.c#n723
https://bugzilla.gnome.org/show_bug.cgi?id=754993
|
|
|
|
|
|
|
|
|
| |
Setting up the sync_to_vblank in the MasterClock is a bit too late as
the MasterClock can be created after a StageWindow has been created
and realized (and therefore all of its Cogl/GL state setup already).
So move the setup to the backend, prior to any StageWindow creation.
https://bugzilla.gnome.org/show_bug.cgi?id=754938
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clutter still uses part of the deprecated stateful API of Cogl (in
particulart cogl_set_framebuffer). It means Cogl can keep an internal
reference to the onscreen object we rendered to. In the case of
foreign window, we want to avoid this, as we don't know what's going
to happen to that window.
This change sets the current Cogl framebuffer to a dummy 1x1
framebuffer if the current Cogl framebuffer is the one we're
unrealizing.
https://bugzilla.gnome.org/show_bug.cgi?id=754890
|
|
|
|
|
|
|
|
|
|
|
|
| |
We're currently hooked to the "update" signal of the FrameClock. When
embedding Clutter inside GTK+ we want to have the layout phase of GTK+
to notify us the size of our stage.
This patch change to FrameClock signal we're listening to, to the
"paint" signal to make sure we've received the layout information from
GTK+, before painting. Otherwise we paint with a delay of one frame.
https://bugzilla.gnome.org/show_bug.cgi?id=754889
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The commit 6cd24faaa54de3246ca45d1c7426d8b7a74f71db (actor: Clean up
transform_stage_point()) changed the validation of the transformation
matrix to ignore the fraction part of the determinant. This caused
clutter_actor_transform_stage_point() to fail and return FALSE for
actors which scale was less than 1.
Previously the validation was ('det' being a float):
det = (RQ[0][0] * ST[0][0])
+ (RQ[0][1] * ST[0][1])
+ (RQ[0][2] * ST[0][2]);
if (!det)
return FALSE;
Semantically, the if statement expression '!det' is equivalent to
'det == 0', i.e. 'det == 0.0f'. Post cleanup patches, 'det' was turned
into a double, and the if statement was changed to:
if (CLUTTER_NEARBYINT (det) == 0)
return FALSE;
which, different from before, rounds the determinant to the nearest
integer value, meaning determinant in the range (-0.5, 0.5) would be
considered invalid.
This patch reverts this part to the old behavior, while, because of the
inexact nature of floating point arithmetics, allowing a bit more liberal
meaning of "equals to 0" than '== 0.0'.
https://bugzilla.gnome.org/show_bug.cgi?id=754766
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
It is safer to create our own wayland surface when rendering into
someone else GdkWindow, otherwise we might draw somewhere we didn't
intend to.
https://bugzilla.gnome.org/show_bug.cgi?id=754697
|