Commit Graph

22232 Commits

Author SHA1 Message Date
Carlos Garnacho
b3eac93c4c xwayland: Ignore selection request not meant to our internal window
There may be other windows managing selection whose events are seen in
our GDK event filter, like st-clipboard in gnome-shell, we should in
that case not interfere on Selection/SelectionRequest events that are
not meant for us.

This fixes an odd feedback loop where requesting clipboard contents from
wayland results in a XConvertRequest call and a SelectionRequest event
that is interpreted by mutter as a request from another X11 client, so
the current data source is poked for content, which happens to be the
X11 bridge, which does a XConvertRequest to get contents... This is only
broken after the many nested async operations create enough pipes and
cancellables to run out of fds.

Adding checks to ensure only events meant to our "selection owner"
window are managed prevent this unintended loop to happen in the first
place.

https://bugzilla.gnome.org/show_bug.cgi?id=760745
2016-10-07 16:05:22 +02:00
Milo Casagrande
a9e386e1af Updated Italian translation 2016-10-03 09:50:50 +00:00
Olav Vitters
028157081c Fix string format build error
backends/meta-input-settings.c:1245:27: error: format '%lx' expects
argument of type 'long unsigned int', but argument 3 has type 'guint64
{aka long long unsigned int}' [-Werror=format=]
2016-09-22 21:00:29 +02:00
Inaki Larranaga Murgoitio
a65c344743 Update Basque language 2016-09-19 13:44:45 +02:00
Florian Müllner
8797e5951c Bump version to 3.22.0
Update NEWS.
2016-09-19 23:15:04 +02:00
Florian Müllner
a4e69f338d clutter: Reuse GTK+'s RTL/LTR handling
Commit a4fb7ef5a3 dropped translations of our internal cogl/clutter
forks, which broke the local-based text direction support. Instead
of bringing back translations just for this purpose, we can re-use
GTK's translations which use the same technique.

https://bugzilla.gnome.org/show_bug.cgi?id=771549
2016-09-19 23:10:57 +02:00
Ask Hjorth Larsen
d045462860 Updated Danish translation 2016-09-19 22:59:52 +02:00
Carlos Garnacho
3137ddb1a1 backends: Handle tablet settings lookups with no backing libwacom info
Those will be unseen by g-s-d/g-c-c, so no settings will be written on
disk for those. Still, look up an ID correctly in this case instead of
crashing.

https://bugzilla.gnome.org/show_bug.cgi?id=771628
2016-09-19 22:55:30 +02:00
Rui Matos
5fbb479301 clutter/stage: Fix framebuffer capture origin offset
Commit f36fa53b0e had the offset math
wrong and the reviewer didn't notice it.

