22826 Commits

Author SHA1 Message Date
Dimitris Spingos
1d04ea62ba Updated Greek translation 2014-01-07 09:37:20 +02:00
Adel Gadllah
0af4105458 winsys-glx: Fix swap region to remain disabled for old mesa
Commit a750f80c6aaa was supposed to enable it for newer mesa but was wrong,
fix that.
2014-01-06 22:02:16 +01:00
Daniel Drake
10c1903c72 Reduce server grabs during window creation
Remove some obvious server grabs from the window creation codepath,
also ones that are taken at startup.

During startup, there is no need to grab: we install the event handlers
before querying for the already-existing windows, so there is no danger
that we will 'lose' some window. We might try to create a window twice
(if it comes back in the original query and then we get an event for it)
but the code is already protected against such conditions.

When windows are created later, we also do not need grabs, we just need
appropriate error checking as the window may be destroyed at any time
(or it may have already been destroyed).

The stack tracker is unaffected here - as it listens to CreateNotify and
DestroyNotify events and responds directly, the internal stack
representation will always be consistent even if the window goes away while
we are processing MapRequest or similar.

https://bugzilla.gnome.org/show_bug.cgi?id=721345
2014-01-06 14:27:42 -06:00
Daniel Drake
69dfd07a7f meta_window_new: clean up error handling
The return code of XGetWindowAttributes() indicates whether an error
was encountered or not. There is no need to specifically check the error
trap.

The trap around XAddToSaveSet() was superfluous. We have a global error
trap to ignore any errors here, and there is no need to XSync() as GDK
will later ignore the error asynchronously if one is raised.

Also move common error exit path to an error label.

https://bugzilla.gnome.org/show_bug.cgi?id=721345
2014-01-06 14:25:32 -06:00
Daniel Drake
bc9b923d5c screen: use stack tracker for initial window query
In meta_screen_manage_all_windows() we can use our own stack
tracker to get the list of windows - no need to query X again.

A copy is needed because the stack gets modified as part of the loop.
Specifically, meta_stack_tracker_get_stack() at this time returns the
predicted stack, and meta_window_new() performs a few operations
(e.g. framing) which cause immediate changes to the predicted stack.

https://bugzilla.gnome.org/show_bug.cgi?id=721345
2014-01-06 14:23:43 -06:00
Daniel Drake
fef32fb0d4 frame: remove unnecessary server grab
meta_window_ensure_frame() creates its own grab and has a comment
claiming that it must be called under a grab too.

But the reasoning given in the comment does not seem relevant here.
We only frame non-override-redirect windows, so we are creating
the frame in response to MapRequest. There is no way that the child
could receive a MapNotify at this point, since that only happens
much later, once we go through the CALC_SHOWING queue and call
XMapWindow() from meta_window_show().

Remove the unnecessary grab.

https://bugzilla.gnome.org/show_bug.cgi?id=721345
2014-01-06 12:56:18 -06:00
Adel Gadllah
a750f80c6a winsys-glx: Reenable swap_region for llvmpipe and swrast
The bug that prevented MESA_copy_sub_buffer to work for swrast /
llvmpipe got fixed in mesa 10.1 git so enable it for mesa 10.1+.

https://bugzilla.gnome.org/show_bug.cgi?id=721450

When landing the patch, it was tweaked to #include "cogl-version.h" to
avoid a compiler warning about COGL_VERSION_ENCODE being implicitly
defined. -- Robert Bragg

Reviewed-by: Robert Bragg <robert@linux.intel.com>
(cherry picked from commit e7e216b1d3d151acf3fed619bd759692a989b4b4)
2014-01-06 17:17:17 +00:00
Daniel Drake
0e9491a415 Discourage server grabs
Server grabs are not as evil as you might expect, but there is agreement
in that their usage should be limited.

