Jan Ekström [Thu, 4 Dec 2014 09:16:16 +0000 (11:16 +0200)]
downstream: re-export used ivi-layout functionality
ico-uxf-weston-plugin uses some of these functions.
Change-Id: Id85878caa1ca78ddb6703a98ead57465bc27375c
Janos Kovacs [Thu, 27 Nov 2014 00:16:11 +0000 (02:16 +0200)]
downstream: cosmetic changes (tabulation etc)
Change-Id: I93a53f8e96cce7a4239b6f5bcc3415dfe44eb65e
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Nobuhiko Tanibata [Mon, 10 Mar 2014 08:44:08 +0000 (17:44 +0900)]
downstream: Add lancher of surface creator to display wl_shell clients.
Change-Id: I4d85e93ede2c7f87841a887c8e6a27530042d39c
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Janos Kovacs [Sun, 24 Aug 2014 15:32:28 +0000 (18:32 +0300)]
downstream: clients: listen to wl_shell_surface events
Change-Id: I4e6908b59caa881fdf10f772996e2d88aeaefdb5
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Fri, 1 Aug 2014 11:30:31 +0000 (14:30 +0300)]
downstream: clients: support for --no-ivi-surface command line option
Change-Id: Ia1345b1366f2cc831bd5a912edbc6893cfa2ef24
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Tue, 15 Jul 2014 20:35:34 +0000 (23:35 +0300)]
downstream: clients: set title for IVI applications
Change-Id: I56aa6c1a58faf37c5571ed02373598dfa7cf2993
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Sun, 24 Aug 2014 15:46:05 +0000 (18:46 +0300)]
downstream: add background support to ivi-shell
squeshed former packages:
3fca4f1b - add background to outputs (by Janos Kovacs)
d1a2e02b - make the background color configurable (by Janos Kovacs)
the background-color entry in the ivi-shell-section defines
the color of the background. Example:
[ivi-shell]
...
background-color=1.0, 1.0, 1.0
which defines a white background.
If the background-color entry is missing or the definition is
not correct the background will be black.
Change-Id: I083471be1a3a68b56da3d6a39235ed138113b2a0
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Tue, 26 Aug 2014 08:55:06 +0000 (11:55 +0300)]
downstream: ivi-layout: fix resizing by forcing the source rectangle size to buf size
Change-Id: Ibc8b3711417e07708ad37ea47086f45218df5944
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Sun, 24 Aug 2014 11:46:06 +0000 (14:46 +0300)]
downstream: ivi-shell-ext: send geometry hints to clients
Change-Id: Iacb816def8c2f5daa20529e53b60a2faeb382b8e
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Sun, 24 Aug 2014 10:14:44 +0000 (13:14 +0300)]
downstream: ivi-layout: extending ivi_layout_interface
the following functions added to the interface:
surfaceFind()
surfaceAddNotification
surfaceRemoveNotification
Change-Id: I2fae6261e2a161183e7594a72cb9c19acf5d1b35
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Sun, 24 Aug 2014 09:01:46 +0000 (12:01 +0300)]
downstream: ivi-layout: remove premature reset of surface event_mask
The surface event mask was reset in surface_prop_changed() that is
the bridging function to deliver the property change signal. Due
to the premature reset only the first notification on the subscriber
list had the correct the event mask.
Change-Id: I68bb53c4eb5d0873ca631ea7faa5574c2cbfbe53
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Tue, 12 Aug 2014 12:39:17 +0000 (15:39 +0300)]
downstream: ivi-shell: use float consistently for opacity properties in ivi-layer
Change-Id: I238dbc25b5d042c4cad6c1fd35fd7fd2b8f32bd3
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Tue, 12 Aug 2014 07:32:40 +0000 (10:32 +0300)]
downstream: ivi-shell: fix commiting in ivi-layer when render order changes
Change-Id: I18d4ab616f42d3f56a81d96b420fae7d422615d4
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Sat, 9 Aug 2014 08:44:11 +0000 (11:44 +0300)]
downstream: ivi-shell: start to use weston_view_unmap()
Change-Id: I777e491cca44c7bdd73da51538065f1c2dbad90e
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Fri, 22 Aug 2014 20:58:18 +0000 (23:58 +0300)]
downstream: ivi-layout: maintain a pointer to weston_view in 'struct ivi_layout'
Change-Id: Ic61c01615571becc16cf607342f7f5be2b5f302a
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Fri, 8 Aug 2014 23:53:56 +0000 (02:53 +0300)]
downstream: ivi-shell: fix the layout-layer clearing in commit_list_screen()
The original implementation initialized the list-head of
the layer's view_list and re-built the list by adding
the views of the visible surfaces to the list. This left
the layer_link of non-visible views to point to their
neighbours in the previous arrangement. This was no problem
as long as those views were not unmapped or destructed,
eg. a non-visible surface was removed.
The fixed version goes through on the list and initializes
the layer_link's making view destructions and unmappings safe.
Change-Id: I93b1398064228b5189782ac9030ff9515abd5283
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Fri, 8 Aug 2014 10:41:11 +0000 (13:41 +0300)]
downstream: ivi-shell: configure the ivi surface when created
Change-Id: I39c155b5430d6da191e87f60bf7aee30cbbacb16
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Mon, 21 Jul 2014 21:05:54 +0000 (00:05 +0300)]
downstream: ivi-shell: add get_wl_shell_info() function
get_wl_shell_info() is meant to be used by controllers
to access shell related data such as pid of the surface
creator and the title of the surface.
Change-Id: I8aa9090ba9e655e87d02d07e8f6bad2792db3149
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Wed, 23 Jul 2014 07:06:16 +0000 (10:06 +0300)]
downstream: ivi-shell/layout: add get_weston_surface() function to ivi_layout_interface
Change-Id: If6c60f71ccff184a485895511d50837a04e2658c
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Tue, 22 Jul 2014 07:24:40 +0000 (10:24 +0300)]
downstream: ivi-application-protocol: adding id_surface argument to wl_shell_info event
Change-Id: I61fdae3fcc2fea02117af4f73e5840ff896fbc11
Signed-off-by: Janos Kovacs <jankovac503@gmail.com>
Janos Kovacs [Thu, 27 Nov 2014 14:26:40 +0000 (16:26 +0200)]
downstream: avoiding confusion with get_instance() variants (layer vs. shell)
Change-Id: I63d8b3b8a15857bbea41fbb4ab1a956687473229
Janos Kovacs [Mon, 14 Apr 2014 08:00:51 +0000 (17:00 +0900)]
downstream: Provide IVI-shell extensions again (wl-shell, wl-shell-info, etc)
squashed former commits:
5ff3c818fadd - Supporting wl_shell_info again. (by Nobuhiko Tanibata)
8855726cb4ba - Provide IVI-Shell extensions functions again (by Manuel Bachmann)
Change-Id: I10b9425b78fb518dba162bcf88a2a9d97b47249d
Philippe Coval [Fri, 4 Jul 2014 09:13:24 +0000 (11:13 +0200)]
packaging: Initial packaging of Weston 1.6 IVI Shell for Tizen
Squashed all of the older packaging changes into a single
initialization commit, as the Weston 1.6 rebase will bring us
to a clean slate in any case.
Now depends on Weston 1.6, as well as libwayland-client and
libwayland-server 1.6. Version has been bumped to 0.1.8.
Base for the IVI Shell patches is Nobuhiko Tanibata's
upstream branch weston-ivi-shell-1.6.0-WIP-12.
squashed Weston 1.5 IVI Shell commits:
8117bcf - packaging: Intial packaging for Tizen on 1.5.0
115867c - packaging: use upstream tag
c2c742f - packaging: dont overload regular weston files
5fe3ac7 - packaging: update config
ec16a2a - packaging: enabled desktopshell
7520753 - packaging: install ivi headers
b373015 - packaging: Build weston-clients to weston-ivi-shell
0ba60de - packaging: Bump to 0.1.7
a69fec0 - Revert "packaging: use upstream tag"
90fb16f - packaging: fix client installing pathes
Change-Id: I1c68d769c16c3e6a7c2445ce4e5034601aa2ea7d
Jan Ekström [Fri, 28 Nov 2014 10:27:33 +0000 (12:27 +0200)]
downstream: backport ivi-shell wip-12: remove weston_surface_set_role() call
Not available in Weston 1.6 yet.
Change-Id: I03307c4f1eaee58debeeeceb6f8fab46c3a10dd9
Nobuhiko Tanibata [Wed, 3 Dec 2014 04:06:36 +0000 (13:06 +0900)]
ivi-shell: ivi-layout, ivi_layout_surface_get_size
This is used by screenshot per surface.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Nobuhiko Tanibata [Thu, 25 Sep 2014 06:42:38 +0000 (15:42 +0900)]
ivi-shell: Support xwayland
- For the time being, id_surface is automatically assigned from
0xfffffffff.
- several shell_interfaces are emtpy because it shall not be requested
by client but ivi-shell shall manage them by using ivi-layout
according to business logic.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Nobuhiko Tanibata [Thu, 6 Nov 2014 04:44:18 +0000 (13:44 +0900)]
ivi-shell: reference implementation of input panel for ivi-shell
- introduces ivi-shell/input-panel-ivi.c which is basically copied
from desktop shell. It shall be improvaded to remove duplicate
implementation.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Nobuhiko Tanibata [Mon, 24 Nov 2014 05:28:33 +0000 (14:28 +0900)]
clients: support ivi-application.xml for clients/window.c
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Nobuhiko Tanibata [Wed, 15 Oct 2014 03:13:14 +0000 (12:13 +0900)]
clients: support ivi-application.xml for clients/simple-egl.c
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Nobuhiko Tanibata [Wed, 15 Oct 2014 03:09:35 +0000 (12:09 +0900)]
clients: support ivi-application.xml for clients/simple-shm.c
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Nobuhiko Tanibata [Thu, 6 Mar 2014 02:03:05 +0000 (11:03 +0900)]
ivi-shell: a reference of weston.ini for ivi-shell and ivi-hmi-controller.
- introduces ivi-shell/weston.ini.in
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Nobuhiko Tanibata [Tue, 11 Mar 2014 02:54:45 +0000 (11:54 +0900)]
data: add reference image files for weston-ivi-shell-user-interface
- introduces reference images used by weston-ivi-shell-user-interface.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Nobuhiko Tanibata [Mon, 27 Oct 2014 02:17:51 +0000 (11:17 +0900)]
clients: a reference implementation of UI client how to use ivi-hmi-controller.
- introduces ivi-shell-user-interface.c
This is launched from hmi-controller by launch_hmi_client_process and
invoke a
client process.
The basic flow is as followed,
1/ process invoked
2/ read configuration from weston.ini.
3/ draw png file to surface according to configuration of weston.ini
4/ all parts of UI are ready. request "UI_ready" to draw UI.
5/ Enter event loop
6/ If a surface receives touch/pointer event, followings are invoked
according
to type of event and surface
6-1/ If a surface to launch ivi_application receive touch up, it execs
ivi-application configured in weston.ini.
6-2/ If a surface to switch layout mode receive touch up, it sends a
request,
ivi_hmi_controller_switch_mode, to hmi-controller.
6-3/ If a surface to show workspace having launchers, it sends a
request,
ivi_hmi_controller_home, to hmi-controller.
6-4/ If touch down events happens in workspace,
ivi_hmi_controller_workspace_control is sent to slide workspace.
When control finished, event:
ivi_hmi_controller_workspace_end_control
is received.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Nobuhiko Tanibata [Tue, 24 Jun 2014 14:06:02 +0000 (23:06 +0900)]
ivi-shell: a reference implementation how to use ivi-layout internal APIs
- hmi-controller.so
- introduces hmi-controller.so
The library is used to manage layout of surfaces/layers. Layout change
is triggered by ivi-hmi-controller protocol, ivi-hmi-controller.xml. A
reference how to use the protocol, see ivi-shell-user-interface.c.
In-Vehicle Infotainment system usually manages properties of
surfaces/layers by only a central component which decide where
surfaces/layers shall be. This is differenct use case from desktop
style; each application can request property of its window via xdg-shell
protocol, like fullscreen and set its to top level. In-Vehicle
Infortainment system doesn't allow each application to chagen them from
its application because of safty reasons. The concept of layer is
simillar with a use case of cursor layer of Destop. For In-Vehicle
Infortainment system, it is extended to all applications. For example,
rearview camera application is assigned to a layer to group several
surfaces, e.g. captured image and drawing lines separately. Central
manaegr can control property of the layer of rearview camera.
This reference show examples to implement the central component as a
module of weston.
Default Scene graph of UI is defined in hmi_controller_create. It
consists of
- In the bottom, a base layer to group surfaces of background, panel,
and buttons
- Next, a application layer to show application surfaces.
- Workspace background layer to show a surface of background image.
- Workspace layer to show launcher to launch application with icons.
Paths to binary and icon are defined in weston.ini. The width of
this layer is longer than the size of screen because a workspace
has several pages and is controlled by motion of input.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Nobuhiko Tanibata [Mon, 24 Nov 2014 05:13:30 +0000 (14:13 +0900)]
protocol: ivi hmi controller protocol to set up IVI style UI
- introduces ivi-hmi-controller.xml
This protocol realizes following features,
- UI ready
- changing modes; tiling, side by side, full_screen, and random
- Give control a surface; workspace to be controlled by using ivi layout
APIs
- Display/undisplay a surface; home contains sevaral workspaces to
launch applications
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Nobuhiko Tanibata [Wed, 15 Oct 2014 02:26:29 +0000 (11:26 +0900)]
ivi-shell: add the shell plugin for In-Vehicle Infotainment system
- ivi-shell.so
- introduces ivi-shell/ivi-shell.[ch]
In-Vehicle Infotainment system traditionally manages surfaces with
global identification. A protocol, ivi_application, supports such a
feature by implementing a request, ivi_application::surface_creation
defined in ivi_application.xml.
The ivi-shell explicitly loads ivi-layout.so and a module to add
business logic like how to layout surfaces by using ivi-layout APIs.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Nobuhiko Tanibata [Tue, 6 May 2014 08:25:31 +0000 (17:25 +0900)]
ivi-shell: add IVI layout APIs
- ivi-layout.so
- introduces ivi-layout-export.h, ivi-layout.[ch]
API set of controlling properties of surface and layer which groups
surfaces. An unique ID whose type is integer is required to create
surface and layer. With the unique ID, surface and layer are identified
to control them. The API set consists of APIs to control properties of
surface and layers about followings,
- visibility.
- opacity.
- clipping (x,y,width,height).
- position and size of it to be displayed.
- orientation per 90 degree.
- add or remove surfaces to a layer.
- order of surfaces/layers in layer/screen to be displayed.
- commit to apply property changes.
- notifications of property change.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Nobuhiko Tanibata [Mon, 24 Nov 2014 05:02:31 +0000 (14:02 +0900)]
protocol: add interface ivi_application extension
- introduces ivi-application.xml
Many applications in an IVI-system are special single-purpose
applications that have a very specific role in the whole IVI UI, for
example a rear camera, speedometer, map, etc. The IVI system vendor
specifies what these are and how they integrate into the UI. They also
vary between particular IVI systems. This is why we use (system-)global,
unique, pre-determined ID numbers to tell what wl_surface is which
application, instead of writing specific shell requests for each one.
Using ID numbers allows vendors to easily invent new component
applications without extending or breaking the actual Wayland protocol.
In IVI-systems, the ID is a standard concept already used in several
APIs, with a vendor-specified global definition of ID assignments.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Nobuhiko Tanibata [Wed, 29 Jan 2014 06:53:59 +0000 (15:53 +0900)]
ivi-shell: add README for ivi-shell
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Kristian Høgsberg [Wed, 29 Jan 2014 06:55:09 +0000 (15:55 +0900)]
downstream: This vfunc lets us read out a rectangle of pixels from the currently attached surface buffer.
Change-Id: Ia12d01fd0d157654602a2c46dd5874218252dd2f
Imran Zaman [Thu, 27 Nov 2014 17:45:12 +0000 (19:45 +0200)]
downstream: Fixed Crosswalk Bug XWALK-2800
Crosswalk does not support multiple inputs and hence need to disable
the creation of multiple seats.
Change-Id: Ib6157ce8c734be07b407e08d10b42a3e33e99abb
Signed-off-by: Imran Zaman <imran.zaman@intel.com>
Imran Zaman [Tue, 18 Nov 2014 15:03:42 +0000 (17:03 +0200)]
downstream: Multiseat support for drm/wayland backends
Change-Id: I04f04df98c2f76cf09b5d4d14867f918919aeb15
Signed-off-by: Imran Zaman <imran.zaman@intel.com>
Imran Zaman [Tue, 18 Nov 2014 14:07:11 +0000 (16:07 +0200)]
downstream: Added string conversion utility functions
Change-Id: I50900852311604a8c31313bbfb1d137c495d2269
Signed-off-by: Imran Zaman <imran.zaman@intel.com>
Quanxian Wang [Thu, 25 Sep 2014 02:04:11 +0000 (04:04 +0200)]
downstream: compositor-drm: Work around page flip not setting tiling mode on BYT
The page flip ioctl() doesn't switch the tiling mode on BYT. That causes
cause display corruption when doing the renderer switch, since the dumb
buffer is untiled and the back buffers used by the GL renderer are use
X tiling.
Change-Id: I2f03ac44c1aa15e15b5a2a394932e94af2654124
Author: Quanxian Wang <quanxian.wang@intel.com>
Signed-off-by: Manuel Bachmann <manuel.bachmann@open.eurogiciel.org>
Rafael Antognolli [Thu, 25 Sep 2014 01:57:09 +0000 (03:57 +0200)]
downstream: Hack to allow selecting a default output
This code originally by Rafael Antognolli <rafael.antognolli@intel.com>
was commited by Stephane Desneux <stephane.desneux@open.eurogiciel.org>
as a packaging patch.
Change-Id: I9c8a452b0bd9369217578fdf6cf43d86e11f45c6
Signed-off-by: Manuel Bachmann <manuel.bachmann@open.eurogiciel.org>
Stephane Desneux [Thu, 25 Sep 2014 01:42:25 +0000 (03:42 +0200)]
downstream: allow regular users to launch Weston
Change-Id: I04ac3457aebdcd629ee70e6915f71bce89f9cea8
Author: Stephane Desneux <stephane.desneux@open.eurogiciel.org>
Signed-off-by: Manuel Bachmann <manuel.bachmann@open.eurogiciel.org>
Pekka Paalanen [Fri, 19 Sep 2014 10:40:14 +0000 (13:40 +0300)]
configure.ac: bump version to 1.6.0
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Olivier Blin [Tue, 16 Sep 2014 17:13:17 +0000 (19:13 +0200)]
editor: do not crash when text input manager is not available
[Pekka Paalanen: whitespace fix]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Olivier Blin [Tue, 16 Sep 2014 17:13:16 +0000 (19:13 +0200)]
keyboard: do not crash when input panel is not available
[Pekka Paalanen: whitespace fix]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Jason Ekstrand [Mon, 15 Sep 2014 19:10:27 +0000 (12:10 -0700)]
compositor-x11: Rename the output make to "weston-X11"
Previously all outputs in the X11 backend had the make "xwayland" which is
confusing. Now they have something that makes a little more sense.
Ondřej Majerech [Sat, 13 Sep 2014 14:35:45 +0000 (16:35 +0200)]
window: Don't needlessly sync parent and geometry
When a toytoolkit client redraws, the toolkit syncs the parent and
geometry. If a client redraws often (such as the terminal drawing a huge
amount of output), this can spam the compositor with requests and may
result in the client's eventual being killed.
We don't need to send requests for changing the geometry or parent if
these haven't changed. So remember the last geometry and parent, and
update them only if needed.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=83297
Signed-off-by: Ondřej Majerech <majerech.o@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Pekka Paalanen [Fri, 12 Sep 2014 09:45:08 +0000 (12:45 +0300)]
configure.ac: bump version 1.5.93 for rc2
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Pekka Paalanen [Fri, 12 Sep 2014 09:07:43 +0000 (12:07 +0300)]
libinput: default to INFO log level
Set the default logging level from libinput to INFO. This matches better
the behaviour of the old input backend, and prints the found input
devices into Weston's log.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Acked-by: Jonas Ådahl <jadahl@gmail.com>
Jonas Ådahl [Thu, 11 Sep 2014 21:35:58 +0000 (23:35 +0200)]
libinput-device: Don't get initial key states
Initial key state is no pressed keys, and the libinput_device_get_keys
function was deprecated in libinput 0.6.0.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Peter Hutterer [Tue, 9 Sep 2014 03:02:25 +0000 (13:02 +1000)]
libinput: normalize WL_CALIBRATION before passing it to libinput
WL_CALIBRATION, introduced in weston-1.1, requires the translation component
of the calibration matrix to be in screen coordinates. libinput does not have
access to this and it's not a very generic way to do this anyway. So with
the libinput backend, WL_CALIBRATION support is currently broken (#82742).
This cannot be fixed in libinput without changing its API for this specific
use-case.
This patch lets weston take care of WL_CALIBRATION. It takes the original
format and normalizes it before passing it to libinput. This way libinput
still does the coordinate transformation, weston just needs to provide the
initial configuration.
Note that this needs an updated libinput, otherwise libinput will try to
transform coordinates as well.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=82742
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Ondřej Majerech [Thu, 11 Sep 2014 13:53:15 +0000 (15:53 +0200)]
compositor: Don't free an uninitialised pointer.
When backend_init returns NULL, we goto out_signals, which wants to
free(modules), but in this particular code path, modules hasn't been
initialised leading to a "Double-free or corruption" error message.
Initialising modules to NULL makes the free a no-op in this scenario.
Signed-off-by: Ondřej Majerech <majerech.o@gmail.com>
Reviewed-by: Ryo Munakata <ryomnktml@gmail.com>
Bill Spitzak [Wed, 20 Aug 2014 01:13:11 +0000 (18:13 -0700)]
image: don't print redundant error
This error is printed by load_image() now
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Bill Spitzak [Wed, 20 Aug 2014 01:13:10 +0000 (18:13 -0700)]
load_image: always print a message on failure if filename is not empty
It was rather inconsistent before. This may help users figure out why
backgrounds and icons don't show up. A better api where the error can
be queried might be nice, but this seems sufficient for current Weston use.
[Pekka Paalanen: removed one stray space.]
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Bill Spitzak [Wed, 20 Aug 2014 01:13:09 +0000 (18:13 -0700)]
parse_options: fail on more malformed options
Fail on trailing text after numbers, such as --width=100mm
Fail on any text after booleans, such as --flag=false
Also fixed reading of memory after the null terminator of a long
option with no = sign in it.
[Pekka Paalanen: some whitespace style fixes.]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Derek Foreman [Wed, 10 Sep 2014 20:37:33 +0000 (15:37 -0500)]
cosmetic: update comments that refer to weston_surface_update_transform()
weston_surface_update_transform() no longer exists, except in comments.
Fix that.
[Pekka Paalanen: don't lose the full comment in compositor-drm.c.]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Pekka Paalanen [Wed, 10 Sep 2014 12:10:30 +0000 (15:10 +0300)]
Partially revert "xdg-shell: Add show_window_menu request"
This reverts the parts of commit
81ff075bf48c55cd07e37784e20c310fa52ed926
that touch window.c.
This brings the toytoolkit window context menus back, until someone
implements the xdg-shell equivalent in the compositor.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=82972
Acked-by: Jasper St. Pierre <jstpierre@mecheye.net>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Marek Chalupa [Mon, 1 Sep 2014 15:20:33 +0000 (17:20 +0200)]
xdg-shell: fix maximizing in multi-head setup
Set the right position of maximized window. Up until now we ignored
output's "position" and were using only the working area
of output which is in output-relative coordinates. This led to
showing the maximized window always on the first output.
This, along with the previous patch, fixes
https://bugs.freedesktop.org/show_bug.cgi?id=82967
Signed-off-by: Marek Chalupa <mchqwerty@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Marek Chalupa [Mon, 8 Sep 2014 10:34:20 +0000 (12:34 +0200)]
xdg-shell: update shsurf->output when maximizing
shsurf->output is the output that user expects the shell surface
is on. When maximizing, we don't have any explicit setting of the output
like in the case of fullscreening, so set the output to the one that
the surface is currently on. In the case that the surface is not mapped yet,
(if it ever happens) use the same heuristics as for fullscreening.
This fixes the size sent with configure event, when maximizing a window.
The size is now picked up by the correct output, but the maximized
window position is still wrong. [Pekka Paalanen]
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=82967
Signed-off-by: Marek Chalupa <mchqwerty@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Jonas Ådahl [Mon, 8 Sep 2014 17:33:41 +0000 (19:33 +0200)]
input: Schedule pointer sprite repaint when cursor is set
If a cursor was set with wl_pointer.set_cursor but not in combination
with an action that has the side effect of damaging the region where the
cursor is positioned, it would not be drawn. This patch explicitly
schedules a repaint of the pointer sprite when it is set.
clickdot is updated to illustrate the bug; when moving the pointer over
clickdot, the pointer is hidden. When not having moved the pointer for
500 ms it is made visible using wl_pointer.set_pointer.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Giulio Camuffo [Sat, 6 Sep 2014 13:18:02 +0000 (16:18 +0300)]
compositor: fix memory corruption when removing an output
The destructor set on the wl_output resources needs the weston_output
to be allocated, because it removes the resource from its list.
So unset the destructor on all the resources when destroying an
output.
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Ryo Munakata [Fri, 5 Sep 2014 22:32:51 +0000 (07:32 +0900)]
main: don't leak option strings
[Pekka Paalanen: fix a long line]
Signed-off-by: Ryo Munakata <ryomnktml@gmail.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Ryo Munakata [Fri, 5 Sep 2014 22:32:05 +0000 (07:32 +0900)]
compositor: extract choose_default_backend and create_listening_socket
Extract these two new functions from main() to improve readability.
Refactoring only, no functioncal changes.
[Pekka Paalanen: commit message]
Signed-off-by: Ryo Munakata <ryomnktml@gmail.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Giulio Camuffo [Fri, 5 Sep 2014 20:26:33 +0000 (23:26 +0300)]
compositor: remove unused signal
The move_signal in weston_output isn't used, and not even initialized,
so anything trying to listen to it will crash on wl_signal_add().
Instead of it, the 'output_moved_signal' in weston_compositor is
used, so remove it.
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Jason Ekstrand [Sat, 6 Sep 2014 16:01:28 +0000 (09:01 -0700)]
Fix a copy-paste error in weston_surface_commit_state
Pekka Paalanen [Fri, 5 Sep 2014 12:05:56 +0000 (15:05 +0300)]
configure.ac: bump version to 1.5.92 for rc1
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Pekka Paalanen [Fri, 5 Sep 2014 11:45:09 +0000 (14:45 +0300)]
fix asprintf warnings
Fix recently introduced compiler warnings:
desktop-shell/shell.c: In function 'shell_configuration':
desktop-shell/shell.c:588:10: warning: ignoring return value of
'asprintf', declared with attribute warn_unused_result [-Wunused-result]
src/screenshooter.c: In function ‘screenshooter_binding’:
src/screenshooter.c:291:10: warning: ignoring return value of
‘asprintf’, declared with attribute warn_unused_result [-Wunused-result]
src/text-backend.c: In function ‘text_backend_configuration’:
src/text-backend.c:944:10: warning: ignoring return value of ‘asprintf’,
declared with attribute warn_unused_result [-Wunused-result]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Marek Chalupa [Tue, 2 Sep 2014 09:35:12 +0000 (11:35 +0200)]
xdg-shell: handle clients launched in fullscreen
When client is lauched in fullscreen, it is placed on the
first output, because it is not mapped and
shell_surface_set_output() therefore sets default output.
Since we have no better way how to position newly created windows,
(http://lists.freedesktop.org/archives/wayland-devel/2014-May/thread.html#14568)
set the output to the one that has currently focus. Priority has
the touch focus, then pointer and then keyboard focus.
This fixes bug
https://bugs.freedesktop.org/show_bug.cgi?id=69780
Signed-off-by: Marek Chalupa <mchqwerty@gmail.com>
Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Derek Foreman [Thu, 4 Sep 2014 19:31:30 +0000 (14:31 -0500)]
matrix-test: fix units in report
The matrix-test speed tests are calculated in ns but some printed the
units as us
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Derek Foreman [Thu, 4 Sep 2014 15:23:05 +0000 (10:23 -0500)]
touch-input: Don't dereference NULL pointer during full screen fade
If a full screen program is fading out and a touch start happens, it
will result in a NULL pointer dereference when weston_touch_set_focus
tries to derefernce view->surface->resource.
Instead, this patch sets the focus to NULL, which should be the
same as if the program was destroyed during the touch anyway.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=78706
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Xiong Zhang [Thu, 12 Jun 2014 03:06:25 +0000 (11:06 +0800)]
clients: Maximize window when double click on title bar
Signed-off-by: Xiong Zhang <panda0626@gmail.com>
Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Boyan Ding [Sat, 30 Aug 2014 02:33:23 +0000 (10:33 +0800)]
xwm: Do not activate override redirect windows
We shouldn't do WM-y things on an O-R window, including setting input
focus to it.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=81273
Signed-off-by: Boyan Ding <stu_dby@126.com>
Tested-by: Ryo Munakata <ryomnktml@gmail.com>
Acked-by: Christopher Michael <cp.michael@samsung.com>
Jonny Lamb [Wed, 20 Aug 2014 09:27:10 +0000 (11:27 +0200)]
desktop-shell: implement touch popup grabs
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Ryo Munakata [Wed, 3 Sep 2014 16:56:53 +0000 (01:56 +0900)]
pixman-renderer: copy_to_hw_buffer: don't leak output_region
This was reported by Valgrind.
Signed-off-by: Ryo Munakata <ryomnktml@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Derek Foreman [Mon, 1 Sep 2014 15:33:28 +0000 (10:33 -0500)]
pixman-renderer: fail to zoom more gracefully
When zoom is activated in the pixman rendered the log is filled with warnings
and all rendering stops. With this patch the warning is generated once and
rendering continues without zooming.
Closes bug 80258
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=80258
Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Boyan Ding [Wed, 3 Sep 2014 09:25:30 +0000 (17:25 +0800)]
xwm: Check whether the seat is NULL when needed in weston_wm_handle_button
XCB and wayland input event handling exists together in xwm, which can
cause problems. weston_wm_handle_button is called via XCB events, while
it calls weston_wm_pick_seat_for_window, which uses info from compositor
(pure wayland). It is also true in setting and removing flags of frames.
Races can happen in between, when resize of moving flag of the frame is
still set while the button has been released, the picked seat will be
NULL in weston_wm_handle_button, causing crash. We can safely ignore
moving or resizing if this happens. The same applies to
c06a180d.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=82827
Signed-off-by: Boyan Ding <stu_dby@126.com>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Giulio Camuffo [Thu, 28 Aug 2014 16:44:10 +0000 (19:44 +0300)]
compositor: add an option to set the default numlock value
Add a new "numlock-on" option in the [keyboard] section of weston.ini
which, if set to true, is used to enable the numlock of the keyboards
attached at startup.
Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Giulio Camuffo [Thu, 28 Aug 2014 16:44:09 +0000 (19:44 +0300)]
compositor: add a way to change the keyboard locks
This adds a function weston_keyboard_set_locks() which can be used to
change the state of the num lock and the caps locks, changing the leds too.
Only the evdev and libinput backends supports this, since it doesn't make
sense for embedded sessions.
Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Pekka Paalanen [Thu, 28 Aug 2014 08:41:26 +0000 (11:41 +0300)]
shell: quit weston, if weston-desktop-shell dies early
If weston-desktop-shell dies soon after launch, or maybe cannot be
executed at all, let weston exit rather than letting the user stare at a
black screen.
But, do not exit weston, if weston-desktop-shell dies later, as the user
may already have apps open, and those apps would likely still function
correctly. This gives the user the opportunity to save his work and
close the apps properly.
This should make one class of "I see only black screen" failures obvious.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Arnaud Vrac [Mon, 25 Aug 2014 18:56:52 +0000 (20:56 +0200)]
pixman-renderer: free shadow buffer on renderer destruction
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Arnaud Vrac [Mon, 25 Aug 2014 18:56:49 +0000 (20:56 +0200)]
desktop-shell: properly set background widget as opaque
Toytoolkit resets the opaque region which was set manually using the
wayland protocol directly, so use the widget API instead.
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Arnaud Vrac [Mon, 25 Aug 2014 18:56:48 +0000 (20:56 +0200)]
simple-egl: fix opaque and 16 bits mode options
In those cases we were writing to the wrong EGL config attribute.
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Ryo Munakata [Thu, 28 Aug 2014 09:35:27 +0000 (18:35 +0900)]
multi-resource: remove an unnecessary call of wl_display_get_fd()
Signed-off-by: Ryo Munakata <ryomnktml@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Ryo Munakata [Tue, 26 Aug 2014 12:59:41 +0000 (21:59 +0900)]
simple-shm: remove an unnecessary call of wl_display_get_fd()
Reviewed-by: Nils Chr. Brause <nilschrbrause@gmail.com>
Pekka Paalanen [Wed, 27 Aug 2014 10:31:26 +0000 (13:31 +0300)]
compositor: leave no zombie behind
When SIGCHLD fires, we may have more than one zombie to be collected.
Run waitpid() in a loop until no more zombies are found, and clean them
all up.
It looks like the SIGCHLD signalfd does not trigger again for remaining
zombies, so we need the loop.
This works around a crash in text_backend_notified_destroy, which ends
up using stale input_method.client if the sigchld handler is not called.
The crash could be triggered by removing both weston-desktop-shell and
weston-keyboard, so that both would try to respawn and give up, and then
quitting Weston.
Cc: rawoul@gmail.com
Cc: Boyan Ding <stu_dby@126.com>
Cc: Derek Foreman <derekf@osg.samsung.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Pekka Paalanen [Wed, 27 Aug 2014 09:11:53 +0000 (12:11 +0300)]
shell: fix race on desktop-shell exit
The desktop shell plugin registers both a wl_client destroy signal
listener, and a sigchld handler, when launching weston-desktop-shell.
However, nothing guarantees in which order do the wl_client destructor
and the sigchld handler run.
Luckily, the sigchld handler cannot interrupt any code, because we
handle the signal via signalfd, which means it is handled like any event
in the compositor's main event loop.
Still, shell.c has a race, that when lost, can cause a crash, as
described in bug #82957.
If the sigchld handler happens to run first, it will try to launch a new
weston-desktop-shell without removing the destroy listener from the old
wl_client first. This leads to list corruption, that may cause a crash
when the old wl_client gets destroyed.
Simply removing the destroy listener in the sigchld handler is not
enough, because respawning sets shell->child.client pointer, and if
the wl_client destructor runs after, it will reset it to NULL.
OTOH, the wl_client destroy handler cannot reset shell->child.process,
because that would cause the sigchld handler in weston core to not find
the process tracker anymore, and report that an unknown process exited.
Turns out, that to make everything work, we would need to wait for both
the wl_client destructor and the sigchld handler to have run, before
respawn. This gets tricky.
Instead, solve the problem by removing shell->child.process. Use the new
weston_client_start() which automatically creates and manages the struct
weston_process. The shell does not need to know about the process exit,
it only needs to know about the client disconnect. Weston-desktop-shell
will never attempt to reconnect, and it would not work even if it did,
so disconnect is equivalent to weston-desktop-shell exiting.
This should permanently solve the race for weston-desktop-shell.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=82957
Cc: Boyan Ding <stu_dby@126.com>
Cc: Derek Foreman <derekf@osg.samsung.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Pekka Paalanen [Wed, 27 Aug 2014 09:03:38 +0000 (12:03 +0300)]
compositor: add weston_client_start()
weston_client_start() is a new wrapper around weston_client_launch(),
that does the process tracking on its own, and logs the process exit
status.
When users of weston_client_start() want to know when the process exits,
they should hook into the wl_client destroy signal. This works for cases
where the client is not expected to disconnect without exiting.
As wl_client destructor and the sigchld handler run in arbitary order,
it is usually difficult for users to maintain both struct weston_process
and a struct wl_client pointer. You would need to wait for both
destructor and handler to have run, before attempting to respawn the
client.
This new function relieves the caller from the burden of maintaining the
struct weston_process, assuming the caller is only interested in client
disconnects.
Cc: Boyan Ding <stu_dby@126.com>
Cc: Derek Foreman <derekf@osg.samsung.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Jasper St. Pierre [Wed, 27 Aug 2014 13:38:33 +0000 (09:38 -0400)]
wm: Don't subtract the margins from the configured size
When we moved the configure event size to being based on the window
geometry, we changed the coordinates of the configure request to being
frame geometry based. Frame geometry includes titlebar and border, but
not shadow margins.
Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Arnaud Vrac [Mon, 25 Aug 2014 18:56:46 +0000 (20:56 +0200)]
desktop-shell: fix invalid memory access when shell execution fails
In this case wl_client_add_destroy_listener() was called with a NULL
client, which is invalid.
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Arnaud Vrac [Mon, 25 Aug 2014 18:56:45 +0000 (20:56 +0200)]
nested: add missing egl extension declaration
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Arnaud Vrac [Mon, 25 Aug 2014 18:56:43 +0000 (20:56 +0200)]
window: unbind egl surface and context on surface release
Binding null read and write surfaces to an egl context is not standard
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Magnus Hoff [Mon, 25 Aug 2014 11:22:11 +0000 (13:22 +0200)]
Document output/scale configuration option in the weston.ini man page.
v2: Different, hopefully better, wording. This patch entirely replaces
the previous similar patch I sent.
v3: Now including the correct patch. Please disregard the "v2" mail.
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Ondřej Majerech [Thu, 21 Aug 2014 13:47:22 +0000 (15:47 +0200)]
desktop-shell: Replace magic constants with named ones
Signed-off-by: Ondřej Majerech <majerech.o@gmail.com>
Reviewed-by: Nils Chr. Brause <nilschrbrause@gmail.com>
Pekka Paalanen [Wed, 27 Aug 2014 12:46:22 +0000 (15:46 +0300)]
protocol: fix a wrong word in wl_viewport.set_source
Obvious this affects the source, not destination.
Reported-by: Jasper St. Pierre <jstpierre@mecheye.net>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Dima Ryazanov [Thu, 19 Jun 2014 08:03:31 +0000 (01:03 -0700)]
xwayland: Clean up the WM properly if X server crashes
The X cleanup code uses wxs->wm to check if the WM has been created - but that
variable was never initialized. So if X crashes, the WM doesn't get destroyed,
causing a crash when it tries to repaint a window.
Signed-off-by: Dima Ryazanov <dima@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Pekka Paalanen [Tue, 26 Aug 2014 10:26:13 +0000 (13:26 +0300)]
configure.ac: require libwayland 1.5.91
Compositor needs the wl_surface error enums and the keyboard repeat info
protocol added in 1.5.91.
weston-info, window.c, and Weston's wayland backend need also the
keyboard repeat info.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>