https://bugzilla.gnome.org/show_bug.cgi?id=771502
2016-09-19 22:28:05 +02:00
David King
a4c10b6683 Update British English translation 2016-09-18 12:14:41 +02:00
Florian Müllner
9e5491439e window-actor: Make sync_visibility() public
When we mess with a window actor's visibility from the shell side
(yes, I know :-( ), we should at least restore the proper visibility
when we're done with it ...

https://bugzilla.gnome.org/show_bug.cgi?id=771536
2016-09-18 11:01:15 +02:00
Jonas Ådahl
417757eab8 wayland: Handle parent-less popup commits
A xdg_popup, when active, always has a parent surface. However, a popup
created may immediately become invalid, for example when it is not
granted a grab, in which case it won't be assigned a parent since it
will never be mapped.

This case needs to be handled elsewhere, as one cannot assume a
MetaWaylandXdgPoup that is processed (via wl_surface commit handling
etc) will have a parent_surface.

https://bugzilla.gnome.org/show_bug.cgi?id=771495
2016-09-18 10:58:38 +08:00
Tom Tryfonidis
32b87e7bea Updated Greek translation 2016-09-16 11:14:12 +00:00
Stas Solovey
ed6fda84e1 Updated Russian translation 2016-09-16 09:24:23 +00:00
Jonas Ådahl
b1d95438d6 wayland/xwayland: Gracefully handle Xdnd start drag focus race
If a X11 client would initiate a Xdnd session after it had lost pointer
focus (for example when the Xdnd event starting the drag happens after
the implicit pointer grab is already broken due to the button being
released), just end the drag operation instead of dereferencing the
non-existing focus surface.

Also avoid using a native Wayland surface as a drag origin, as that can
never happen, but allow any arbitrary Xwayland client, since there is
no way to find out the actual drag origin.

https://bugzilla.gnome.org/show_bug.cgi?id=770940
2016-09-15 10:21:48 +08:00
Jonas Ådahl
60bc6798f4 wayland/data-device: Don't disconnect valid dnd client
We cannot check 'has-target' or 'has-seat' when verifying a
wl_data_offer.finish request is valid or not, since the source may have
effected 'has-target' or whether theh source has a seat or not when the
finish request was already on the wire.

Instead of checking against the source state, keep track whether the
required operations has been done on the offer in question (i.e.
whether an action has been sent, or a mime type been accepted).

This fixes incorrectly raised error when dragging from gtk+'s testdnd
via Xwayland onto gtk+'s testdnd using Wayland.

https://bugzilla.gnome.org/show_bug.cgi?id=770937
2016-09-15 10:19:08 +08:00
Jonas Ådahl
342532a98d ClutterStageCogl: Don't get buffer damage dirty pixel when not supported
Now with the existance of offscreen view framebuffers the buffer age
damage regions are only valid if the view in question doesn't doesn't
have an intermediate offscreen. So, for views that doesn't have buffer
age, return the dirty pixel (0,0).

https://bugzilla.gnome.org/show_bug.cgi?id=770672
2016-09-15 10:14:20 +08:00
Jonas Ådahl
219d2304e0 clutter: Let the stage window translate dirty pixel according to view
Otherwise if buffer age is not supported the dirty pixel would be
shifted potentially in unpaintable position.

https://bugzilla.gnome.org/show_bug.cgi?id=770672
2016-09-15 10:14:20 +08:00
Jonas Ådahl
fb6b0de48b clutter: Use non-deprecated pixel reading function when picking
This wont fix anything, it just one small step away from using
deprecated cogl functions.

https://bugzilla.gnome.org/show_bug.cgi?id=770672
2016-09-15 10:14:20 +08:00
Jonas Ådahl
22173fde15 MetaWaylandOutput: Cleanup type declaration
Use G_DECLARE_FINAL_TYPE instead of the set of macros.

https://bugzilla.gnome.org/show_bug.cgi?id=770672
2016-09-15 10:14:20 +08:00
Jonas Ådahl
4c8dd08c77 MetaWaylandOutput: Pretend outputs are always untransformed
Since wl_surface.set_buffer_transform() is not supported, until it is
added, pretend outputs are never transformed, so that clients are less
likely to attach pre-transformed buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=770672
2016-09-15 10:14:20 +08:00
Jonas Ådahl
b78b8c9578 ClutterStageView: Always blit full texture on full onscreen framebuffer
When blitting an offscreen onto an onscreen, the whole offscreen should
always be drawn on the whole onscreen. Thus, don't try to convert
between coordinate spaces, just draw the whole offscreen on the whole
onscreen.

https://bugzilla.gnome.org/show_bug.cgi?id=770672
2016-09-15 10:14:20 +08:00
Jonas Ådahl
e1516e4f31 wayland/pointer-constraints: Maybe remove when pointer focus changes
Also maybe remove a constraint when the pointer focus changes. This is
needed because when Xwayland has a constraint focus may change, the
constraint object will not receive a 'appears-focused' event on its
window since it never changed.

This happens for example when an override-redirect window (which never
appears focused) holds the constraint, and alt-tab happens. In this case
focus changes, but from the constraint's point of view, none of the
windows it knows about changed its focus appearance.

https://bugzilla.gnome.org/show_bug.cgi?id=771345
2016-09-15 10:12:25 +08:00
Jonas Ådahl
32276cf418 wayland/pointer-constraints: Move window-unmanaging check
We should never enable a pointer constraint for an unmanaging window.

https://bugzilla.gnome.org/show_bug.cgi?id=771345
2016-09-15 10:12:25 +08:00
Jonas Ådahl
98f0578f9d MetaWaylandPointer: Initialize default grab on init
Instead of initializing the default grab when the device class is
enabled, initialize it on object initialization. This way other device
classes can still grab the pointer, as if there was one. This may be
useful for example if a touch grab is active and a mouse is connected.

This also makes it possible for popup grabs, which currently use a
pointer grab for controlling, to be triggered by touch devices, while
still holding an active pointer grab.

https://bugzilla.gnome.org/show_bug.cgi?id=771305
2016-09-15 09:55:34 +08:00
Jonas Ådahl
87f82d9fc0 wayland: Move device seat association to MetaWaylandInputDevice
Make the device <-> seat association permanent, and move it into
MetaWaylandInputDevice. A device will never be disassociated with a
seat, so there is no point in unsetting it.

https://bugzilla.gnome.org/show_bug.cgi?id=771305
2016-09-15 09:55:34 +08:00
Jonas Ådahl
a6646b32d0 wayland: Add common object for device classes
Add a new object class, MetaWaylandInputDevice, and make all device
classes (pointer, keyboard, touch) inherit it. In the future common
functionality may be placed there.

https://bugzilla.gnome.org/show_bug.cgi?id=771305
2016-09-15 09:54:55 +08:00
Jonas Ådahl
d2cdbd433d wayland/seat: Add API to check whether a seat has a device class
Meant to replace explicitly checking whether a
MetaWaylandPointer/MetaWaylandKeyboard/MetaWaylandTouch has a seat or
not to determine whether they are supposed to be active or not.

https://bugzilla.gnome.org/show_bug.cgi?id=771305
2016-09-15 09:53:43 +08:00
Charles Monzat
5d3cacf8d2 Updated French translation 2016-09-13 10:16:11 +00:00
Ask Hjorth Larsen
a9b78cea6b Updated Danish translation 2016-09-13 02:00:08 +02:00
Florian Müllner
bb25aa5e6b Bump version to 3.21.92
Update NEWS.
2016-09-12 23:56:38 +02:00
Carlos Garnacho
b52f304f9d backends: Use g-s-d settings for tablet configuration
This is needed to make the wayland backend react to configuration
changes until gnome-control-center is updated to use the
gsettings-desktop-schemas settings.

https://bugzilla.gnome.org/show_bug.cgi?id=771315
2016-09-12 21:51:00 +02:00
Rui Matos
9a076076c0 monitor-manager-kms: Add common modes
Some output devices only advertise their preferred mode even though
they're able to display others too. This means we can include some
common modes in each output's supported list.

This is particularly important for mirroring, since we can only mirror
outputs which are using the same resolution.

https://bugzilla.gnome.org/show_bug.cgi?id=744544
2016-09-12 20:02:03 +02:00
Piotr Drąg
5cae628f37 Add more options to XGETTEXT_OPTIONS in po/Makevars 2016-09-12 19:56:30 +02:00
Carlos Garnacho
0f0b25767d backends: Add comment to translators in "Switch monitor" string
Without context it's not clear to what it actually refers to. Add some
context.

https://bugzilla.gnome.org/show_bug.cgi?id=770929
2016-09-12 19:45:09 +02:00
Мирослав Николић
878fb6720a Updated Serbian translation 2016-09-11 09:10:10 +02:00
Fran Dieguez
f4c2da7499 Updated Galician translations 2016-09-11 00:49:16 +02:00
Changwoo Ryu
0559308812 Updated Korean translation 2016-09-10 18:16:54 +00:00
Piotr Drąg
30d2a94cb3 Updated Polish translation 2016-09-09 23:58:50 +02:00
Florian Müllner
2681647089 wayland: Fix type error
Until the setting is moved to gnome-desktop-schemas, we still use
our own enum.
2016-09-09 20:28:00 +02:00
Olivier Fourdan
4c106a9c9b wayland: save/restore numlock state
Save the state on NumLock so that is can be (optionally) restored on
next login.

bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=757943
2016-09-09 19:07:10 +02:00
Tiago Santos
a884e4540c Updated Portuguese translation 2016-09-09 17:01:34 +00:00
Baurzhan Muftakhidinov
f9fff98909 Updated Kazakh translation 2016-09-09 16:14:25 +00:00
Jonas Ådahl
abee020f71 wayland/pointer-constraints: Maybe constrain on pointer focus change
Since Xwayland surface constraints might need to enable not only
because the constrained window appears focused, add a pointer focus
listener and try constrain whenever the pointer focus changes. It's
still required that a Xwayland window is focused to activate.

https://bugzilla.gnome.org/show_bug.cgi?id=771050
2016-09-09 10:09:46 +08:00
Jonas Ådahl
33ba06504b MetaWaylandPointerConstraints: Relax enable requirements for Xwayland
Xwayland surfaces are special, because there is no reliable way to
associate a window with its corresponding "application window" (the one
which was given focus). Many games that require pointer warping and
confining pointer grabs may for example create override redirect windows
and make that window receive input even though it will never be the
focus window.

Therefore, the requirements for enabling a constraint for a wl_surface
from Xwayland needs to be relaxed in order. This commit changes
Xwayland wl_surfaces to not require being focused to be enabled; it'll
be enabled as long as any X11 window is the one with focus.

https://bugzilla.gnome.org/show_bug.cgi?id=771050
2016-09-09 10:09:46 +08:00
Jonas Ådahl
10c7035a71 MetaWaylandPointerConstraints: Require pointer focus to enable
Require pointer focus to enable, otherwise we can't guarantee it has
entered the surface, as the focus may have been given to a subsurface,
override-redirect or other sub window covering the surface that was
requested to have o pointer constraint.

https://bugzilla.gnome.org/show_bug.cgi?id=771050
2016-09-09 10:09:46 +08:00
Jonas Ådahl
e6a20a025d MetaWaylandPointer: Add 'focus-surface-changed' signal
Add a signal that is emitted when the pointer focus surface of the
pointer device changes. This will later be used by the pointer
constraints to maybe enable pointer constraints when a surface receives
pointer focus.

https://bugzilla.gnome.org/show_bug.cgi?id=771050
2016-09-09 10:09:46 +08:00
Jonas Ådahl
262b52da50 MetaWaylandPointerConstraints: Handle delayed window surface association
For Xwayland, a newly created wl_surface and X11 Window pair may not be
immediately associated, but Xwayland may still request a pointer
constraint on some of its wl_surface's. Handle the situation by
postponing maybe enabling the constraint until the window and surface
has been associated.

https://bugzilla.gnome.org/show_bug.cgi?id=771050
2016-09-09 10:09:46 +08:00
Jonas Ådahl
fccdd00f74 MetaWaylandSurface: Move destroy signal even earlier
Move the MetaWaylandSurface::destroy signal before starting the actual
destruction, in wl_surface_destructor, so that all fields (e.g. surface
role) are intact when the listeners are invoked.

https://bugzilla.gnome.org/show_bug.cgi?id=771050
2016-09-09 10:09:46 +08:00
Jonas Ådahl
3a41b0f221 xwayland: Add 'window-associated' signal to role
When the Xwayland wl_surface is created, it may not yet be possible to
associate it with the corresponding X11 Window. Add a signal to the
Xwayland role to communicate with any interested parties.

https://bugzilla.gnome.org/show_bug.cgi?id=771050
2016-09-09 10:09:46 +08:00