Server grabs can cause things to go rather wrong when mutter emits
a signal while it has grabbed the server. If the receiver of that signal
waits for a synchronous action performed by another client, then you
have a deadlock. This happens with Mali binary GLESv2 drivers :(

https://bugzilla.gnome.org/show_bug.cgi?id=721345
2014-01-06 11:06:28 -06:00
Daniel Drake
c7725ddf2a Remove meta_window_new_with_attrs
The compositor code used to handle X windows that didn't have a
corresponding MetaWindow (see commit d538690b), which is why the
attribute query is separated.

As that doesn't happen any more, we can clean up. No functional changes.

Suggested by Owen Taylor.

https://bugzilla.gnome.org/show_bug.cgi?id=721345
2014-01-06 11:06:06 -06:00
Rafael Ferreira
5c7ea17abd Updated Brazilian Portuguese translation
Fixes BGO#712175
2014-01-05 04:02:55 -02:00
Sphinx Jiang
9104c72677 Update Chinese simplified translation 2014-01-02 09:54:17 +08:00
Sphinx Jiang
5be190a98a Update Chinese simplified translation 2014-01-02 09:42:43 +08:00
Robert Bragg
9a879a7616 cogl-gst: video-sink: fix YV12/I420 support
This fixes a mistake in commit 637728dd89d51bc28 that was meant to fix
yv12/i420 support but when the patch was updated based on review to use
COGL_PIXEL_FORMAT_A instead of COGL_PIXEL_FORMAT_G the corresponding
glsl code wasn't also updated to sample the .a component.

(cherry picked from commit a02c55105c705471866df2d306879d8616289f2a)
2014-01-01 17:56:46 +00:00
Jasper St. Pierre
002c5b8f87 wayland: Don't keep track of the drm FD in the WaylandCompositor
As logind can give us a new FD at any time when it resumes. Theoretically,
this is still technically wrong, as the MetaCursorTracker holds onto it.
We'll fix this after we port to logind.
2013-12-31 19:22:16 -05:00
Jasper St. Pierre
1d3dbea20c meta-weston-launch: Don't use a GObject here
We don't need a complicated API anymore.
2013-12-31 19:22:16 -05:00
Jasper St. Pierre
ebe6e3180e meta-weston-launch: Call VT_ACTIVATE ourselves
We don't need any special permissions, so we don't need to go through
weston-launch to do so...
2013-12-31 19:22:16 -05:00
Jasper St. Pierre
a3de799939 wayland-surface: Remove inappropriate meta-weston-launch.h include 2013-12-31 19:20:58 -05:00
Rafael Ferreira
813892c7f1 Updated Brazilian Portuguese translation (what is going on? :| ) 2013-12-27 00:04:21 -02:00
Rafael Ferreira
498a8c9387 Updated Brazilian Portuguese translation (fixed something from previous commit) 2013-12-27 00:01:12 -02:00
Enrico Nicoletto
6b83d849fc Updated Brazilian Portuguese translation 2013-12-26 23:53:11 -02:00
Owen W. Taylor
0caf7381bb display: Don't leave focus on a window we are unmanaging when sending WM_TAKE_FOCUS
When we move focus elsewhere when unmanaging a window, we *need* to move
the focus, so if the target is globally active, move the focus to the
no-focus-window in anticipation that the focus will normally get moved
to the right window when the target window responds to WM_TAKE_FOCUS.

If the window doesn't respond to WM_TAKE_FOCUS, then focus will be left
on the no-focus-window, but there's no way to distinguish whether the
app will respond or not.

https://bugzilla.gnome.org/show_bug.cgi?id=711618
2013-12-24 11:30:14 -05:00
Owen W. Taylor
a42305edab Be willing to unfocus the grab window when we are unmanaging it
When we are unmanaging the grab window, we /need/ to unfocus it,
so we shouldn't bail out early from meta_window_focus().

https://bugzilla.gnome.org/show_bug.cgi?id=711618
2013-12-24 11:30:11 -05:00
Owen W. Taylor
c6a6d057a8 display: Don't leave focus on a window we are unmanaging when sending WM_TAKE_FOCUS
When we move focus elsewhere when unmanaging a window, we *need* to move
the focus, so if the target is globally active, move the focus to the
no-focus-window in anticipation that the focus will normally get moved
to the right window when the target window responds to WM_TAKE_FOCUS.

If the window doesn't respond to WM_TAKE_FOCUS, then focus will be left
on the no-focus-window, but there's no way to distinguish whether the
app will respond or not.

https://bugzilla.gnome.org/show_bug.cgi?id=711618
2013-12-24 11:29:20 -05:00
Owen W. Taylor
ed4fb0695e Be willing to unfocus the grab window when we are unmanaging it
When we are unmanaging the grab window, we /need/ to unfocus it,
so we shouldn't bail out early from meta_window_focus().

https://bugzilla.gnome.org/show_bug.cgi?id=711618
2013-12-24 11:29:19 -05:00
Florian Müllner
732c059235 Bump version to 3.11.3
Update NEWS.
3.11.3-wayland
2013-12-19 19:34:06 +01:00
Florian Müllner
addac8825d Bump version to 3.11.3
Update NEWS.
3.11.3
2013-12-19 18:59:52 +01:00
Fran Diéguez
dc39b295bb Updated Galician translations 2013-12-19 01:44:37 +01:00
Jasper St. Pierre
8e74880b55 window-actor: Fix optimization in get_paint_volume
We need to clip the paint volume to the unobscured region, not the
other way around...

https://bugzilla.gnome.org/show_bug.cgi?id=720630
2013-12-18 19:09:13 -05:00
Jasper St. Pierre
ef2b6e7d00 window-actor: Fix optimization in get_paint_volume
We need to clip the paint volume to the unobscured region, not the
other way around...

https://bugzilla.gnome.org/show_bug.cgi?id=720630
2013-12-18 18:43:39 -05:00
Owen W. Taylor
9c1b972ca1 Fix problems with focus tracking
When a client spontaneously focuses their window, perhaps in response
to WM_TAKE_FOCUS we'll get a FocusOut/FocusIn pair with same serial.
Updating display->focus_serial in response to FocusOut then was causing
us to ignore FocusIn and think that the focus was not on any window.

We need to distinguish this spontaneous case from the case where we
set the focus ourselves - when we set the focus ourselves, we're careful
to combine the SetFocus with a property change so that we know definitively
what focus events we have already accounted for.

https://bugzilla.gnome.org/show_bug.cgi?id=720558
2013-12-18 09:46:08 -05:00
Owen W. Taylor
6891ce95dc Fix problems with focus tracking
When a client spontaneously focuses their window, perhaps in response
to WM_TAKE_FOCUS we'll get a FocusOut/FocusIn pair with same serial.
Updating display->focus_serial in response to FocusOut then was causing
us to ignore FocusIn and think that the focus was not on any window.

We need to distinguish this spontaneous case from the case where we
set the focus ourselves - when we set the focus ourselves, we're careful
to combine the SetFocus with a property change so that we know definitively
what focus events we have already accounted for.

https://bugzilla.gnome.org/show_bug.cgi?id=720558
2013-12-18 09:40:32 -05:00
Owen W. Taylor
cb33e1942a meta_window_move_resize_internal: handle border size changes
Initial placement during meta_window_constrain() can result in changes
to the borders, so we need to recompute our border sizes after
constraining. This fixes incorrect window borders on
initially maximized windows.

https://bugzilla.gnome.org/show_bug.cgi?id=720417
2013-12-18 09:30:22 -05:00
Owen W. Taylor
b7e62d3ca5 meta_window_move_resize_internal: handle border size changes
Initial placement during meta_window_constrain() can result in changes
to the borders, so we need to recompute our border sizes after
constraining. This fixes incorrect window borders on
initially maximized windows.

https://bugzilla.gnome.org/show_bug.cgi?id=720417
2013-12-18 09:26:15 -05:00
Jasper St. Pierre
7009d1e470 wayland: Update to latest xdg-shell
We don't use the new maximize / fullscreen request system yet, leading
to broken maximization / fullscreen. This will be fixed in a followup.
2013-12-17 15:04:16 -05:00
Chun-wei Fan
74c01cdd0f Visual C++ Projects: Don't build conformance tests
...and drop these project files, as the way how the conformance
tests are built has been totally reworked.  Instead, in the future,
use NMake Makefiles to build them, which will be proposed later.
2013-12-16 09:27:41 +08:00
Emmanuele Bassi
ad39d3d1ae Make abicheck.sh output TAP
So that we can run it under the TAP harness like the rest of the
conformance test suite.
2013-12-12 18:51:11 +00:00
Emmanuele Bassi
b4044292d3 build: Ignore *.test files
Generated when enabling installed tests.
2013-12-12 18:51:11 +00:00
Emmanuele Bassi
b1eb412c23 tests: Use an internal setter for disabling vblank sync
Instead of using g_setenv().
2013-12-12 18:51:11 +00:00
Emmanuele Bassi
526d0ea884 conformance: Add more tests
Add back some deprecated and general purpose API tests. These are the
ones that were written already pretty much conforming to the GTest API
and style, and thus require minimal porting.
2013-12-12 18:51:11 +00:00
Emmanuele Bassi
7ec337f26f conformance: Add actor tests
Port the ClutterActor tests to the test API, and ensure they run under
the new TAP harness.
2013-12-12 18:51:11 +00:00
Emmanuele Bassi
2a660fa298 Fully rework the conformance test suite
The current conformance test suite is suboptimal in many ways.

All tests are built into the same binary, which makes adding new tests,
builting tests, and running groups of tests much more awkward than it
needs to be. The first issue, especially, raises the bar of contribution
in a significant way, while the other two take their toll on the
maintainer. All of these changes were introduced back when we had both
Clutter and Cogl tests in tree, and because we were building the test
suite for every single change; since then, Cogl moved out of tree with
all its tests, and we build the conformance test suite only when running
the `check` make target.

This admittedly large-ish commit changes the way the conformance test
suite works, taking advantage of the changes in the GTest API and test
harness.

First of all, all tests are now built separately, using their own test
suite as defined by each separate file. All tests run under the TAP
harness provided by GTest and Automake, to gather a proper report using
the Test Anything Protocol without using the `gtester` harness and the
`gtester-report` script. We also use the Makefile rules provided by GLib
to vastly simplify the build environment for the conformance test suite.

On top of the changes for the build and harness, we also provide new API
for creating and running test suites for Clutter. The API is public,
because the test suite has to use it, but it's minimal and mostly
provides convenience wrappers around GTest that make writing test units
for Clutter easier.

This commit disables all tests in the conformance test suite, as well as
moving the data files outside of the tests/data directory; the next few
commits will re-establish the conformance test suite separately so we
can check that everything works in a reliable way.
2013-12-12 18:51:11 +00:00
Milo Casagrande
7867c86c2b [l10n] Updated Italian translation. 2013-12-12 09:36:16 +01:00
Milo Casagrande
cee38c1672 [l10n] Updated Italian translation. 2013-12-12 09:36:01 +01:00
Florian Müllner
c54a19825b keybinding: Implement keybindings for moving windows between monitors
Currently the only way to move a window to another monitor via
keyboard is to start a move operation and move it manually using
arrow keys. We do have all the bits of a dedicated keybinding in
place already, so offer it as a more comfortable alternative.

https://bugzilla.gnome.org/show_bug.cgi?id=671054
2013-12-12 09:13:17 +01:00
Florian Müllner
27a0b8f87a Revert "Make tile preview a compositor plugin effect"
This reverts commit 21e94ed1094a31b90007089eca5174205d4861c9.
2013-12-12 09:09:44 +01:00
Stefano Facchini
21e94ed109 Make tile preview a compositor plugin effect
https://bugzilla.gnome.org/show_bug.cgi?id=665758
2013-12-12 09:08:17 +01:00
Florian Müllner
0fe5c4f957 keybinding: Implement keybindings for moving windows between monitors
Currently the only way to move a window to another monitor via
keyboard is to start a move operation and move it manually using
arrow keys. We do have all the bits of a dedicated keybinding in
place already, so offer it as a more comfortable alternative.

https://bugzilla.gnome.org/show_bug.cgi?id=671054
2013-12-12 09:08:17 +01:00
Colin Walters
389fade01b cogl-path: Export cogl_clip_push_from_path
It's needed by clutter; fixes the build of current Continuous.

https://bugzilla.gnome.org/show_bug.cgi?id=720287

Reviewed-by: Robert Bragg <robert@linux.intel.com>
2013-12-11 22:08:50 +00:00
Robert Bragg
d4aed66821 Check for cogl-path as a separate package
In Cogl 1.17 libcogl-path has been split out from libcogl and now has
its own corresponding cogl-path-1.0 pkg-config file which we check for
during build configuration.

Note: this bumps the required cogl version up to 1.17.1
2013-12-11 18:53:44 +00:00
Robert Bragg
52a69bb9ab Build and install cogl-path as a shared library
Since we now have more time to ensure that Clutter is updated to check
for the now separate cogl-path package as part of its build
configuration we are now making the package split, in line with Cogl
master.

Reviewed-by: Neil Roberts <neil@linux.intel.com>
2013-12-11 18:49:19 +00:00