| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The paint opacity for a top level is always overridden to be the full
value, since it's a composited value and we want to paint our scene.
When clearing the stage framebuffer, though, we want to use the actual
opacity, if ClutterStage:use-alpha is set.
(cherry picked from commit 8b8aa0b4927bc865b08b77b4e28237da0ff8597c)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-1 is explicitly an invalid value to pass to eglSwapBuffersWithDamage,
and the specification admits as much:
If
eglSwapBuffersWithDamageEXT is called and <n_rects>, is less
than zero or <n_rects> is greater than zero but <rects> is
NULL, EGL_BAD_PARAMETER is generated.
Fix up our usage of SwapBuffersWithDamage to match the behavior in the
EGL specification.
https://bugzilla.gnome.org/show_bug.cgi?id=745512
(cherry picked from commit 21ce9bc08b72f0904c6b682341481798d05f7d8c)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
| |
|
| |
|
|
|
|
| |
There's really no point in going through the motions there.
|
|
|
|
| |
We cannot touch srcdir when distchecking.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We should use the same heuristics used by GDK in order to detect whether
a device is a touchpad or not.
Based on the similar code from Carlos Garnacho for GDK:
https://git.gnome.org/browse/gtk+/commit/?id=6f07d5e7
https://bugzilla.gnome.org/show_bug.cgi?id=747436
(cherry picked from commit 79849ef1d5fff9acd310cd68d59df0c7cf2cb28f)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
| |
The function is deprecated and useless: support for XInput is always
enabled, if the extension is available.
|
| |
|
|
|
|
|
|
| |
(cherry picked from commit e2eb0b0adad71bbd3bd71d5e82288bd9d9c5985d)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
| |
We don't need it any more.
|
|
|
|
|
|
|
| |
Instead, include Makefile.am.gitignore.
(cherry picked from commit 847e3a2c553df8f0a6c78b6c6264a6c77a6e5704)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
|
| |
Use more sources, and allow adding files to the ignore list when
including Makefile.am.gitignore.
(cherry picked from commit 7bfd62f755410a6982a436f3edc938666fe5cdb9)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
| |
(cherry picked from commit 8d6cab0e71af3b9cb818cdd7b7f815505e2c9fac)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
| |
(cherry picked from commit 2f490c9dcc3111217ddb968054c1c0d5e475564b)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
| |
Add a srcdir prefix to the inspected files for glib-mkenums.
(cherry picked from commit 8e87d0417b341ca43d9399937c5946fe9cb48c32)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=743865
(cherry picked from commit 6c057e3171607d3cbfa61ec57c1fff6c5d72b14c)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
| |
Otherwise gtk-doc won't be able to find some generated files.
(cherry picked from commit 73e6f4e69df1b464c40e4652ed3cffccb003e7bb)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
|
|
| |
Instead of using `-lm` everywhere, use LT_LIB_M inside configure.ac, and
$(LIBM) inside Makefile.am.
(cherry picked from commit df15f04fc0474be09e6839618c598d43aee920e5)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
| |
And reorganize the code a bit while we're at it.
(cherry picked from commit ce2d86515a58042011b41066492833d189f3fd1a)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the rectangle is allocate a size smaller than the border, drawing the
border will end up with negative coordinates, and will mess up the whole
thing. Since rectangles don't have a minimum preferred size, we cannot
rely on the allocation being big enough to contain the border and the
background color.
If the rectangle is smaller than the border width value, we just paint
the border color as well.
(cherry picked from commit 6de341392126e83e098a360b2d77f6259ee09a23)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With server-side buffer allocation, buffers may be returned out of order
(e.g. they may be held onto by external references or hardware). As such
we may see older buffers the frame after we discard the history from
seeing a very young buffer. To overcome this we want to keep the history
in a ring so we can keep track of older entries without keeping an
unbounded list. After converting to a ring, the maximum buffer age
observed during testing was 5 (expected value of 4), but before we could
see ages as high as 9 due to the huge latency spikes caused by doing full
buffer redraws (compounded by external listeners doing readback on the
damaged areas, for example vnc, drm/udl, prime). For this reason, a
maximum age of 16 was chosen to be suitably large enough to prevent these
worst cases from taxing the system.
v2: Fix off-by-one in combining the damage histroy into the clipping
rectangle, and apply copious whitespace fixes.
Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=745512
References: https://bugzilla.gnome.org/show_bug.cgi?id=724788
References: https://bugzilla.gnome.org/show_bug.cgi?id=669122
(cherry picked from commit 239280f855db26fec93646af51bbc772478ef698)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cogl provides an interface to pass along damage with the swap buffers
request. This is useful for the display servers and hardware to minimise
the work done in updating the screen and also reducing the work done by
external listeners (such as vnc, drm/udl and PRIME).
Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=745512
(cherry picked from commit 55c957267ef241767ebd3891d49f06deb2ff4aa9)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
| |
|
| |
|
|
|
|
|
|
|
| |
The non-display safe variant has been deprecated in GTK+ 3.15.
(cherry picked from commit 54efcf0e903e50ce927d3b22aa1edfa7dfa1744a)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
| |
We don't want to break the build because GDK deprecated some symbol.
(cherry picked from commit 7d7eb8aabda177e502f388cbe7dd6b2b4e892bc3)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
|
|
|
| |
If a touchpad is not multitouch, or does not report MT axes (eg. through
the libinput driver), resort to name matching before falling back to
CLUTTER_POINTER_DEVICE.
https://bugzilla.gnome.org/show_bug.cgi?id=741350
(cherry picked from commit a0e2ba62a185c2db1fb998863f3e2011aebfaf68)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An easing mode can be set on a frame of a KeyframeTransition.
However, the progress value of the current frame is computed using using
a linear function.
This patch adds a call to clutter_easing_for_mode() to compute
the actual progress value.
Note that parametrized easing modes (bezier and 'step') are not taken
into account.
https://bugzilla.gnome.org/show_bug.cgi?id=740997
(cherry picked from commit e7d1458298318dad8eb046540162323dc1a76b25)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
| |
No need to do all the work, if the content instance is the same.
(cherry picked from commit 1e2132eca49347a2d8e519ab45780c52952c3e9e)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
|
|
|
|
| |
We want to recompute the content box when changing the content instance,
in case the preferred size is different and the content gravity uses the
preferred size; the change of content with different preferred size and
same gravity should also trigger an implicit transition.
https://bugzilla.gnome.org/show_bug.cgi?id=711182
(cherry picked from commit d546c0c121a967ab49773f91119dffe9d0358cdd)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
|
| |
Use the non-deprecated :orientation property, instead of the
deprecated :vertical one.
(cherry picked from commit e6a60f661784f3c0d8744402a0569ea47426ba02)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When merging multiple definitions it's possible that the ObjectInfo
fields may get overwritten. Instead of trampling over the fields, we
should reset them only when they actually change — especially the
"is_actor" one, which controls the destruction of the objects when
unmerging happens.
https://bugzilla.gnome.org/show_bug.cgi?id=669743
(cherry picked from commit d005c6a8809fe48ce5c8e5a9f0f620e4f60bb7e6)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The core pointer concept doesn't really exist anymore in an XI2 world,
so the clutter API is a bit of a mismatch with what X provides. Using
XIGetClientPointer doesn't really help, as far as i can tell the
semantics of XIGetClientPointer are essentially: Whatever the X server
picked when it had to reply with device-dependant data to a query
without a device specifier. Not very useful...
To make matters worse, whether XIGetClientPointer returns a valid
pointer depends on whether there has been a query that forced it to pick
one in the first place, making the whole thing pretty non-deterministic.
This patch changes things around such that instead of using
XIGetClientPointer to determine the core pointer, we simply pick the
first master pointer device. In practise this will essentially always
be the X virtual core pointer.
https://bugzilla.gnome.org/show_bug.cgi?id=729462
(cherry picked from commit 1be019852f0a64188df3d4e45820246f21fdacbe)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
|
|
| |
Do not CLAMP to width/height before applying the scale factor
we will lose all information we need to scale properly.
https://bugzilla.gnome.org/show_bug.cgi?id=730815
(cherry picked from commit 9660b001f7ee410bcbff545989a708b103e6faaf)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In keyboard/mouse wireless combos, it is rather common for the mouse to
claim it contains the multimedia keys, this makes libinput enable both
the pointer and keyboard capabilities on this device, and Clutter thus
to create a keyboard ClutterInputDevice for it.
Ideally clutter devices should be able to reflect their full capabilities,
or maybe account for the fact that certain events can be sent from
seemingly unexpected device types. But this will bring a somewhat better
behavior on such devices.
https://bugzilla.gnome.org/show_bug.cgi?id=740518
|
|
|
|
|
|
|
| |
This reverts commit 158af1ff594d8984b59dcf90654ed04cd8c53e16.
This commit introduced a regression, so the leak will have to be fixed
in another way.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For a variety of complicated reasons, ClutterText currently sets fields
on the PangoContext when creating a layout. This causes ClutterText to
behave somewhat erratically in certain cases, since the PangoContext is
currently shared between all actors.
GTK+ creates a PangoContext for every single GtkWidget, so it seems like
we should do the same here.
Move the private code that was previously in clutter-main.c into
clutter-actor.c and clean it up a bit. This gives every actor its own
PangoContext it can mutilate whenever it wants, at its heart's content.
https://bugzilla.gnome.org/show_bug.cgi?id=739050
|
|
|
|
|
|
|
|
| |
clutter_set_font_flags already calls clutter_backend_set_font_options,
which emits a signal which our PangoContext listens to, so this is just
duplicate and unneeded code.
https://bugzilla.gnome.org/show_bug.cgi?id=739050
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
libinput_suspend() will trigger the removal of input devices, but also
the emission of button/key releases pairing everything that is pressed
at that moment. These events are queued, but the ClutterInputDevice
pointers in these will point to invalid memory at the time these are
processed.
Fix this by flushing the event queue, in order to ensure there are no
unprocessed input events after libinput_suspend().
https://bugzilla.gnome.org/show_bug.cgi?id=738520
|
| |
|
|
|
|
|
| |
Change the URLs for mailing lists and documentation, and re-align the
output.
|
| |
|
| |
|
|
|
|
|
|
|
| |
We shouldn't be using "pt": PangoFontDescription.from_string() assumes
points, and only accepts "px" for absolute font sizes.
https://bugzilla.gnome.org/show_bug.cgi?id=736826
|
| |
|
| |
|