~ubuntu-branches/ubuntu/vivid/mir/vivid

« back to all changes in this revision

Viewing changes to src/server/scene/default_coordinate_translator.cpp

  • Committer: Package Import Robot
  • Author(s): Ubuntu daily release, Alberto Aguirre, Ubuntu daily release
  • Date: 2014-11-20 16:41:15 UTC
  • mfrom: (1.1.78)
  • Revision ID: package-import@ubuntu.com-20141120164115-icb4r8ekhfuj1abj
Tags: 0.9.0+15.04.20141120.1-0ubuntu1
[ Alberto Aguirre ]
* New upstream release 0.9.0 (https://launchpad.net/mir/+milestone/0.9.0)
  - Enhancements:
    . New simpler API to configure and run a mir server.
    . The event loop is now based on GLib's main loop library instead of
      Boost.Asio.
    . For Android platforms, the server now sends buffer fence fds to its
      clients instead of potentially stalling the compositor thread waiting
      for them to be signalled.
    . New client debug interface to translate from surface to screen
      coordinates.
  - ABI summary: Servers need rebuilding, but clients do not;
    . Mirclient ABI unchanged at 8
    . Mircommon ABI bumped to 3
    . Mirplatform ABI bumped to 4
    . Mirserver ABI bumped to 27
  - Bug fixes:
    . Add a debug interface to translate from surface to screen coordinates
      (LP: #1346633)
    . Ensure a buffer requested by a surface is not delivered 
      after the surface is deleted (LP: #1376324)
    . Overlays are not displayed onscreen in some positions (LP: #1378326)
    . Server aborts when an exception is thrown from the main thread
      (LP: #1378740)
    . Fix race causing lost alarm notifications (LP: #1381925)
    . Avoid lifecycle notifications racing with connection release
      (LP: #1386646)
    . Improve error checking and reporting for the client library
     (LP: #1390388)
    . Mir demo-shell now detects power button using proper Linux scan codes
     (LP: #1303817)
    . A prompt session with an invalid application pid should be an error
      (LP: #1377968)
    . When XDG_RUNTIME_DIR is defined but pointing to a non-existing 
      directory use "/tmp" (LP: #1304873)
    . [regression] demo-shell bypass is not used on fullscreen surfaces if 
      there are windowed surfaces behind (LP: #1378706)
    . Mir upgrade through dist-upgrade installs incorrect platform
      (LP: #1378995)
    . Fix Mir progressbar example using internal glibc defines(LP: #239272)
    . Stop the default_lifecycle_event_handler raising SIGHUP while 
      disconnecting (LP: #1386185)
    . [regression] Mir fails to build with MIR_ENABLE_TESTS=OFF (LP: #1388539)
    . [regression] mir_demo_server_basic does not start (LP: #1391923)

[ Ubuntu daily release ]
* New rebuild forced

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright © 2014 Canonical Ltd.
 
3
 *
 
4
 * This program is free software: you can redistribute it and/or modify it
 
5
 * under the terms of the GNU General Public License version 3,
 
6
 * as published by the Free Software Foundation.
 
7
 *
 
8
 * This program is distributed in the hope that it will be useful,
 
9
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
 * GNU General Public License for more details.
 
12
 *
 
13
 * You should have received a copy of the GNU General Public License
 
14
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
15
 *
 
16
 * Authored by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
 
17
 */
 
18
 
 
19
#include "default_coordinate_translator.h"
 
20
#include "basic_surface.h"
 
21
 
 
22
namespace geom = mir::geometry;
 
23
namespace mf = mir::frontend;
 
24
namespace ms = mir::scene;
 
25
 
 
26
geom::Point ms::DefaultCoordinateTranslator::surface_to_screen(std::shared_ptr<mf::Surface> surface, int32_t x,
 
27
                                                               int32_t y)
 
28
{
 
29
    auto const scene_surface = std::dynamic_pointer_cast<ms::BasicSurface>(surface);
 
30
 
 
31
    return geom::Point{x + scene_surface->top_left().x.as_int(), y + scene_surface->top_left().y.as_int()};
 
32
}