Commit Graph

21881 Commits

Author SHA1 Message Date
Lionel Landwerlin
9432e67ee8 gdk: stage: create subsurface when dealing with foreign windows on wayland
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
2015-09-07 18:17:10 +01:00
Lionel Landwerlin
3771ef2f08 gdk: stage: report geometry of the underlying surface for foreign windows
When running on wayland, we might have our own subsurface
desynchronized from the foreign GdkWindow. It is important that we
report the size of the actually surface we're rendering to, otherwise
the logic in ClutterStage might discard resize operation that
resynchronize the subsurface with the stage's size.

https://bugzilla.gnome.org/show_bug.cgi?id=754697
2015-09-07 18:17:10 +01:00
Lionel Landwerlin
55dce70440 gdk: stage: do not ensure native windows are created with foreign windows
For foreign windows this should be dealt with by the embedding
framework. In particular on Wayland with foreign windows, we might
want to create a subsurface and use the foreign window only for events
and frame clock synchronization.

https://bugzilla.gnome.org/show_bug.cgi?id=754697
2015-09-07 18:17:10 +01:00
Lionel Landwerlin
a9b38fefdc gdk: stage: disable some operations for foreign windows
Some operations like :
     * resize
     * show/hide
     * set_title
     * set_user_resizable

should be handled by the embedding framework, so disable them for
foreign windows.

https://bugzilla.gnome.org/show_bug.cgi?id=754671
2015-09-07 18:17:10 +01:00
Lionel Landwerlin
5733ad58e5 gdk: master clock: only process mapped & realized stages
When using Clutter embed inside a Gtk application, a stage might end
up realized but not visible. In this case we might discard doing any
kind of animation processing.

https://bugzilla.gnome.org/show_bug.cgi?id=754671
2015-09-07 18:17:09 +01:00
Lionel Landwerlin
6183eb3632 gdk: master-clock: disable vsync throttling
When running with a master clock based on the GdkFrameClock, we get
synchronized with the compositor, so no need for throttling rendering.

In particular when dealing with foreign windows, we run into deadlocks
in Mesa because of the way the Mesa wayland backend is implemented [1].

[1] : http://cgit.freedesktop.org/mesa/mesa/tree/src/egl/drivers/dri2/platform_wayland.c#n330

https://bugzilla.gnome.org/show_bug.cgi?id=754671
2015-09-07 18:17:09 +01:00
Lionel Landwerlin
4cb750928e winsys: wayland: destroy eglsurface when destroying associated native window
On Wayland deinit() of an onscreen buffer is going to destroy the
associated native window of an EGLSurface. So we should destroy the
EGLSurface as well otherwise we might end up confusing the GL driver.

We also currently guard against setting a EGL_NO_SURFACE as current
EGLSurface, but this shouldn't be a problem if we have a surfaceless
context. So we allow surface destruction under that condition.

https://bugzilla.gnome.org/show_bug.cgi?id=754667
2015-09-07 17:27:50 +01:00
Javier Jardón
6ea7fa9973 xwayland: Add missing include
https://bugzilla.gnome.org/show_bug.cgi?id=754621
2015-09-07 14:13:48 +01:00
Marek Chalupa
79f755bf0f launcher: find the right drm device
Instead of hard-coding /dev/dri/card0, find the device
that has boot_vga flag set or has been explicitly
assigned a seat id other than seat0

https://bugzilla.gnome.org/show_bug.cgi?id=753434
2015-09-07 08:42:21 -04:00
Marek Chalupa
1845bfe1b6 launcher: refactor handling errors in meta_launcher_new
Fill in missing error checks and use g_error, since any
error in this phase would lead to crash later anyway.
This way we'll at least know what went wrong.

Although it was not the patch's original intention, it fixes
https://bugzilla.gnome.org/show_bug.cgi?id=754520

https://bugzilla.gnome.org/show_bug.cgi?id=753434
2015-09-07 08:40:49 -04:00
Marek Chalupa
8e22bf5bc9 launcher: simplify getting session dbus proxy
Use path "/org/freedesktop/login1/session/self" instead of
getting session id and building the path manually

https://bugzilla.gnome.org/show_bug.cgi?id=753434
2015-09-07 08:40:20 -04:00
Marek Chalupa
c13ddafdb8 native: remove obsolete comment
There's not weston-launch anymore

https://bugzilla.gnome.org/show_bug.cgi?id=753434
2015-09-07 08:39:38 -04:00
Jonas Ådahl
94513726de wayland: Clean up surface role assignment
Use a better name, use GNOME conventions for error handling, open code the
client error reporting and send the error to the correct resource.
wl_subcompositor doesn't have a role error yet, so continue use some
other error. The only effect of this is error received in the client will
be a bit confusing, it will still be disconnected.

https://bugzilla.gnome.org/show_bug.cgi?id=754215
2015-09-07 17:41:14 +08:00
Emmanuele Bassi
dbec3be996 grid-layout: Clarify the scope of the orientation property
Just like GtkGrid, changing the orientation of a ClutterGridLayout does
not change the existing layout; the orientation property is only used as
a hint when adding new children.
2015-09-04 13:53:04 +01:00
Milo Casagrande
41e18f795a Updated Italian translation 2015-09-04 07:51:39 +00:00
Ting-Wei Lan
0aa4c4d43e build: Fix return value in meta-background.c
https://bugzilla.gnome.org/show_bug.cgi?id=754545
2015-09-04 11:47:34 +08:00
Ray Strode
6bd49c3dc8 kms-winsys: don't disable page flipping on EACCES
If the user switches VTs in the middle of a page flip, the
page flip operation may fail with EACCES. page flipping will
work next time the VT becomes active, so we shouldn't disable
page flipping in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=754540
2015-09-03 17:29:28 -04:00
Ray Strode
78c44ab132 kms-winsys: clean up error handling in _cogl_winsys_renderer_connect
If cogl fails to open the drm device, initialize gbm, or open the
egl display, then it closes the drm fd, uninitializes gbm, closes the
display and then calls _cogl_winsys_renderer_disconnect which does
most of those things again, on the, now deinitialized, members.

This commit removes the explicit failure handling in renderer_connect and
defers cleanup to disconnect.

https://bugzilla.gnome.org/show_bug.cgi?id=754540
2015-09-03 17:29:28 -04:00
Ray Strode
181176bdb1 kms-winsys: use correct surface format
gbm confusingly has two different format types, and cogl
is using the wrong one in some of its calls to gbm_surface_create

This commit fixes the calls that are wrong.

https://bugzilla.gnome.org/show_bug.cgi?id=754540
2015-09-03 17:29:27 -04:00
Owen W. Taylor
e3db4ab16a Avoid declaring variables in for loop to avoid upsetting older GCC
Older GCC only allows "for (int i" in explicit c99 mode - there's probably
no reason that we can't enable that, but avoiding the construct for
a fast fix.
2015-09-03 16:13:50 -04:00
Owen W. Taylor
614d6bd0f8 Nested X11: use KeymapNotify events to fix key state on FocusIn
If the user Alt-Tabs out of the window, we will be left thinking
the Alt key is still pressed since we don't see a release for it.

Solve this and other related issues for the nested X11 compositor
by selecting for KeymapStateMask which causes a KeymapNotify event
to be sent after each FocusIn, and when we get these events, update
the internal XKB state and send any necessary modifiers events to
clients.

https://bugzilla.gnome.org/show_bug.cgi?id=753948
2015-09-03 16:02:25 -04:00
Ray Strode
1d56d50fcd background: paint color matte for scaled and centered backgrounds
Some backgrounds don't fully fill the screen.  For those backgrounds
it's important to paint a color behind them to fill in the gaps.

This commit checks whether or not the background image textures take
up the entire monitor, and in the event they don't, draws a color
behind them (such as it would do if the background were
translucent).

https://bugzilla.gnome.org/show_bug.cgi?id=754476
2015-09-03 15:14:15 -04:00
Ray Strode
0ffd4254d9 background: simplify conditional in meta_background_get_texture
meta_background_get_texture only draws the bottom image texture
if
   1) the blend factor leaves the top image translucent
   or
   2) the top image is translucent from alpha

The latter case doesn't actually matter since we're using REPLACE
on the top image texture.

This commit drops the unnecessary check for the second case and
applies demorgans law to the conditional for clarity.

https://bugzilla.gnome.org/show_bug.cgi?id=754476
2015-09-03 15:14:15 -04:00
Florian Müllner
36eee04a21 Bump version to 3.17.91
Update NEWS.
2015-09-03 15:26:03 +02:00
Emmanuele Bassi
7ed96aabd8 grid: Use the proper orientation for the request mode
We automatically switch the request mode of the container depending on
the GridLayout's orientation, but we need to keep track of the request
mode during allocation, so that we don't get out of sync if the user
changed the request mode after adding the layout manager.

This change also brings us closer to the code in GtkGrid.
2015-09-03 14:18:33 +01:00
Emmanuele Bassi
b7707e2139 build: Tweak spaces in the silent rules
The spacing between the directive and the argument has changed inside
automake, so we need to match it with our own homegrown rules.
2015-09-03 12:21:35 +01:00
Emmanuele Bassi
90ee95d587 build: Update enum generation rules
Need to be aware of $srcdir, to allow for builddir != srcdir.
2015-09-03 12:21:02 +01:00
Emmanuele Bassi
6f29e6f406 build: Enable subdir-objects
Depend on a more recent version of automake, and use the
forward-compatible subdir-objects option.
2015-09-03 09:03:39 +01:00
Emmanuele Bassi
f01c28259f build: Add -Werror=maybe-uninitialized
Should help us catch more edge cases.
2015-09-03 08:59:52 +01:00
Emmanuele Bassi
ca5226513e Initialize out variables
Avoids a compiler warning with strict compilation flags.
2015-09-03 08:58:44 +01:00
Aurimas Černius
8a7304ee7d Updated Lithuanian translation 2015-09-02 21:13:29 +03:00
Dušan Kazik
41bde79cf6 Updated Slovak translation 2015-09-01 08:15:40 +00:00
Balázs Úr
5ae744c835 Updated Hungarian translation 2015-08-31 15:32:01 +00:00
Yosef Or Boczko
3bb58de170 Updated Hebrew translation 2015-08-30 11:12:55 +03:00
Emmanuele Bassi
dea5057fbd grid: Use the orientation of the request
We use the orientation of the grid to get the preferred size of the
layout, but we should be using the orientation of the request instead.
The preferred width has an orizontal orientation, and the preferred
height has a vertical orientation.

This allows us to refactor the get_preferred_* implementation into a
separate function.
2015-08-29 20:38:29 +01:00
Dušan Kazik
ed80a4bebb Updated Slovak translation 2015-08-29 15:58:00 +00:00
Tom Tryfonidis
6b7cfceb5e Updated Greek translation 2015-08-28 20:50:07 +00:00
Andika Triwidada
6bcbd1bfce Updated Indonesian translation 2015-08-28 13:02:13 +00:00
Jonas Ådahl
d3fdaa3232 MetaCursorSprite: Put renderer specific code in the renderer
There were lots of code handling the native renderer specific cases;
move these parts to the renderer. Note that this causes the X11 case to
always generate the texture which is a waste of memory, but his
regression will be fixed in a following commit.

The lazy loading of the texture was removed because it was eventually
always loaded anyway indirectly by the renderer to calculate the
current rect.

https://bugzilla.gnome.org/show_bug.cgi?id=744932
2015-08-28 09:55:12 +08:00
Jonas Ådahl
165050f8f9 backends: Get rid of meta-cursor-private.h
There is nothing special about the private API which only consists of
getters for renderer specific backing buffer. Lets them to the regular
.h file and treat them as part of the normal API.

https://bugzilla.gnome.org/show_bug.cgi?id=744932
2015-08-28 09:54:57 +08:00
Jonas Ådahl
68279e8a08 MetaWaylandPointer: Don't keep our own MetaCursorTracker pointer
There is no reason to, we can just retrieve it every time we need it.

https://bugzilla.gnome.org/show_bug.cgi?id=744932
2015-08-28 09:52:30 +08:00
Jonas Ådahl
cd1ce2cb0a MetaWaylandSurface: Make it a GObject
This way we can add signals and weak references without relying on
wl_signal, wl_listener etc.

https://bugzilla.gnome.org/show_bug.cgi?id=744932
2015-08-28 09:52:30 +08:00
Jonas Ådahl
b01f95cfdd Make MetaCursorSprite a GObject
To easier track lifetime and utilize other GObject features, make
MetaCursorSprite a GObject.

https://bugzilla.gnome.org/show_bug.cgi?id=744932
2015-08-28 09:52:30 +08:00
Jonas Ådahl
4b667d1e09 Rename MetaCursorReference to MetaCursorSprite
It isn't really a reference to a MetaCursor enum, but a reference
counted cursor sprite, and enum value.

https://bugzilla.gnome.org/show_bug.cgi?id=744932
2015-08-28 09:52:30 +08:00
Lionel Landwerlin
0e4d11bcd8 gdk: master clock: fix incorrect symbol use
https://bugzilla.gnome.org/show_bug.cgi?id=754134
2015-08-26 21:40:47 +01:00
Lionel Landwerlin
5b9c31a0ce gdk: fix memory corruption
g_hash_table_replace will free the list pointer we're modifying.
Let's just do memory management ourselves.

https://bugzilla.gnome.org/show_bug.cgi?id=754134
2015-08-26 21:40:41 +01:00
Piotr Drąg
fe8454d13f Updated Polish translation 2015-08-26 18:51:15 +02:00
Piotr Drąg
84ad306a65 Updated Polish translation 2015-08-26 17:38:58 +02:00
Chao-Hsiung Liao
53a6d16891 Updated Chinese (Taiwan) translation 2015-08-26 12:50:50 +00:00
Chao-Hsiung Liao
afd7597f2d Updated Chinese (Taiwan) translation 2015-08-26 12:26:24 +00:00