--- qtubuntu-0.64+17.10.20170707.orig/debian/bileto_convert_to_gles +++ qtubuntu-0.64+17.10.20170707/debian/bileto_convert_to_gles @@ -0,0 +1,28 @@ +#!/bin/sh + +# This script converts the debian/ packaging into an alternate source package +# which builds with GLES. You should copy the source tree into a new directory +# before running this script (so you have one copy for GLES and one copy for +# regular GL). + +set -eu + +# Steps to start a new quilt patch: +# quilt new convert-to-gles.patch +# quilt add debian/* +# # apply changes + +# Steps to refresh this quilt patch when nongles changes: +# quilt push -af +# # fix up + +# When finished, save quilt patch with: +# quilt refresh +# quilt pop -a + +export QUILT_PATCHES=debian/gles-patches +quilt push -a + +sed --in-place 's/^qtubuntu /qtubuntu-gles /g' debian/changelog + +rm --recursive --force ./.pc/ --- qtubuntu-0.64+17.10.20170707.orig/debian/changelog +++ qtubuntu-0.64+17.10.20170707/debian/changelog @@ -0,0 +1,1488 @@ +qtubuntu (0.64+17.10.20170707-0ubuntu6) bionic; urgency=medium + + * Rebuild against new qtbase-abi-5-9-5. + + -- Gianfranco Costamagna Mon, 16 Apr 2018 17:53:25 +0200 + +qtubuntu (0.64+17.10.20170707-0ubuntu5) bionic; urgency=medium + + * No-change rebuild against qtbase-abi-5-9-4. + + -- Łukasz 'sil2100' Zemczak Tue, 27 Feb 2018 16:59:35 +0100 + +qtubuntu (0.64+17.10.20170707-0ubuntu4) bionic; urgency=medium + + * No-change rebuild against qtbase-abi-5-9-2 + + -- Steve Langasek Sun, 05 Nov 2017 04:42:24 +0000 + +qtubuntu (0.64+17.10.20170707-0ubuntu3) artful; urgency=medium + + * Merge drop of platform-api. + + -- Dimitri John Ledkov Fri, 25 Aug 2017 01:39:07 +0100 + +qtubuntu (0.64+17.10.20170707-0ubuntu2) artful; urgency=medium + + * Drop content-hub support. + + -- Steve Langasek Thu, 24 Aug 2017 17:06:23 +0000 + +qtubuntu (0.64+17.10.20170707-0ubuntu1) artful; urgency=medium + + * Fix build with Qt 5.9 and new MIR. + + -- Dmitry Shachnev Fri, 07 Jul 2017 08:26:06 +0000 + +qtubuntu (0.64+17.04.20170404-0ubuntu1) zesty; urgency=medium + + * Use the correct font (Ubuntu family) and icon theme (suru) (LP: + #1676878) + + -- Lukáš Tinkl Tue, 04 Apr 2017 00:47:22 +0000 + +qtubuntu (0.64+17.04.20170328.1-0ubuntu1) zesty; urgency=medium + + [ Albert Astals Cid ] + * Remove signal noone uses + * Honor the menu item visibility (LP: #1675802) + + [ Alberto Aguirre, Arthur Mello ] + * Remove more uses of deprecated mir apis. + + [ Daniel d'Andrada ] + * Qt::Tool == mir_window_type_satellite (LP: #1673415) + * Proper implementation of QPlatformScreen::logicalDpi (LP: #1675572) + + [ Gerry Boland ] + * BackingStore: is possible for context's QPlatformSurface to be + deleted before backing store is. + + -- Michał Sawicz Tue, 28 Mar 2017 17:13:20 +0000 + +qtubuntu (0.64+17.04.20170320-0ubuntu1) zesty; urgency=medium + + [ Albert Astals Cid ] + * Set qtubuntu-tag and handle aboutToShow calls (LP: #1664578) + * Set enabled state for menus in the submenu-enabled property since + GMenuModel doesn't support that concept (LP: #1670694) + * fix image conversion to Format_ARGB32 + * Build with clang + + [ Gerry Boland ] + * Use correct parented/parentless dialog and utility window types from + Mir + + -- Lukáš Tinkl Mon, 20 Mar 2017 17:31:42 +0000 + +qtubuntu (0.64+17.04.20170308-0ubuntu1) zesty; urgency=medium + + [ Gerry Boland ] + * Implement QPlatformWindow::setMask and add support for special InputMethod + window type + * BackingStore: make current only if no existing context current (LP: + #1665705) + + [ Albert Astals Cid ] + * Implement UbuntuAppMenuTheme::createPlatformSystemTrayIcon + * Register metatype used in queued invokeMethod + * Make sure mMimeData doesn't point to already deleted memory + * Initialize m_tag + + -- Michał Sawicz Wed, 08 Mar 2017 11:59:55 +0000 + +qtubuntu (0.63+17.04.20170215-0ubuntu1) zesty; urgency=medium + + [ Albert Astals Cid ] + * Fix crash when starting konsole + + [ Alberto Aguirre ] + * Changes for mir 0.26.1: PersitentID has been renamed to WindowID + + [ Arthur Mello ] + * Update code to use new Mir Api's. + + [ Gerry Boland, Nick Dedekind ] + * Class renaming and syntax changes to shrink delta with upstream + mirclient QPA plugin (which is equivalent to rev 360) + + -- Michał Sawicz Wed, 15 Feb 2017 08:23:33 +0000 + +qtubuntu (0.63+17.04.20170119.2-0ubuntu1) zesty; urgency=medium + + [ Daniel d'Andrada ] + * Resize menus and toolips when told to do so + + [ Gerry Boland ] + * Quit gracefully if Mir connection failed (LP: #1655936) + + -- Michał Sawicz Thu, 19 Jan 2017 22:55:05 +0000 + +qtubuntu (0.63+17.04.20170110.1-0ubuntu1) zesty; urgency=medium + + [ Timo Jyrinki ] + * Remove mircommon specifier for header, fix other ftbfs with mir 0.25 + (LP: #1653905) + + [ Nick Dedekind ] + * Added a QPlatformTheme for exporting gmenumodel for qt menus. + + -- Timo Jyrinki Tue, 10 Jan 2017 06:42:48 +0000 + +qtubuntu (0.63+17.04.20170104-0ubuntu1) zesty; urgency=medium + + [ Gerry Boland ] + * Remove mircommon specifier for header, fix other ftbfs with mir 0.25 + (LP: #1653905) + + -- Timo Jyrinki Wed, 04 Jan 2017 13:46:42 +0000 + +qtubuntu (0.63+17.04.20161201.1-0ubuntu1) zesty; urgency=medium + + * Use debug extension only if mir-debug loaded + + -- Gerry Boland Thu, 01 Dec 2016 23:56:53 +0000 + +qtubuntu (0.63+17.04.20161123-0ubuntu1) zesty; urgency=medium + + [ Gerry Boland ] + * Create Mir surface with hidden state, as Qt expects. (LP: #1543467) + * Move all App State management logic to dedicated controller, use + Timer to compress active-inactive-active invocations (LP: #1543467) + * Small BackingStore fixes: call makeCurrent on texture changes, and + choose correct QImage format to avoid bit swizzling (LP: #1543467) + * Add support for more surface types and surface repositioning. (LP: + #1543467) + * Enable Accessibility + * Fix for Qt5.6 mapToGlobal: QPlatformWindow::geometry() expected to + be in absolute screens coordinates (LP: #1346633) + + -- Andrea Cimitan Wed, 23 Nov 2016 12:12:26 +0000 + +qtubuntu (0.63+17.04.20161024-0ubuntu1) zesty; urgency=medium + + [ Daniel d'Andrada ] + * Some logging fixes + + [ Daniel van Vugt ] + * Implement named cursors that Mir understands (LP: #1625853) (LP: + #1625853) + + [ Gerry Boland ] + * Stricter enum use, avoid default switch case + * Use mir-client-debug to map window coordinates to screen coordinates + (LP: #1346633) + * Fix rendering of apps using QQuickWidget + + -- Michael Zanetti Mon, 24 Oct 2016 11:33:40 +0000 + +qtubuntu (0.63+16.10.20160928.1-0ubuntu1) yakkety; urgency=medium + + [ Nick Dedekind ] + * Use pbuffer for offscreen surfaces. (LP: #1596524) + * Moved focus handling to UbuntuWindow to ensure focus optimization + supports multiple windows rather than being application global. (LP: + #1623861) + + -- Olivier Tilloy Wed, 28 Sep 2016 10:52:07 +0000 + +qtubuntu (0.63+16.10.20160831-0ubuntu1) yakkety; urgency=medium + + [ Daniel d'Andrada ] + * Use content-hub for clipboard services (LP: #1471998) + + -- Ken VanDine Wed, 31 Aug 2016 01:51:46 +0000 + +qtubuntu (0.63+16.10.20160826-0ubuntu1) yakkety; urgency=medium + + [ Nick Dedekind ] + * Fixed panel position shifting and initial surface exposure. (LP: + #1616968) + + -- Michał Sawicz Fri, 26 Aug 2016 13:14:10 +0000 + +qtubuntu (0.63+16.10.20160809-0ubuntu1) yakkety; urgency=medium + + [ Daniel van Vugt ] + * Use correct scrolling scale of 120 as documented: (LP: #1607223, + #1607240) + + [ Gerry Boland ] + * Reapply rev 324 plus fix: EGL convenience, plus workaround for + hybris not supporting GLESv3. (LP: #1507817, #1594198) + * Logging: separate graphics & cursor logging into their own logging + categories + + -- Michał Sawicz Tue, 09 Aug 2016 23:01:21 +0000 + +qtubuntu (0.63+16.10.20160730-0ubuntu1) yakkety; urgency=medium + + [ Lukáš Tinkl ] + * Differentiate between left/right Alt when extracting the modifiers + for Qt (LP: #1590515) + + [ Nick Dedekind ] + * Re-added window exposure for occlusion detection (LP: #1475678) + + -- Lukáš Tinkl Sat, 30 Jul 2016 21:18:10 +0000 + +qtubuntu (0.63+16.10.20160630.1-0ubuntu2~2) yakkety; urgency=medium + + * Rebuild against Qt 5.6. + + -- Timo Jyrinki Sun, 24 Jul 2016 17:56:52 +0300 + +qtubuntu (0.63+16.10.20160630.1-0ubuntu1) yakkety; urgency=medium + + [ Daniel d'Andrada ] + * Expose MirSurface to client apps through the native interface + + -- Michael Sheldon Thu, 30 Jun 2016 13:43:28 +0000 + +qtubuntu (0.62+16.10.20160620-0ubuntu1) yakkety; urgency=medium + + * Revert r324 "EGL convenience" (LP: #1594198) + + -- Michał Sawicz Mon, 20 Jun 2016 08:49:40 +0000 + +qtubuntu (0.62+16.10.20160614-0ubuntu1) yakkety; urgency=medium + + [ Daniel d'Andrada ] + * Generate better mir session names + + [ Gerry Boland ] + * Convert UbuntuOpenGLContext to use QEGLPlatformContext, and allow + clients to customize chosen GLConfig (LP: #1507817, #1549455) + * Integration: no need for the non-const versions of createWindow and + createGLContext + + [ Nick Dedekind ] + * Support for cross building + + -- Albert Astals Cid Tue, 14 Jun 2016 08:34:32 +0000 + +qtubuntu (0.62+16.10.20160527.1-0ubuntu1) yakkety; urgency=medium + + [ Albert Astals Cid ] + * Enable workaround_brokenFBOReadBack on the Mali 400 + * Enable workaround_brokenFBOReadBack on the Mali-T760 + * Enable workaround_brokenFBOReadBack on the PowerVR Rogue G6200 + + [ Michael Terry ] + * Build qtubuntu for arm64, and drop ancient qthybris transition + package. + + -- Michael Terry Fri, 27 May 2016 13:05:27 +0000 + +qtubuntu (0.62+16.04.20160428-0ubuntu1) xenial; urgency=medium + + [ Daniel d'Andrada, Gerry Boland, Michał Sawicz, Nick Dedekind ] + * Proper support for multiple screens and dynamic scaling support (LP: + #1534682, #1573532) + + [ Robert Bruce Park ] + * Inline GLES packaging using a quilt patch. + + -- Michał Sawicz Thu, 28 Apr 2016 15:36:15 +0000 + +qtubuntu (0.62+16.04.20160322-0ubuntu1) xenial; urgency=medium + + [ Lukáš Tinkl ] + * Support for switching kbd layouts (LP: #1524400, #1491340) + + [ Nick Dedekind ] + * Added support for low shell chrome (LP: #1535397) + + -- Michael Zanetti Tue, 22 Mar 2016 08:49:45 +0000 + +qtubuntu (0.62+16.04.20160128.1-0ubuntu1) xenial; urgency=medium + + [ Daniel d'Andrada ] + * Implement QPlatformOffscreenSurface (LP: #1527737) + + [ Olivier Tilloy ] + * Instantiate QKeyEvents with the scan code, native modifiers and + native virtual key code, and special-case XKB_KEY_Return and + XKB_KEY_KP_Enter to emit a carriage return character. (LP: #1433138) + + -- Michał Sawicz Thu, 28 Jan 2016 18:30:08 +0000 + +qtubuntu (0.62+16.04.20160111-0ubuntu1) xenial; urgency=medium + + [ Gerry Boland ] + * Fix getting MirConnection pointer (LP: #1526684) + + -- Michał Sawicz Mon, 11 Jan 2016 11:27:32 +0000 + +qtubuntu (0.62+16.04.20160104-0ubuntu1) xenial; urgency=medium + + [ Daniel d'Andrada ] + * Fix QGuiApplication::applicationState() updates (LP: #1528668) + + [ Gerry Boland ] + * On geometry change, save new geometry before creating change event + (LP: #1526328) + + -- Michał Sawicz Mon, 04 Jan 2016 09:38:35 +0000 + +qtubuntu (0.62+16.04.20151207-0ubuntu1) xenial; urgency=medium + + [ Daniel d'Andrada ] + * Implement support for application state (LP: #1504776) + * Update panel height hack when window enters or leaves fullscreen + (LP: #1422523) + + [ Lukáš Tinkl ] + * Update the panel height hack, orange line is gone + + [ Michał Sawicz ] + * Run wrap-and-sort -at + + -- Gerry Boland Mon, 07 Dec 2015 16:21:01 +0000 + +qtubuntu (0.62+16.04.20151124-0ubuntu2) xenial; urgency=medium + + * Rebuild against Qt 5.5.1. + + -- Timo Jyrinki Mon, 30 Nov 2015 16:16:27 +0200 + +qtubuntu (0.62+16.04.20151124-0ubuntu1) xenial; urgency=medium + + [ Daniel d'Andrada ] + * Implemented cursor support + + -- Michał Sawicz Tue, 24 Nov 2015 13:26:05 +0000 + +qtubuntu (0.62+16.04.20151117-0ubuntu1) xenial; urgency=medium + + [ Albert Astals Cid ] + * Improvements from running clazy over the code + + [ Alberto Aguirre ] + * Add support for Qt popups and dialog windows. + + [ Gerry Boland ] + * Fix inconsistent mouse wheel scrolling behavior + + [ Lukáš Tinkl ] + * Fix inconsistent mouse wheel scrolling behavior + + [ Nick Dedekind ] + * Added check for valid mime data. (LP: #1493530) + + -- Gerry Boland Tue, 17 Nov 2015 14:49:33 +0000 + +qtubuntu (0.62+16.04.20151109-0ubuntu1) xenial; urgency=medium + + [ Nick Dedekind ] + * Reverted occlusion detection (lp#1514556) (LP: #1514556) + + -- Gerry Boland Mon, 09 Nov 2015 22:43:18 +0000 + +qtubuntu (0.62+16.04.20151105-0ubuntu1) xenial; urgency=medium + + [ Nick Dedekind ] + * Support server->client visibility change to stop rendering + (lp:#1475678) (LP: #1475678) + + [ Olivier Tilloy ] + * Re-implement QPlatformScreen::physicalSize(). (LP: #1504293) + + -- Michał Sawicz Thu, 05 Nov 2015 16:56:48 +0000 + +qtubuntu (0.62+15.10.20151021-0ubuntu1) wily; urgency=medium + + [ CI Train Bot ] + * New rebuild forced. + + [ Gerry Boland ] + * Implement support for mouse wheel events (LP: #1497091) + + [ Lukáš Tinkl ] + * Implement support for mouse wheel events (LP: #1497091) + * Override QPlatformWindow::setWindowTitle() and update the caption + accordingly (LP: #1497092) + + -- Michał Sawicz Wed, 21 Oct 2015 11:47:52 +0000 + +qtubuntu (0.62+15.10.20150914-0ubuntu1) wily; urgency=medium + + [ Daniel d'Andrada ] + * Add + QPlatformNativeInterface::nativeResourceForIntegration("mirConnectio + n") + * Remove QtSensors dependency (LP: #1481389) + + [ Paul Olav Tvete ] + * Remove QtSensors dependency (LP: #1481389) + + -- Gerry Boland Mon, 14 Sep 2015 13:12:19 +0000 + +qtubuntu (0.62+15.04.20150828-0ubuntu1) vivid; urgency=medium + + [ Daniel d'Andrada ] + * UbuntuClipboard: ensure DBus has been set up before setting + clipboard contents + * UbuntuWindow - keep redrawing a bit until you get the promised + resized buffer (LP: #1466510) + + -- CI Train Bot Fri, 28 Aug 2015 08:13:58 +0000 + +qtubuntu (0.62+15.04.20150814-0ubuntu1) vivid; urgency=medium + + [ Daniel D'Andrada ] + * fix busy buffer swapping + + -- CI Train Bot Fri, 14 Aug 2015 12:18:27 +0000 + +qtubuntu (0.61+15.10.20150722-0ubuntu3) wily; urgency=medium + + * No-change rebuild to pick up qtbase change. + + -- Timo Jyrinki Fri, 14 Aug 2015 08:46:44 +0300 + +qtubuntu (0.61+15.10.20150722-0ubuntu2~gcc5.1) wily; urgency=medium + + * No-change test rebuild for g++5 ABI transition + + -- Steve Langasek Wed, 22 Jul 2015 23:29:31 +0000 + +qtubuntu (0.61+15.10.20150722-0ubuntu1) wily; urgency=medium + + [ Andreas Pokorny ] + * in step with mir release 0.14.0 + + [ CI Train Bot ] + * New rebuild forced. + + -- CI Train Bot Wed, 22 Jul 2015 14:09:19 +0000 + +qtubuntu (0.61+15.10.20150706-0ubuntu1) wily; urgency=medium + + [ Alberto Aguirre ] + * Migrate to platform-api 3 + + [ CI Train Bot ] + * New rebuild forced. + + -- CI Train Bot Mon, 06 Jul 2015 23:12:54 +0000 + +qtubuntu (0.61+15.10.20150617-0ubuntu1) wily; urgency=medium + + [ Daniel d'Andrada ] + * Drastically improve surface resize responsiveness + + [ Gerry Boland ] + * Add support for Mir window close event (LP: #1434584) + + [ Lukáš Tinkl ] + * fix logic error when testing QFlags + + [ Timo Jyrinki ] + * Build depend against libinput-dev to fix build with Qt 5.5 (LP: + #1437192) (LP: #1437192) + + -- CI Train Bot Wed, 17 Jun 2015 13:46:52 +0000 + +qtubuntu (0.61+15.10.20150611-0ubuntu2) wily; urgency=medium + + * No-change rebuild against Qt 5.4.2. + + -- Timo Jyrinki Mon, 15 Jun 2015 12:31:56 +0300 + +qtubuntu (0.61+15.10.20150611-0ubuntu1) wily; urgency=medium + + [ Daniel d'Andrada ] + * Flip screen dimensions to compensate for a rotated window + + [ Alan Griffiths ] + * Track mir deprecations and renames. + + -- CI Train Bot Thu, 11 Jun 2015 09:10:57 +0000 + +qtubuntu (0.60+15.04.20150318-0ubuntu3) vivid; urgency=medium + + * No-change rebuild against latest platform-api + + -- Ricardo Salveti de Araujo Thu, 19 Mar 2015 22:37:16 -0300 + +qtubuntu (0.60+15.04.20150318-0ubuntu2) vivid; urgency=medium + + * No-change rebuild to correct platform-api dependency + + -- Timo Jyrinki Thu, 19 Mar 2015 11:54:20 +0200 + +qtubuntu (0.60+15.04.20150318-0ubuntu1) vivid; urgency=medium + + [ Alberto Aguirre ] + * Port qtubuntu to direct mirclient usage for window creation and + input handling. + + [ Daniel d'Andrada ] + * Port qtubuntu to direct mirclient usage for window creation and + input handling. + + [ Robert Carr ] + * Port qtubuntu to direct mirclient usage for window creation and + input handling. + + -- CI Train Bot Wed, 18 Mar 2015 10:12:48 +0000 + +qtubuntu (0.60+15.04.20141212-0ubuntu3) vivid; urgency=medium + + * No-change rebuild against Qt 5.4.1. + + -- Timo Jyrinki Wed, 11 Mar 2015 08:25:45 +0200 + +qtubuntu (0.60+15.04.20141212-0ubuntu2) vivid; urgency=medium + + * No-change rebuild against Qt 5.4.0. + + -- Timo Jyrinki Fri, 06 Feb 2015 14:48:16 +0200 + +qtubuntu (0.60+15.04.20141212-0ubuntu1) vivid; urgency=low + + [ Gerry Boland ] + * Fix raster-based (QWidget) application rendering. + + [ Robert Carr ] + * Utilize repeat_count value from Mir in constructing QKeyEvents. (LP: + #1349416) + + -- Ubuntu daily release Fri, 12 Dec 2014 15:43:42 +0000 + +qtubuntu (0.60+15.04.20141111-0ubuntu1) vivid; urgency=low + + [ Ubuntu daily release ] + * New rebuild forced + + [ Timo Jyrinki ] + * Add libmtdev-dev build dependency (LP: #1379152) (LP: #1379152) + + -- Ubuntu daily release Tue, 11 Nov 2014 06:11:03 +0000 + +qtubuntu (0.60+14.10.20141001.3-0ubuntu1) utopic; urgency=low + + [ Zsombor Egri ] + * Handle PasswordMaskDelay. (LP: #1237614) + + [ Robert Carr ] + * Support mir restored surface state as a way to leave fullscreen. + (LP: #1194550) + + [ Daniel d'Andrada ] + * Use the global clipboard from D-Bus (LP: #1367814) + + -- Ubuntu daily release Wed, 01 Oct 2014 17:20:53 +0000 + +qtubuntu (0.60+14.10.20140922.1-0ubuntu1) utopic; urgency=low + + [ Gerry Boland ] + * Expose Mir surface orientation property instead of connecting to + orientation sensor directly (LP: #1288332) + + -- Ubuntu daily release Mon, 22 Sep 2014 17:32:25 +0000 + +qtubuntu (0.60+14.10.20140815.1-0ubuntu1) utopic; urgency=low + + [ Daniel d'Andrada ] + * Remove leftover pkg dependencies: mircommon and mirclient The QPA + shouldn't be talking to mir directly but only throughubuntu- + application-api + + [ Ricardo Mendoza ] + * Check window is valid before delivering event. + + -- Ubuntu daily release Fri, 15 Aug 2014 16:49:41 +0000 + +qtubuntu (0.60+14.10.20140812-0ubuntu1) utopic; urgency=low + + [ Florian Boucault ] + * Scale the minimum distance before drag + (QPlatformIntegration::StartDragDistance) taking into account the + grid unit definition (the scale factor). + + -- Ubuntu daily release Tue, 12 Aug 2014 18:45:53 +0000 + +qtubuntu (0.60+14.10.20140808.1-0ubuntu1) utopic; urgency=low + + [ Gerry Boland ] + * Workaround for bug 1346633 broke QGuiApplication::topLevelWindows(), + perform a different workaround. This workaround guesses the window + geometry relative to the screen (mainly setting y=panelHeight), + defining it using QPlatformWindow::setGeometry and then Qt uses it + to calculate mapToGlobal internally (LP: #1351024, #1346633) + + -- Ubuntu daily release Fri, 08 Aug 2014 14:10:40 +0000 + +qtubuntu (0.60+14.10.20140728-0ubuntu1) utopic; urgency=medium + + [ Gerry Boland ] + * Major refactor: remove SurfaceFlinger & Mir in-server-process-client support, + flatten class hierarchy. Only Mir client QPA remains + + [ Ubuntu daily release ] + * New rebuild forced + + -- Ubuntu daily release Mon, 28 Jul 2014 02:37:18 +0000 + +qtubuntu (0.54+14.10.20140613-0ubuntu1) utopic; urgency=low + + [ Ubuntu daily release ] + * New rebuild forced + + [ Alexandros Frantzis ] + * Set the surface renderable type to QSurfaceFormat::OpenGLES when + using OpenGL ES 2.0 In Qt 5.3 the type of used GL context is checked + at runtime to determine supported GL features. Set the surface + renderable type properly so that Qt can determine the features + correctly. (LP: #1321189) + + -- Ubuntu daily release Fri, 13 Jun 2014 05:37:53 +0000 + +qtubuntu (0.54+14.10.20140612-0ubuntu1) utopic; urgency=low + + [ Ubuntu daily release ] + * New rebuild forced + + [ Ricardo Mendoza ] + * Migrate to Platform API v2 + + -- Ubuntu daily release Thu, 12 Jun 2014 10:39:50 +0000 + +qtubuntu (0.54+14.10.20140526.1-0ubuntu1) utopic; urgency=low + + [ Michael Terry ] + * Note that unity8-greeter is a shell too. + + [ Ubuntu daily release ] + * New rebuild forced + + -- Ubuntu daily release Mon, 26 May 2014 14:49:27 +0000 + +qtubuntu (0.54+14.10.20140523-0ubuntu1) utopic; urgency=low + + [ Timo Jyrinki ] + * Depend on libqt5sensors5-dev instead of qtsensors5-dev. (LP: + #1317885) (LP: #1317885) + + -- Ubuntu daily release Fri, 23 May 2014 10:25:15 +0000 + +qtubuntu (0.54+14.10.20140515.1-0ubuntu1) utopic; urgency=low + + [ Ubuntu daily release ] + * New rebuild forced + + [ Kevin Gunn ] + * rebuild only + + -- Ubuntu daily release Thu, 15 May 2014 18:37:17 +0000 + +qtubuntu (0.54+14.10.20140430.1-0ubuntu3) utopic; urgency=medium + + * Moving back qtubuntu-desktop's arch to any, as there's no easy way to + guarantee that the package is broken on armhf + + -- Ricardo Salveti de Araujo Fri, 09 May 2014 18:15:30 -0300 + +qtubuntu (0.54+14.10.20140430.1-0ubuntu2) utopic; urgency=medium + + * debian/control: + - Only building qtubuntu-android on arches where Qt is built with opengles + - Not building qtubuntu-desktop on armhf as Qt uses opengles there + + -- Ricardo Salveti de Araujo Thu, 08 May 2014 19:46:47 -0300 + +qtubuntu (0.54+14.10.20140430.1-0ubuntu1) utopic; urgency=low + + [ Gerry Boland ] + * Lifecycle events emit expose events to safely stop & resume the + renderer threads. We don't use hide/show directly as hide causes Qt + to stop the renderer, but then release the GL context and its + resources. Expose events just stop & resume the renderer without + altering the context. + + [ Ubuntu daily release ] + * New rebuild forced + + -- Ubuntu daily release Wed, 30 Apr 2014 13:31:36 +0000 + +qtubuntu (0.54+14.04.20140402-0ubuntu2) trusty; urgency=medium + + * No-change rebuild for shlib changes in qtbase and qtdeclarative. + + -- Ricardo Salveti de Araujo Mon, 14 Apr 2014 13:09:40 -0300 + +qtubuntu (0.54+14.04.20140402-0ubuntu1) trusty; urgency=low + + [ Stephen M. Webb ] + * Force the OpenGL surface format in qtubuntu-desktop. (LP: #1295309) + + -- Ubuntu daily release Wed, 02 Apr 2014 20:51:14 +0000 + +qtubuntu (0.54+14.04.20140401-0ubuntu1) trusty; urgency=medium + + [ Michael Zanetti ] + * Drop Unity.Application module. + + -- Ubuntu daily release Tue, 01 Apr 2014 22:36:46 +0000 + +qtubuntu (0.53+14.04.20140318-0ubuntu1) trusty; urgency=low + + [ Chris Coulson ] + * Pass the EGL share context to eglCreateContext (lp: #1278470) (LP: + #1278470) + * Implement QPlatformNativeInterface::nativeResourceForScreen() for + accessing the native display handle (lp: #1278868) (LP: #1278868) + + -- Ubuntu daily release Tue, 18 Mar 2014 20:20:51 +0000 + +qtubuntu (0.53+14.04.20140304-0ubuntu1) trusty; urgency=low + + * New rebuild forced + + -- Ubuntu daily release Tue, 04 Mar 2014 12:50:53 +0000 + +qtubuntu (0.53+14.04.20140228-0ubuntu1) trusty; urgency=low + + [ Stephen M. Webb ] + * build qtubuntu-desktop to use an OpenGL context instead of an + OpenGL|ES context (lp: #1274763) (LP: #1274763) + + -- Ubuntu daily release Fri, 28 Feb 2014 18:33:06 +0000 + +qtubuntu (0.53+14.04.20140221-0ubuntu1) trusty; urgency=low + + [ Michał Sawicz ] + * Increase the side stage threshold to 100GU. + + -- Ubuntu daily release Fri, 21 Feb 2014 09:11:59 +0000 + +qtubuntu (0.53+14.04.20140131-0ubuntu1) trusty; urgency=low + + [ CI bot ] + * Flushing trunk + + [ Ricardo Mendoza ] + * Clean up build rules to allow for correct building of multiple + binary packages from the same source. (LP: #1271464) + + -- Ubuntu daily release Fri, 31 Jan 2014 12:39:46 +0000 + +qtubuntu (0.53+14.04.20140114.1-0ubuntu1) trusty; urgency=low + + [ Stephen M. Webb ] + * provide two binary deb variants: Touch and Desktop (lp: #1246851). + (LP: #1246851) + + [ Ubuntu daily release ] + * Automatic snapshot from revision 200 + + -- Ubuntu daily release Tue, 14 Jan 2014 10:37:06 +0000 + +qtubuntu (0.53-0ubuntu1) trusty; urgency=low + + * Specify surface size on creation. + + -- Ricardo Mendoza Tue, 10 Dec 2013 23:31:28 -0500 + +qtubuntu (0.52+14.04.20131125-0ubuntu1) trusty; urgency=low + + [ Daniel d'Andrada ] + * Make no assumptions on pointer ids Code was assuming that it ranged + from 0 to maximumSimultaneousTouches, but that won't hold in the + future. Also fixes bogus behavior when tapping with two fingers, + where you would get TouchBegin twice and the first touch point on + staying on "pressed" state on the second TouchEvent. (LP: #1228336) + + [ Albert Astals ] + * Pass QRectF as const reference instead of copying it . + * Don't include the QtQml catch-all header Include only the ones we + need . + * Adapt to the Qt 5.2 way of creating the event dispatcher . (LP: + #1246498) + * Link against EGL since we use it It was probably being pulled by a + dependency before . + * Remove unused -private . (LP: #1254051) + * Do not include the catch-all QtQuick include . + + [ Ubuntu daily release ] + * Automatic snapshot from revision 197 + + -- Ubuntu daily release Mon, 25 Nov 2013 14:32:22 +0000 + +qtubuntu (0.52+13.10.20131016-0ubuntu1) saucy; urgency=low + + [ Michał Sawicz ] + * Map PowerDown and PowerOff keys and fix indentation. (LP: #1232122) + + [ Alexandros Frantzis ] + * Abort if we can't get an ubuntu application instance. (LP: #1233988) + + [ Ubuntu daily release ] + * Automatic snapshot from revision 189 + + -- Ubuntu daily release Wed, 16 Oct 2013 02:33:02 +0000 + +qtubuntu (0.52+13.10.20131009-0ubuntu1) saucy; urgency=low + + [ Alexandros Frantzis ] + * Release the EGL window surface before releasing the attached native + window Otherwise, if the native window is released first, as was + previously happening, the EGL platform may try to access the freed + native window, leading to memory errors and crashes. (LP: #1237052) + + [ Ubuntu daily release ] + * Automatic snapshot from revision 186 + + -- Ubuntu daily release Wed, 09 Oct 2013 20:27:39 +0000 + +qtubuntu (0.52+13.10.20131008-0ubuntu1) saucy; urgency=low + + [ Loïc Minier ] + * Add Vcs-Bzr field with lp:qtubuntu. + + [ Robert Carr ] + * Map the volume up and down keys to keysyms in mir. (LP: #1233245) + + [ Ubuntu daily release ] + * Automatic snapshot from revision 184 + + -- Ubuntu daily release Tue, 08 Oct 2013 12:14:42 +0000 + +qtubuntu (0.52+13.10.20130920-0ubuntu1) saucy; urgency=low + + [ Ricardo Mendoza ] + * If window has a parent, send duplicate events to it. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 180 + + -- Ubuntu daily release Fri, 20 Sep 2013 04:25:44 +0000 + +qtubuntu (0.52+13.10.20130919-0ubuntu1) saucy; urgency=low + + [ Albert Astals ] + * Implement the backend for QDesktopServices::openUrl . (LP: #1186556) + + [ Ubuntu daily release ] + * Automatic snapshot from revision 177 + + -- Ubuntu daily release Thu, 18 Sep 2013 14:09:32 +0000 + +qtubuntu (0.52+13.10.20130912.1-0ubuntu1) saucy; urgency=low + + [ Michael Zanetti ] + * register application interface types with QML. + + [ Gerry Boland ] + * Fix click package execution, and correct icon path. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 175 + + -- Ubuntu daily release Thu, 12 Sep 2013 22:45:06 +0000 + +qtubuntu (0.52+13.10.20130910.7-0ubuntu1) saucy; urgency=low + + [ Gerry Boland ] + * Add fake OSKController component, for compatibility with unity-mir. + * Implement ApplicationManager API as defined in unity-api. This + requires renaming QML plugin to Unity.Application, removing the + ApplicationListModel class and supplying just one model of + applications running. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 172 + + -- Ubuntu daily release Tue, 10 Sep 2013 23:30:45 +0000 + +qtubuntu (0.52+13.10.20130821-0ubuntu1) saucy; urgency=low + + [ Timo Jyrinki ] + * Remove extra dh_auto_configure from install phase. (LP: #1212131). + (LP: #1212131) + + [ Ubuntu daily release ] + * Automatic snapshot from revision 169 + + -- Ubuntu daily release Wed, 21 Aug 2013 14:40:14 +0000 + +qtubuntu (0.52+13.10.20130820-0ubuntu1) saucy; urgency=low + + [ Gerry Boland ] + * Allow setting title of QWindow to propagate through to platform-api. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 167 + + -- Ubuntu daily release Tue, 20 Aug 2013 14:06:20 +0000 + +qtubuntu (0.52+13.10.20130814.1-0ubuntu1) saucy; urgency=low + + [ Gerry Boland ] + * Add support for building mirserver and mirclient backends to the + QPA. + + [ Robert Carr ] + * Add support for building mirserver and mirclient backends to the + QPA. + + [ Ricardo Mendoza ] + * Add support for building mirserver and mirclient backends to the + QPA. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 165 + + -- Ubuntu daily release Wed, 14 Aug 2013 06:06:46 +0000 + +qtubuntu (0.52+13.10.20130812.3-0ubuntu1) saucy; urgency=low + + [ Michał Sawicz ] + * Respect Path= from .desktop files. (LP: #1204596) + + [ Ubuntu daily release ] + * Automatic snapshot from revision 163 + + -- Ubuntu daily release Mon, 12 Aug 2013 14:06:28 +0000 + +qtubuntu (0.52+13.10.20130803-0ubuntu1) saucy; urgency=low + + [ Ricardo Mendoza ] + * * Add method to disable/enable sensors opened from the QPA + automatically. * Make use of the hook to disable/enable when the + application active status changes. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 161 + + -- Ubuntu daily release Sat, 03 Aug 2013 02:01:59 +0000 + +qtubuntu (0.52+13.10.20130731-0ubuntu1) saucy; urgency=low + + [ Ricardo Mendoza ] + * Add mapping for some missing special characters. (LP: #1203212) + + [ Ubuntu daily release ] + * Automatic snapshot from revision 159 + + -- Ubuntu daily release Wed, 31 Jul 2013 02:01:55 +0000 + +qtubuntu (0.52+13.10.20130730-0ubuntu1) saucy; urgency=low + + [ Gustavo Pichorim Boiko ] + * Add values for the new applications that were created as a result of + the splitting of the phone-app. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 157 + + -- Ubuntu daily release Tue, 30 Jul 2013 02:01:54 +0000 + +qtubuntu (0.52+13.10.20130729-0ubuntu1) saucy; urgency=low + + [ Ricardo Mendoza ] + * Make the lifecycle signals deliver the ApplicationActive and + ApplicationDeactivate events to the running application. (LP: + #1183866) + + [ Ubuntu daily release ] + * Automatic snapshot from revision 155 + + -- Ubuntu daily release Mon, 29 Jul 2013 02:01:53 +0000 + +qtubuntu (0.52+13.10.20130723-0ubuntu1) saucy; urgency=low + + [ Michał Sawicz ] + * Do not reverse arguments from destkop files. (LP: #1200437) + + [ Ubuntu daily release ] + * Automatic snapshot from revision 153 + + -- Ubuntu daily release Tue, 23 Jul 2013 02:01:52 +0000 + +qtubuntu (0.52+13.10.20130720-0ubuntu1) saucy; urgency=low + + [ Ricardo Mendoza ] + * Send colon unicode when hitting key with modifier. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 151 + + -- Ubuntu daily release Sat, 20 Jul 2013 02:01:53 +0000 + +qtubuntu (0.52+13.10.20130718-0ubuntu1) saucy; urgency=low + + [ Ricardo Mendoza ] + * Change dep to use the real platform-api package instead of the + transitional one. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 149 + + -- Ubuntu daily release Thu, 18 Jul 2013 02:02:29 +0000 + +qtubuntu (0.52+13.10.20130711-0ubuntu1) saucy; urgency=low + + [ Antti Kaijanmäki ] + * ApplicationManager: Set APP_ID env variable on started processes. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 147 + + -- Ubuntu daily release Thu, 11 Jul 2013 02:01:48 +0000 + +qtubuntu (0.52+13.10.20130703-0ubuntu1) saucy; urgency=low + + [ Didier Roche ] + * Transition qtubuntu to qtubuntu-android (only available on armhf as + it's where it's built) and provides a qtubuntu and qtubuntu-shell + virtual package, enabling even mock to fulfill the dep + + [ Ubuntu daily release ] + * Automatic snapshot from revision 145 + + -- Ubuntu daily release Wed, 03 Jul 2013 15:14:53 +0000 + +qtubuntu (0.51daily13.06.17-0ubuntu1) saucy; urgency=low + + [ Ken VanDine ] + * Don't install test files (merge lp:~ken- + vandine/qtubuntu/packaging_fixes), update Standards-Version. + + [ Timo Jyrinki ] + * Enable multi-arch, split examples package, use architecture: any. + * Don't install test files (merge lp:~ken- + vandine/qtubuntu/packaging_fixes), update Standards-Version. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 143 + + -- Ubuntu daily release Mon, 17 Jun 2013 02:02:10 +0000 + +qtubuntu (0.51daily13.06.11.1-0ubuntu1) saucy; urgency=low + + [ Ricardo Mendoza ] + * Take over signalling of processes from the Android side app manager. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 140 + + -- Ubuntu daily release Tue, 11 Jun 2013 17:51:55 +0000 + +qtubuntu (0.51daily13.06.11-0ubuntu1) saucy; urgency=low + + [ Ricardo Mendoza ] + * Pass remote PID for when running across container boundaries. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 138 + + -- Ubuntu daily release Tue, 11 Jun 2013 06:11:36 +0000 + +qtubuntu (0.51daily13.06.05.1-0ubuntu1) saucy; urgency=low + + [ Michael Terry ] + * Widen qtubuntu's architecture support. + * Add missing libxrender-dev Build-Depends needed on i386 and amd64. + + [ Daniel d'Andrada ] + * Export Application as ApplicationInfo to avoid clashing with + QtQuick.Application. + + [ Kaleo ] + * Based native orientation selection on the available stage size. (LP: + #1172883) + + [ Ricardo Mendoza ] + * * Migrate QtUbuntu to make use of the new platform API definitions. + * Hide input panel when application is unfocused. (LP: #1183113) + * Fix orientation launching for sidestage apps. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 136 + + -- Ubuntu daily release Wed, 05 Jun 2013 17:04:49 +0000 + +qtubuntu (0.51daily13.06.02ubuntu.unity.next-0ubuntu1) raring; urgency=low + + [ Ricardo Mendoza ] + * Fix orientation launching for sidestage apps. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 135 (ubuntu-unity/next) + + -- Ubuntu daily release Sun, 02 Jun 2013 02:02:01 +0000 + +qtubuntu (0.51daily13.05.31ubuntu.unity.next-0ubuntu1) raring; urgency=low + + [ Ricardo Mendoza ] + * Hide input panel when application is unfocused. (LP: #1183113) + + [ Ubuntu daily release ] + * Automatic snapshot from revision 133 (ubuntu-unity/next) + + -- Ubuntu daily release Fri, 31 May 2013 02:01:41 +0000 + +qtubuntu (0.51daily13.05.30ubuntu.unity.next-0ubuntu1) raring; urgency=low + + [ Ricardo Mendoza ] + * * Migrate QtUbuntu to make use of the new platform API definitions. + + [ Ubuntu daily release ] + * Automatic snapshot from revision 131 (ubuntu-unity/next) + + -- Ubuntu daily release Thu, 30 May 2013 03:29:40 +0000 + +qtubuntu (0.51daily13.04.29ubuntu.unity.next-0ubuntu1) raring; urgency=low + + [ Kaleo ] + * QScreen orientation is reported incorrectly for side stage apps (LP: + #1172883) + + [ Ubuntu daily release ] + * Automatic snapshot from revision 129 (ubuntu-unity/next) + + -- Ubuntu daily release Mon, 29 Apr 2013 02:01:01 +0000 + +qtubuntu (0.51daily13.04.26ubuntu.unity.next-0ubuntu1) raring; urgency=low + + * Automatic snapshot from revision 127 (ubuntu-unity/next) + + -- Ubuntu daily release Fri, 26 Apr 2013 02:14:16 +0000 + +qtubuntu (0.51daily13.04.12ubuntu.unity.next-0ubuntu1) raring; urgency=low + + [ Michael Terry ] + * Automatic snapshot from revision 120 (bootstrap) + + [ Ubuntu daily release ] + * Automatic snapshot from revision 125 (ubuntu-unity/next) + + -- Ubuntu daily release Fri, 12 Apr 2013 02:01:44 +0000 + +qtubuntu (0.50) quantal; urgency=low + + [ Michael Terry ] + * Use more modern packaging, fix a copyright typo + + [ Ricardo Mendoza ] + * Add execution flags to ApplicationManager::startProcess to force + starting an app in a desired stage. Can support other flags + later on. + + -- Ricardo Mendoza Wed, 03 Apr 2013 20:13:34 -0430 + +qtubuntu (0.49) quantal; urgency=low + + * Implements live orientation support for client applications using the + QtSensors OrientationSensor backend. + + -- Jim Hodapp Fri, 01 Mar 2013 11:18:21 -0500 + +qtubuntu (0.48) quantal; urgency=low + + * ApplicationImage: added an internal cache of QImages and a new method to + use it instead of taking screenshots: updateFromCache(). + + -- Florian Boucault Sun, 24 Feb 2013 23:28:00 +0000 + +qtubuntu (0.47) quantal; urgency=low + + * ApplicationManager: added 2 properties 'keyboardVisible' and 'keyboardHeight' + + -- Florian Boucault Wed, 20 Feb 2013 07:07:00 +0000 + +qtubuntu (0.46) quantal; urgency=low + + * Added side stage support. + * ApplicationImage: crop buffer to surface's source size and position. + * ApplicationImage: added new 'fillMode' property with 2 possible values: Stretch and PreserveAspectCrop. + + -- Loïc Molinari Tue, 12 Feb 2013 11:47:53 +0100 + +qtubuntu (0.45) quantal; urgency=low + + * Added new InputFilterArea QML item. + + -- Florian Boucault Thu, 14 Feb 2013 00:40:44 +0000 + +qtubuntu (0.44) quantal; urgency=low + + * New release + + -- Florian Boucault Tue, 12 Feb 2013 10:09:19 +0000 + +qtubuntu (0.43) quantal; urgency=low + + * Update applications list in the right order to prevent missed updates + + -- Ricardo Mendoza Fri, 08 Feb 2013 17:47:27 -0430 + +qtubuntu (0.42) quantal; urgency=low + + * Added start/stop process support to application module with direct + insertion/deletion in data models. + + -- Loïc Molinari Thu, 07 Feb 2013 23:59:03 +0100 + +qtubuntu (0.41) quantal; urgency=low + + * Implemented native orientation for applications to query through + the native platform interface. + + -- Ricardo Salveti de Araujo Thu, 07 Feb 2013 00:39:39 -0200 + +qtubuntu (0.40) quantal; urgency=low + + * Updating build-dependency to use the new ubuntu-platform-api package + + -- Ricardo Salveti de Araujo Wed, 06 Feb 2013 15:40:59 -0200 + +qtubuntu (0.39) quantal; urgency=low + + * Adding qtubuntu files to the qtubuntu package (since the install was + empty) + + -- Ricardo Salveti de Araujo Thu, 31 Jan 2013 20:59:03 -0500 + +qtubuntu (0.38) quantal; urgency=low + + * remerge from trunk, new release + + -- Bill Filler Thu, 31 Jan 2013 09:02:32 -0500 + +qtubuntu (0.37) quantal; urgency=low + + * Renaming package from qthybris + + -- Ricardo Salveti de Araujo Thu, 31 Jan 2013 00:10:39 -0500 + +qthybris (0.36) quantal; urgency=low + + * Make sure to request alpha support for the surfaceFormat + + -- Ricardo Salveti de Araujo Tue, 15 Jan 2013 18:44:39 -0200 + +qthybris (0.35) quantal; urgency=low + + * fix for hardcoded screen size lp:1097798 + + -- Bill Filler Thu, 10 Jan 2013 16:23:41 -0500 + +qthybris (0.34) quantal; urgency=low + + * Bumped version. + + -- Loïc Molinari Thu, 20 Dec 2012 02:22:29 +0100 + +qthybris (0.33) quantal; urgency=low + + * Added support for focusRequested callback. + + -- Loïc Molinari Tue, 18 Dec 2012 02:59:35 +0100 + +qthybris (0.32) quantal; urgency=low + + * Force the build to generate debug symbols, so we can have -dbgsym packages + + -- Ricardo Salveti de Araujo Mon, 17 Dec 2012 18:25:53 -0200 + +qthybris (0.31) quantal; urgency=low + + * Added support for starting/stopping processes. + + -- Loïc Molinari Mon, 17 Dec 2012 13:47:51 +0100 + +qthybris (0.30) quantal; urgency=low + + * Fixed the build. + + -- Loïc Molinari Fri, 14 Dec 2012 20:20:25 +0100 + +qthybris (0.29) quantal; urgency=low + + * Added 'desktopFile' property to Application class. + + -- Florian Boucault Thu, 13 Dec 2012 21:39:35 +0000 + +qthybris (0.28) quantal; urgency=low + + * Added ubuntu_ui_session_unfocus_running_sessions binding. + + -- Loïc Molinari Wed, 12 Dec 2012 23:15:05 +0100 + +qthybris (0.27) quantal; urgency=low + + * Added support NULL sources in ApplicationImage. + + -- Loïc Molinari Wed, 12 Dec 2012 10:36:21 +0000 + +qthybris (0.26) quantal; urgency=low + + * Fixed touch input dispatching for system sessions. + + -- Loïc Molinari Wed, 12 Dec 2012 02:56:29 +0200 + +qthybris (0.25) quantal; urgency=low + + * Adapted to Ubuntu application API API change. + + -- Loïc Molinari Tue, 11 Dec 2012 19:54:02 +0200 + +qthybris (0.24) quantal; urgency=low + + * Changed hardcoded top strut from 54 to 59. + + -- Florian Boucault Mon, 10 Dec 2012 19:40:24 +0000 + +qthybris (0.23) quantal; urgency=low + + * Added ApplicationListModel::get method. + * Added ApplicationListModel::count property. + * Added ApplicationListModel::move method. + + -- Florian Boucault Mon, 10 Dec 2012 17:58:33 +0000 + +qthybris (0.22) quantal; urgency=low + + * Added QQuickWindow extension for easy role setting from QML. + + -- Loïc Molinari Mon, 10 Dec 2012 15:07:11 +0200 + +qthybris (0.21) quantal; urgency=low + + * Added support for application snapshotting. + + -- Loïc Molinari Fri, 07 Dec 2012 16:10:40 +0100 + +qthybris (0.21) quantal; urgency=low + + * Added support for maximization and hard-coded strut for the phone. + + -- Loïc Molinari Thu, 06 Dec 2012 13:32:27 +0100 + +qthybris (0.20) UNRELEASED; urgency=low + + * Added support for application management. + + -- Loïc Molinari Thu, 06 Dec 2012 11:02:49 +0100 + +qthybris (0.19) quantal; urgency=low + + * Implemented support for a basic theme based on generic unix theme + + -- Renato Araujo Oliveira Filho Wed, 05 Dec 2012 09:40:45 +0000 + +qthybris (0.18) quantal; urgency=low + + * Added application module. + + -- Loïc Molinari Fri, 30 Nov 2012 17:35:08 +0200 + +qthybris (0.17) quantal; urgency=low + + * Fixed show/hide crash. + + -- Loïc Molinari Fri, 30 Nov 2012 13:44:39 +0200 + +qthybris (0.16) quantal; urgency=low + + [ Thomas Voss ] + * Added support for hiding/showing native windows. + + -- Michael Frey Thu, 29 Nov 2012 11:53:24 -0500 + +qthybris (0.15) quantal; urgency=low + + * Ensured window states are set at creation. + + -- Loïc Molinari Thu, 29 Nov 2012 16:41:30 +0200 + +qthybris (0.14) quantal; urgency=low + + * Added support for window position. + + -- Thomas Moenicke Thu, 29 Nov 2012 15:10:38 +0100 + +qthybris (0.13) quantal; urgency=low + + * Added support for the new credentials system. + + -- Loïc Molinari Mon, 26 Nov 2012 18:30:12 +0200 + +qthybris (0.12) quantal; urgency=low + + * Added support to specify surface roles. + + -- Loïc Molinari Mon, 26 Nov 2012 15:31:07 +0200 + +qthybris (0.11) quantal; urgency=low + + * Removed not reached asserts for unknown input events, closes: LP: #1075185. + * Added support for key event's unicode representation, closes: LP: #1074041. + * Added support for input context plugins. + + -- Sergio Schvezov Fri, 09 Nov 2012 17:11:34 -0300 + +qthybris (0.10) quantal; urgency=low + + * Fixed incorrect event time stamps. Makes kinetic scrolling work. + + -- Michael Frey Thu, 08 Nov 2012 20:40:33 -0500 + +qthybris (0.9) quantal; urgency=low + + * Bumping + * Adding new dependencies brought in by Qt5 updates + + -- Sergio Schvezov Tue, 06 Nov 2012 19:53:18 -0300 + +qthybris (0.8) quantal; urgency=low + + * Bump version. + + -- Loïc Molinari Fri, 26 Oct 2012 18:47:39 +0200 + +qthybris (0.7) UNRELEASED; urgency=low + + * Added Ubuntu application UI support. + + -- Loïc Molinari Mon, 22 Oct 2012 17:50:41 +0200 + +qthybris (0.6) quantal; urgency=low + + * Added native interface support + + -- Loïc Molinari Tue, 16 Oct 2012 17:43:23 +0200 + +qthybris (0.5) quantal; urgency=low + + * Enable building under armhf + + -- Ricardo Mendoza Wed, 10 Oct 2012 09:45:17 -0430 + +qthybris (0.4) quantal; urgency=low + + * Bumped version + + -- Loïc Molinari Tue, 09 Oct 2012 15:26:44 +0200 + +qthybris (0.3) quantal; urgency=low + + * Added missing build-depends + + -- Loïc Molinari Fri, 05 Oct 2012 12:42:58 +0200 + +qthybris (0.2) quantal; urgency=low + + * Correctly install artwork and examples + + -- Ricardo Mendoza Wed, 03 Oct 2012 13:39:27 +0000 + +qthybris (0.1) quantal; urgency=low + + * Initial release + + -- Ricardo Mendoza Fri, 28 Sep 2012 10:28:22 -0430 --- qtubuntu-0.64+17.10.20170707.orig/debian/clean +++ qtubuntu-0.64+17.10.20170707/debian/clean @@ -0,0 +1,4 @@ +src/ubuntumirclient/qmirclientplatformservices.cpp +src/ubuntumirclient/qmirclientclipboard.h +src/ubuntumirclient/qmirclientplatformservices.h +src/ubuntumirclient/qmirclientclipboard.cpp --- qtubuntu-0.64+17.10.20170707.orig/debian/compat +++ qtubuntu-0.64+17.10.20170707/debian/compat @@ -0,0 +1 @@ +9 --- qtubuntu-0.64+17.10.20170707.orig/debian/control +++ qtubuntu-0.64+17.10.20170707/debian/control @@ -0,0 +1,61 @@ +Source: qtubuntu +Priority: optional +Maintainer: Ubuntu Developers +Build-Depends: debhelper (>= 9), + libatspi2.0-dev, + libegl1-mesa-dev (>= 17.0.2), + libfontconfig1-dev, + libfreetype6-dev, + libgles2-mesa-dev (>= 17.0.2), + libglib2.0-dev, + libinput-dev, + libmirclient-dev (>= 0.26.1), + libmtdev-dev, + libudev-dev, + libxkbcommon-dev, + libxrender-dev, + qtbase5-private-dev, + quilt, +# if you don't have have commit access to this branch but would like to upload +# directly to Ubuntu, don't worry: your changes will be merged back into the +# upstream branch +Vcs-Bzr: lp:qtubuntu +Standards-Version: 3.9.6 +Section: libs + +Package: qtubuntu-android +Architecture: arm64 armhf +Multi-Arch: same +Conflicts: qtubuntu-desktop, + qtubuntu-appmenutheme, +Replaces: qtubuntu (<< 0.52), + qtubuntu-desktop, + qtubuntu-appmenutheme, +Breaks: ubuntu-touch-session (<< 0.107), + unity8 (<< 7.85), +Provides: qtubuntu, + qtubuntu-appmenutheme +Depends: ${misc:Depends}, + ${shlibs:Depends}, +Description: Qt plugins for Mir support on Ubuntu (mobile) + QtUbuntu is a QPA plugin for Qt5 adding support for the Mir display server. + . + This variant of the package is for Android-based phones and tablets. + +Package: qtubuntu-desktop +Architecture: any +Multi-Arch: same +Conflicts: qtubuntu-android, + qtubuntu-appmenutheme, +Replaces: qtubuntu (<< 0.52), + qtubuntu-android, + qtubuntu-appmenutheme, +Breaks: unity8 (<< 7.85), +Provides: qtubuntu, + qtubuntu-appmenutheme, +Depends: ${misc:Depends}, + ${shlibs:Depends}, +Description: Qt plugins for Mir support on Ubuntu (desktop) + QtUbuntu is a QPA plugin for Qt5 adding support for the Mir display server. + . + This variant of the package is for GNU-based desktops. --- qtubuntu-0.64+17.10.20170707.orig/debian/copyright +++ qtubuntu-0.64+17.10.20170707/debian/copyright @@ -0,0 +1,44 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: qtubuntu + +Files: * +Copyright: 2014 Canonical Ltd. +License: LGPL-3 + +Files: debian/* +Copyright: 2014 Canonical Ltd. +License: GPL-3 + +License: LGPL-3 + This package is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation, version 3 of + the License. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + . + You should have received a copy of the GNU Lesser General Public + License along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + . + On Debian systems, the complete text of the GNU Lesser General + Public License can be found in `/usr/share/common-licenses/LGPL-3'. + +License: GPL-3 + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 3 of the License. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . + . + On Debian systems, the full text of the GNU General Public License + version 3 can be found in the file /usr/share/common-licenses/GPL-3. --- qtubuntu-0.64+17.10.20170707.orig/debian/docs +++ qtubuntu-0.64+17.10.20170707/debian/docs @@ -0,0 +1 @@ +README --- qtubuntu-0.64+17.10.20170707.orig/debian/gles-patches/convert-to-gles.patch +++ qtubuntu-0.64+17.10.20170707/debian/gles-patches/convert-to-gles.patch @@ -0,0 +1,154 @@ +Index: qtubuntu/debian/control +=================================================================== +--- qtubuntu.orig/debian/control ++++ qtubuntu/debian/control +@@ -1,4 +1,4 @@ +-Source: qtubuntu ++Source: qtubuntu-gles + Priority: optional + Maintainer: Ubuntu Developers + Build-Depends: debhelper (>= 9), +@@ -12,11 +12,20 @@ Build-Depends: debhelper (>= 9), + libinput-dev, + libmirclient-dev (>= 0.13.0), + libmtdev-dev, ++ libqt5gui5-gles, ++ libqt5quick5-gles, ++ libqt5quickparticles5-gles, ++ libqt5quicktest5, ++ libqt5quickwidgets5-gles, ++ libqt5sensors5-dev, + libubuntu-application-api-dev (>= 2.9.0), + libudev-dev, + libxkbcommon-dev, + libxrender-dev, + qtbase5-private-dev, ++ qtbase5-gles-dev, ++ qtbase5-private-gles-dev, ++ qtdeclarative5-dev, + quilt, + # if you don't have have commit access to this branch but would like to upload + # directly to Ubuntu, don't worry: your changes will be merged back into the +@@ -26,7 +35,7 @@ Standards-Version: 3.9.6 + Section: libs + + Package: qtubuntu-android +-Architecture: arm64 armhf ++Architecture: amd64 i386 + Multi-Arch: same + Conflicts: qtubuntu-desktop, + Replaces: qtubuntu (<< 0.52), +@@ -37,43 +46,12 @@ Provides: qtubuntu, + Depends: ubuntu-application-api3-touch, + ${misc:Depends}, + ${shlibs:Depends}, +-Description: Qt plugins for Ubuntu Platform API (mobile) ++Description: Qt plugins for Ubuntu Platform API (mobile) - OpenGLES + QtUbuntu is a set of Qt5 components for the Ubuntu Platform API. It contains a + QPA (Qt Platform Abstraction) plugin based on the Ubuntu Platform API and a + legacy QPA plugin based on the compatibility layers. It also provides Qt + bindings for Ubuntu Platform API features that are not exposed through the QPA + plugins. + . +- This variant of the package is for Android-based phones and tablets. +- +-Package: qtubuntu-desktop +-Architecture: any +-Multi-Arch: same +-Conflicts: qtubuntu-android, +-Replaces: qtubuntu (<< 0.52), +- qtubuntu-android, +-Breaks: unity8 (<< 7.85), +-Provides: qtubuntu, +-Depends: ubuntu-application-api3-desktop, +- ${misc:Depends}, +- ${shlibs:Depends}, +-Description: Qt plugins for Ubuntu Platform API (desktop) +- QtUbuntu is a set of Qt5 components for the Ubuntu Platform API. It contains a +- QPA (Qt Platform Abstraction) plugin based on the Ubuntu Platform API and a +- legacy QPA plugin based on the compatibility layers. It also provides Qt +- bindings for Ubuntu Platform API features that are not exposed through the QPA +- plugins. +- . +- This variant of the package is for GNU-based desktops. +- +-Package: qtubuntu-appmenutheme +-Architecture: any +-Multi-Arch: same +-Depends: ${misc:Depends}, +- ${shlibs:Depends}, +-Description: Qt platform theme for exported application menus +- Appmenutheme enables the export of application menus to a global menu bar. +- It is implemented in a QPA platform theme plugin. +- . +- This package will work for applications designed for Qt5, as well as QML +- applications ++ This variant of the package is for Android-based phones and tablets (built ++ against the OpenGLES variant of qtbase). +Index: qtubuntu/debian/rules +=================================================================== +--- qtubuntu.orig/debian/rules ++++ qtubuntu/debian/rules +@@ -5,61 +5,35 @@ export DPKG_GENSYMBOLS_CHECK_LEVEL=4 + export QT_SELECT=5 + + ANDROID_DIR = build-android +-DESKTOP_DIR = build-desktop + TMP1_DIR = $(CURDIR)/debian/tmp1 +-TMP2_DIR = $(CURDIR)/debian/tmp2 + +-# We only want to build qtubuntu-android on arches using Qt built with OpenGL ES2.0 + DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) + DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) + DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) + + export PKG_CONFIG_PATH=/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig + +-gles2_architectures = arm64 armhf +- + %: + dh $@ + + override_dh_clean: +-ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), $(gles2_architectures))) +- rm -rf $(TMP1_DIR) $(DESKTOP_DIR) +-endif +- rm -rf $(TMP2_DIR) $(ANDROID_DIR) ++ rm -rf $(TMP1_DIR) $(ANDROID_DIR) + dh_clean + + override_dh_auto_configure: +-ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), $(gles2_architectures))) + mkdir -p $(ANDROID_DIR) + ifneq "$(DEB_HOST_ARCH)" "$(DEB_BUILD_ARCH)" + cd $(ANDROID_DIR) && qt5-qmake-$(DEB_HOST_MULTIARCH) "QMAKE_CXXFLAGS=-DPLATFORM_API_TOUCH" $(CURDIR) + else + dh_auto_configure -B$(ANDROID_DIR) -- "QMAKE_CXXFLAGS=-DPLATFORM_API_TOUCH" $(CURDIR) + endif +-endif +- mkdir -p $(DESKTOP_DIR) +-ifneq "$(DEB_HOST_ARCH)" "$(DEB_BUILD_ARCH)" +- cd $(DESKTOP_DIR) && qt5-qmake-$(DEB_HOST_MULTIARCH) "QMAKE_CXXFLAGS=-DQTUBUNTU_USE_OPENGL" $(CURDIR) +-else +- dh_auto_configure -B$(DESKTOP_DIR) -- "QMAKE_CXXFLAGS=-DQTUBUNTU_USE_OPENGL" $(CURDIR) +-endif + + override_dh_auto_build: +-ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), $(gles2_architectures))) + dh_auto_build -B$(ANDROID_DIR) +-endif +- dh_auto_build -B$(DESKTOP_DIR) + + override_dh_auto_install: + rm -f debian/*/usr/lib/*/qt5/examples/qtubuntu/qmlscene-ubuntu +-ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), $(gles2_architectures))) + mkdir -p $(TMP1_DIR) && cd $(ANDROID_DIR) && INSTALL_ROOT=$(TMP1_DIR) make install +-endif +- mkdir -p $(TMP2_DIR) && cd $(DESKTOP_DIR) && INSTALL_ROOT=$(TMP2_DIR) make install + + override_dh_install: +-ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), $(gles2_architectures))) + dh_install --sourcedir=$(TMP1_DIR) -pqtubuntu-android +-endif +- dh_install --sourcedir=$(TMP2_DIR) -pqtubuntu-desktop +- dh_install --sourcedir=$(TMP2_DIR) -pqtubuntu-appmenutheme --- qtubuntu-0.64+17.10.20170707.orig/debian/gles-patches/series +++ qtubuntu-0.64+17.10.20170707/debian/gles-patches/series @@ -0,0 +1 @@ +convert-to-gles.patch --- qtubuntu-0.64+17.10.20170707.orig/debian/qtubuntu-android.install +++ qtubuntu-0.64+17.10.20170707/debian/qtubuntu-android.install @@ -0,0 +1 @@ +usr/lib/*/qt5/plugins/platforms/* --- qtubuntu-0.64+17.10.20170707.orig/debian/qtubuntu-desktop.install +++ qtubuntu-0.64+17.10.20170707/debian/qtubuntu-desktop.install @@ -0,0 +1 @@ +usr/lib/*/qt5/plugins/platforms/* --- qtubuntu-0.64+17.10.20170707.orig/debian/rules +++ qtubuntu-0.64+17.10.20170707/debian/rules @@ -0,0 +1,65 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +export DPKG_GENSYMBOLS_CHECK_LEVEL=4 +export QT_SELECT=5 + +ANDROID_DIR = build-android +DESKTOP_DIR = build-desktop +TMP1_DIR = $(CURDIR)/debian/tmp1 +TMP2_DIR = $(CURDIR)/debian/tmp2 + +# We only want to build qtubuntu-android on arches using Qt built with OpenGL ES2.0 +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) + +export PKG_CONFIG_PATH=/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig + +gles2_architectures = arm64 armhf + +%: + dh $@ + +override_dh_clean: +ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), $(gles2_architectures))) + rm -rf $(TMP1_DIR) $(DESKTOP_DIR) +endif + rm -rf $(TMP2_DIR) $(ANDROID_DIR) + rm -rf src/ubuntuappmenu + dh_clean + +override_dh_auto_configure: +ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), $(gles2_architectures))) + mkdir -p $(ANDROID_DIR) + ifneq "$(DEB_HOST_ARCH)" "$(DEB_BUILD_ARCH)" + cd $(ANDROID_DIR) && qt5-qmake-$(DEB_HOST_MULTIARCH) "QMAKE_CXXFLAGS=-DPLATFORM_API_TOUCH" $(CURDIR) + else + dh_auto_configure -B$(ANDROID_DIR) -- "QMAKE_CXXFLAGS=-DPLATFORM_API_TOUCH" $(CURDIR) + endif +endif + mkdir -p $(DESKTOP_DIR) +ifneq "$(DEB_HOST_ARCH)" "$(DEB_BUILD_ARCH)" + cd $(DESKTOP_DIR) && qt5-qmake-$(DEB_HOST_MULTIARCH) "QMAKE_CXXFLAGS=-DQTUBUNTU_USE_OPENGL" $(CURDIR) +else + dh_auto_configure -B$(DESKTOP_DIR) -- "QMAKE_CXXFLAGS=-DQTUBUNTU_USE_OPENGL" $(CURDIR) +endif + +override_dh_auto_build: +ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), $(gles2_architectures))) + dh_auto_build -B$(ANDROID_DIR) +endif + dh_auto_build -B$(DESKTOP_DIR) + +override_dh_auto_install: + rm -f debian/*/usr/lib/*/qt5/examples/qtubuntu/qmlscene-ubuntu +ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), $(gles2_architectures))) + mkdir -p $(TMP1_DIR) && cd $(ANDROID_DIR) && INSTALL_ROOT=$(TMP1_DIR) make install +endif + mkdir -p $(TMP2_DIR) && cd $(DESKTOP_DIR) && INSTALL_ROOT=$(TMP2_DIR) make install + +override_dh_install: +ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), $(gles2_architectures))) + dh_install --sourcedir=$(TMP1_DIR) -pqtubuntu-android +endif + dh_install --sourcedir=$(TMP2_DIR) -pqtubuntu-desktop --- qtubuntu-0.64+17.10.20170707.orig/debian/source/format +++ qtubuntu-0.64+17.10.20170707/debian/source/format @@ -0,0 +1 @@ +1.0 --- qtubuntu-0.64+17.10.20170707.orig/src/src.pro +++ qtubuntu-0.64+17.10.20170707/src/src.pro @@ -1,3 +1,3 @@ TEMPLATE = subdirs -SUBDIRS += ubuntumirclient ubuntuappmenu +SUBDIRS += ubuntumirclient --- qtubuntu-0.64+17.10.20170707.orig/src/ubuntumirclient/qmirclientcursor.cpp +++ qtubuntu-0.64+17.10.20170707/src/ubuntumirclient/qmirclientcursor.cpp @@ -138,11 +138,17 @@ { public: CursorWindowSpec(MirConnection *connection, const char *name) - : spec(mir_create_window_spec(connection)) + : CursorWindowSpec(connection) { mir_window_spec_set_cursor_name(spec, name); } + CursorWindowSpec(MirConnection *connection, MirRenderSurface *surface, int hotspotX, int hotspotY) + : CursorWindowSpec(connection) + { + mir_window_spec_set_cursor_render_surface(spec, surface, hotspotX, hotspotY); + } + ~CursorWindowSpec() { mir_window_spec_release(spec); @@ -153,8 +159,60 @@ mir_window_apply_spec(window, spec); } private: + CursorWindowSpec(MirConnection *connection) : spec(mir_create_window_spec(connection)) {} MirWindowSpec * const spec; }; + +class BufferStream +{ +public: + BufferStream(MirRenderSurface *surface, int width, int height) + : stream(mir_render_surface_get_buffer_stream(surface, width, height, mir_pixel_format_argb_8888)) + { + } + + void draw(QImage const& image) + { + MirGraphicsRegion region; + const bool validRegion = mir_buffer_stream_get_graphics_region(stream, ®ion); + if (!validRegion) + throw std::runtime_error("Could not get graphics region to draw into"); + + auto regionLine = region.vaddr; + Q_ASSERT(image.bytesPerLine() <= region.stride); + + for (int i = 0; i < image.height(); ++i) { + memcpy(regionLine, image.scanLine(i), image.bytesPerLine()); + regionLine += region.stride; + } + mir_buffer_stream_swap_buffers_sync(stream); + } + +private: + MirBufferStream * const stream; +}; + +class RenderSurface +{ +public: + RenderSurface(MirConnection *connection, int width, int height) + : surface(mir_connection_create_render_surface_sync(connection, width, height)), + stream(surface, width, height) + { + if (!mir_render_surface_is_valid(surface)) { + throw std::runtime_error(mir_render_surface_get_error_message(surface)); + } + } + + ~RenderSurface() { mir_render_surface_release(surface); } + operator MirRenderSurface *() const { return surface; } + void draw(QImage const& image) { stream.draw(image); } + +private: + MirRenderSurface * const surface; + BufferStream stream; +}; + } // anonymous namespace void QMirClientCursor::changeCursor(QCursor *windowCursor, QWindow *window) @@ -196,30 +254,15 @@ image = image.convertToFormat(QImage::Format_ARGB32); } - MirBufferStream *bufferStream = mir_connection_create_buffer_stream_sync(mConnection, - image.width(), image.height(), mir_pixel_format_argb_8888, mir_buffer_usage_software); - - { - MirGraphicsRegion region; - mir_buffer_stream_get_graphics_region(bufferStream, ®ion); - - char *regionLine = region.vaddr; - Q_ASSERT(image.bytesPerLine() <= region.stride); - for (int i = 0; i < image.height(); ++i) { - memcpy(regionLine, image.scanLine(i), image.bytesPerLine()); - regionLine += region.stride; - } + try { + RenderSurface surface(mConnection, image.width(), image.height()); + surface.draw(image); + + CursorWindowSpec spec(mConnection, surface, cursor.hotSpot().x(), cursor.hotSpot().y()); + spec.apply(window); + } catch(std::exception const& e) { + qWarning("Error applying pixmap cursor: %s", e.what()); } - - mir_buffer_stream_swap_buffers_sync(bufferStream); - - { - auto configuration = mir_cursor_configuration_from_buffer_stream(bufferStream, cursor.hotSpot().x(), cursor.hotSpot().y()); - mir_window_configure_cursor(window, configuration); - mir_cursor_configuration_destroy(configuration); - } - - mir_buffer_stream_release_sync(bufferStream); } void QMirClientCursor::applyDefaultCursorConfiguration(MirWindow *window) --- qtubuntu-0.64+17.10.20170707.orig/src/ubuntumirclient/qmirclientintegration.cpp +++ qtubuntu-0.64+17.10.20170707/src/ubuntumirclient/qmirclientintegration.cpp @@ -41,7 +41,6 @@ // Local #include "qmirclientintegration.h" #include "qmirclientbackingstore.h" -#include "qmirclientclipboard.h" #include "qmirclientdebugextension.h" #include "qmirclientdesktopwindow.h" #include "qmirclientglcontext.h" @@ -61,67 +60,93 @@ #include #include #include +#include #include #include #include #include -// platform-api -#include -#include -#include +namespace +{ +class UbuntuIconTheme : public QGenericUnixTheme +{ +public: + UbuntuIconTheme() + {} + + // From QPlatformTheme + QVariant themeHint(ThemeHint hint) const override + { + if (hint == QPlatformTheme::SystemIconThemeName) + { + QByteArray iconTheme = qgetenv("QTUBUNTU_ICON_THEME"); + if (iconTheme.isEmpty()) + { + return QVariant(QStringLiteral("ubuntu-mobile")); + } + else + { + return QVariant(QString(iconTheme)); + } + } + else + { + return QGenericUnixTheme::themeHint(hint); + } + } +}; -static void resumedCallback(const UApplicationOptions */*options*/, void *context) +QByteArray generateSessionNameFromQmlFile(QStringList &args) { - auto integration = static_cast(context); - integration->appStateController()->setResumed(); + Q_FOREACH (QString arg, args) { + if (arg.endsWith(".qml")) { + QFileInfo fileInfo(arg); + return fileInfo.fileName().toLocal8Bit(); + } + } + + // give up + return "qmlscene"; } -static void aboutToStopCallback(UApplicationArchive */*archive*/, void *context) +QByteArray generateSessionName(QStringList args) { - auto integration = static_cast(context); - auto inputContext = integration->inputContext(); - if (inputContext) { - inputContext->hideInputPanel(); + // Try to come up with some meaningful session name to uniquely identify this session, + // helping with shell debugging + if (args.count() == 0) { + return QByteArray("QtUbuntu"); + } if (args[0].contains("qmlscene")) { + return generateSessionNameFromQmlFile(args); } else { - qCWarning(mirclient) << "aboutToStopCallback(): no input context"; + // use the executable name + QFileInfo fileInfo(args[0]); + return fileInfo.fileName().toLocal8Bit(); } - integration->appStateController()->setSuspended(); } +MirConnection *make_mir_connection() +{ + auto sessionName = generateSessionName(QCoreApplication::arguments()); + auto mirConnection = mir_connect_sync(nullptr, sessionName.data()); + if (!mir_connection_is_valid(mirConnection)) + { + qCritical("Mir returned: \"%s\"", mir_connection_get_error_message(mirConnection)); + mir_connection_release(mirConnection); + exit(EXIT_FAILURE); + } + return mirConnection; +} +} QMirClientClientIntegration::QMirClientClientIntegration(int argc, char **argv) : QPlatformIntegration() , mNativeInterface(new QMirClientNativeInterface(this)) , mFontDb(new QGenericUnixFontDatabase) - , mServices(new QMirClientPlatformServices) + , mPlatformServices(new QGenericUnixServices) , mAppStateController(new QMirClientAppStateController) , mScaleFactor(1.0) + , mMirConnection(make_mir_connection()) { - QByteArray sessionName; - { - QStringList args = QCoreApplication::arguments(); - setupOptions(args); - sessionName = generateSessionName(args); - setupDescription(sessionName); - } - - // Create new application instance - mInstance = u_application_instance_new_from_description_with_options(mDesc, mOptions); - - if (mInstance == nullptr) { - qCritical("[QPA] QMirClientClientIntegration: connection to Mir server failed.\n"); - - // TODO: add API to platform-api to fetch Mir's error message (bug:1655970). - // Workaround by retrying the connection here in order to get the message. - auto mirConnection = mir_connect_sync(nullptr, sessionName.data()); - qCritical("Mir returned: \"%s\"", mir_connection_get_error_message(mirConnection)); - mir_connection_release(mirConnection); - exit(EXIT_FAILURE); - } - - mMirConnection = u_application_instance_get_mir_connection(mInstance); - // Choose the default surface format suited to the Mir platform QSurfaceFormat defaultFormat; defaultFormat.setRedBufferSize(8); @@ -130,8 +155,7 @@ QSurfaceFormat::setDefaultFormat(defaultFormat); // Initialize EGL. - mEglNativeDisplay = mir_connection_get_egl_native_display(mMirConnection); - ASSERT((mEglDisplay = eglGetDisplay(mEglNativeDisplay)) != EGL_NO_DISPLAY); + ASSERT((mEglDisplay = eglGetDisplay(mMirConnection)) != EGL_NO_DISPLAY); ASSERT(eglInitialize(mEglDisplay, nullptr, nullptr) == EGL_TRUE); // Has debug mode been requsted, either with "-testability" switch or QT_LOAD_TESTABILITY env var @@ -185,70 +209,7 @@ eglTerminate(mEglDisplay); delete mInput; delete mInputContext; - delete mServices; -} - -QPlatformServices *QMirClientClientIntegration::services() const -{ - return mServices; -} - -void QMirClientClientIntegration::setupOptions(QStringList &args) -{ - int argc = args.size() + 1; - char **argv = new char*[argc]; - for (int i = 0; i < argc - 1; i++) - argv[i] = qstrdup(args.at(i).toLocal8Bit()); - argv[argc - 1] = nullptr; - - mOptions = u_application_options_new_from_cmd_line(argc - 1, argv); - - for (int i = 0; i < argc; i++) - delete [] argv[i]; - delete [] argv; -} - -void QMirClientClientIntegration::setupDescription(QByteArray &sessionName) -{ - mDesc = u_application_description_new(); - - UApplicationId* id = u_application_id_new_from_stringn(sessionName.data(), sessionName.count()); - u_application_description_set_application_id(mDesc, id); - - UApplicationLifecycleDelegate* delegate = u_application_lifecycle_delegate_new(); - u_application_lifecycle_delegate_set_application_resumed_cb(delegate, &resumedCallback); - u_application_lifecycle_delegate_set_application_about_to_stop_cb(delegate, &aboutToStopCallback); - u_application_lifecycle_delegate_set_context(delegate, this); - u_application_description_set_application_lifecycle_delegate(mDesc, delegate); -} - -QByteArray QMirClientClientIntegration::generateSessionName(QStringList &args) -{ - // Try to come up with some meaningful session name to uniquely identify this session, - // helping with shell debugging - - if (args.count() == 0) { - return QByteArray("QtUbuntu"); - } if (args[0].contains("qmlscene")) { - return generateSessionNameFromQmlFile(args); - } else { - // use the executable name - QFileInfo fileInfo(args[0]); - return fileInfo.fileName().toLocal8Bit(); - } -} - -QByteArray QMirClientClientIntegration::generateSessionNameFromQmlFile(QStringList &args) -{ - Q_FOREACH (QString arg, args) { - if (arg.endsWith(".qml")) { - QFileInfo fileInfo(arg); - return fileInfo.fileName().toLocal8Bit(); - } - } - - // give up - return "qmlscene"; + mir_connection_release(mMirConnection); } QPlatformWindow* QMirClientClientIntegration::createPlatformWindow(QWindow* window) const @@ -262,6 +223,11 @@ } } +QPlatformServices *QMirClientClientIntegration::services() const +{ + return mPlatformServices.data(); +} + bool QMirClientClientIntegration::hasCapability(QPlatformIntegration::Capability cap) const { switch (cap) { @@ -350,15 +316,6 @@ return QPlatformIntegration::styleHint(hint); } -QPlatformClipboard* QMirClientClientIntegration::clipboard() const -{ - static QPlatformClipboard *clipboard = nullptr; - if (!clipboard) { - clipboard = new QMirClientClipboard; - } - return clipboard; -} - QPlatformNativeInterface* QMirClientClientIntegration::nativeInterface() const { return mNativeInterface; --- qtubuntu-0.64+17.10.20170707.orig/src/ubuntumirclient/qmirclientintegration.h +++ qtubuntu-0.64+17.10.20170707/src/ubuntumirclient/qmirclientintegration.h @@ -45,13 +45,8 @@ #include #include "qmirclientappstatecontroller.h" -#include "qmirclientplatformservices.h" #include "qmirclientscreenobserver.h" -// platform-api -#include -#include - #include class QMirClientDebugExtension; @@ -81,7 +76,6 @@ QPlatformServices *services() const override; QPlatformWindow* createPlatformWindow(QWindow* window) const override; QPlatformInputContext* inputContext() const override { return mInputContext; } - QPlatformClipboard* clipboard() const override; void initialize() override; QPlatformOffscreenSurface *createPlatformOffscreenSurface(QOffscreenSurface *surface) const override; QPlatformAccessibility *accessibility() const override; @@ -89,7 +83,7 @@ // New methods. MirConnection *mirConnection() const { return mMirConnection; } EGLDisplay eglDisplay() const { return mEglDisplay; } - EGLNativeDisplayType eglNativeDisplay() const { return mEglNativeDisplay; } + EGLNativeDisplayType eglNativeDisplay() const { return mMirConnection; } QMirClientAppStateController *appStateController() const { return mAppStateController.data(); } QMirClientScreenObserver *screenObserver() const { return mScreenObserver.data(); } QMirClientDebugExtension *debugExtension() const { return mDebugExtension.data(); } @@ -100,32 +94,23 @@ private: void setupOptions(QStringList &args); void setupDescription(QByteArray &sessionName); - static QByteArray generateSessionName(QStringList &args); - static QByteArray generateSessionNameFromQmlFile(QStringList &args); QMirClientNativeInterface* mNativeInterface; QPlatformFontDatabase* mFontDb; - QMirClientPlatformServices* mServices; - QMirClientInput* mInput; QPlatformInputContext* mInputContext; mutable QScopedPointer mAccessibility; + const QScopedPointer mPlatformServices; + const QScopedPointer mAppStateController; QScopedPointer mDebugExtension; QScopedPointer mScreenObserver; - QScopedPointer mAppStateController; qreal mScaleFactor; MirConnection *mMirConnection; - // Platform API stuff - UApplicationOptions* mOptions; - UApplicationDescription* mDesc; - UApplicationInstance* mInstance; - // EGL related EGLDisplay mEglDisplay{EGL_NO_DISPLAY}; - EGLNativeDisplayType mEglNativeDisplay; }; #endif // QMIRCLIENTINTEGRATION_H --- qtubuntu-0.64+17.10.20170707.orig/src/ubuntumirclient/qmirclientwindow.cpp +++ qtubuntu-0.64+17.10.20170707/src/ubuntumirclient/qmirclientwindow.cpp @@ -75,12 +75,6 @@ using Spec = std::unique_ptr; -EGLNativeWindowType nativeWindowFor(MirWindow *surf) -{ - auto stream = mir_window_get_buffer_stream(surf); - return reinterpret_cast(mir_buffer_stream_get_egl_native_window(stream)); -} - const char *qtWindowStateToStr(Qt::WindowState state) { switch (state) { @@ -114,24 +108,6 @@ Q_UNREACHABLE(); } -const char *mirPixelFormatToStr(MirPixelFormat pixelFormat) -{ - switch (pixelFormat) { - case mir_pixel_format_invalid: return "invalid"; - case mir_pixel_format_abgr_8888: return "ABGR8888"; - case mir_pixel_format_xbgr_8888: return "XBGR8888"; - case mir_pixel_format_argb_8888: return "ARGB8888"; - case mir_pixel_format_xrgb_8888: return "XRGB8888"; - case mir_pixel_format_bgr_888: return "BGR888"; - case mir_pixel_format_rgb_888: return "RGB888"; - case mir_pixel_format_rgb_565: return "RGB565"; - case mir_pixel_format_rgba_5551: return "RGBA5551"; - case mir_pixel_format_rgba_4444: return "RGBA4444"; - case mir_pixel_formats: Q_UNREACHABLE(); - } - Q_UNREACHABLE(); -} - const char *mirWindowTypeToStr(MirWindowType type) { switch (type) { @@ -221,12 +197,23 @@ return requiresParent(qtWindowTypeToMirWindowType(type)); } -Spec makeSurfaceSpec(QWindow *window, MirPixelFormat pixelFormat, QMirClientWindow *parentWindowHandle, - MirConnection *connection) +QRect geometryFor(QWindow *window) { - const auto geometry = window->geometry(); - const int width = geometry.width() > 0 ? geometry.width() : 1; - const int height = geometry.height() > 0 ? geometry.height() : 1; + auto geometry = window->geometry(); + if (geometry.width() < 1) + geometry.setWidth(1); + if (geometry.height() < 1) + geometry.setHeight(1); + + return geometry; +} + +Spec makeWindowSpec(QWindow *window, QMirClientWindow *parentWindowHandle, + MirRenderSurface *surface, MirConnection *connection) +{ + const auto geometry = geometryFor(window); + const int width = geometry.width(); + const int height = geometry.height(); auto type = qtWindowTypeToMirWindowType(window->type()); MirRectangle location{geometry.x(), geometry.y(), 0, 0}; @@ -272,7 +259,6 @@ // There's no helper function for satellite windows. Guess they're not very popular spec = Spec{mir_create_window_spec(connection)}; mir_window_spec_set_type(spec.get(), mir_window_type_satellite); - mir_window_spec_set_buffer_usage(spec.get(), mir_buffer_usage_hardware); mir_window_spec_set_parent(spec.get(), parent); mir_window_spec_set_width(spec.get(), width); mir_window_spec_set_height(spec.get(), height); @@ -282,9 +268,9 @@ break; } - mir_window_spec_set_pixel_format(spec.get(), pixelFormat); + mir_window_spec_add_render_surface(spec.get(), surface, width, height, 0, 0); - qCDebug(mirclient, "makeSurfaceSpec(window=%p): %s spec (type=0x%x, position=(%d, %d)px, size=(%dx%d)px)", + qCDebug(mirclient, "makeWindowSpec(window=%p): %s spec (type=0x%x, position=(%d, %d)px, size=(%dx%d)px)", window, mirWindowTypeToStr(type), window->type(), location.left, location.top, width, height); return spec; @@ -331,14 +317,29 @@ mir_window_spec_set_input_shape(spec, rects, count); } +MirRenderSurface *createMirSurface(QWindow *window, MirConnection *connection) +{ + const auto geometry = geometryFor(window); + const int width = geometry.width(); + const int height = geometry.height(); + + auto surface = mir_connection_create_render_surface_sync(connection, width, height); + if (!mir_render_surface_is_valid(surface)) + { + auto errorMsg = mir_render_surface_get_error_message(surface); + qFatal("Failed to create mir surface: %s", errorMsg); + } + return surface; +} + MirWindow *createMirWindow(QWindow *window, int mirOutputId, QMirClientWindow *parentWindowHandle, - MirPixelFormat pixelFormat, MirConnection *connection, - MirWindowEventCallback inputCallback, void *inputContext) + MirRenderSurface *surface, MirConnection *connection, + MirWindowEventCallback eventCallback, void *context) { - auto spec = makeSurfaceSpec(window, pixelFormat, parentWindowHandle, connection); + auto spec = makeWindowSpec(window, parentWindowHandle, surface, connection); // Install event handler as early as possible - mir_window_spec_set_event_handler(spec.get(), inputCallback, inputContext); + mir_window_spec_set_event_handler(spec.get(), eventCallback, context); const auto title = window->title().toUtf8(); mir_window_spec_set_name(spec.get(), title.constData()); @@ -358,9 +359,14 @@ mir_window_spec_set_state(spec.get(), mir_window_state_hidden); } - auto surface = mir_create_window_sync(spec.get()); - Q_ASSERT(mir_window_is_valid(surface)); - return surface; + auto mirWindow = mir_create_window_sync(spec.get()); + if (!mir_window_is_valid(mirWindow)) + { + auto errorMsg = mir_window_get_error_message(mirWindow); + qFatal("Failed to create mir window: %s", errorMsg); + } + + return mirWindow; } QMirClientWindow *getParentIfNecessary(QWindow *window, QMirClientInput *input) @@ -377,18 +383,6 @@ return parentWindowHandle; } -MirPixelFormat disableAlphaBufferIfPossible(MirPixelFormat pixelFormat) -{ - switch (pixelFormat) { - case mir_pixel_format_abgr_8888: - return mir_pixel_format_xbgr_8888; - case mir_pixel_format_argb_8888: - return mir_pixel_format_xrgb_8888; - default: // can do nothing, leave it alone - return pixelFormat; - } -} - // FIXME - in order to work around https://bugs.launchpad.net/mir/+bug/1346633 // we need to guess the panel height (3GU) int panelHeight() @@ -426,7 +420,6 @@ void onSwapBuffersDone(); void handleSurfaceResized(int width, int height); - int needsRepaint() const; MirWindowState state() const { return mir_window_get_state(mMirWindow); } void setState(MirWindowState state); @@ -448,7 +441,7 @@ QString persistentSurfaceId(); private: - static void surfaceEventCallback(MirWindow* surface, const MirEvent *event, void* context); + static void windowEventCallback(MirWindow* surface, const MirEvent *event, void* context); void postEvent(const MirEvent *event); QWindow * const mWindow; @@ -458,14 +451,12 @@ QMirClientWindow * mParentWindowHandle{nullptr}; MirWindow* mMirWindow; + MirRenderSurface* mMirSurface; const EGLDisplay mEglDisplay; EGLSurface mEglSurface; - bool mNeedsRepaint; bool mParented; - QSize mBufferSize; QSurfaceFormat mFormat; - MirPixelFormat mPixelFormat; QMutex mTargetSizeMutex; QSize mTargetSize; @@ -479,7 +470,6 @@ , mInput(input) , mConnection(connection) , mEglDisplay(display) - , mNeedsRepaint(false) , mParented(mWindow->transientParent() || mWindow->parent()) , mFormat(mWindow->requestedFormat()) , mShellChrome(mWindow->flags() & LowChromeWindowHint ? mir_shell_chrome_low : mir_shell_chrome_normal) @@ -506,50 +496,33 @@ mFormat = q_glFormatFromConfig(display, config, mFormat); - // Have Mir decide the pixel format most suited to the chosen EGLConfig. This is the only way - // Mir will know what EGLConfig has been chosen - it cannot deduce it from the buffers. - mPixelFormat = mir_connection_get_egl_pixel_format(connection, display, config); - // But the chosen EGLConfig might have an alpha buffer enabled, even if not requested by the client. - // If that's the case, try to edit the chosen pixel format in order to disable the alpha buffer. - // This is an optimization for the compositor, as it can avoid blending this surface. - if (mWindow->requestedFormat().alphaBufferSize() < 0) { - mPixelFormat = disableAlphaBufferIfPossible(mPixelFormat); - } - const auto outputId = static_cast(mWindow->screen()->handle())->mirOutputId(); mParentWindowHandle = getParentIfNecessary(mWindow, input); - mMirWindow = createMirWindow(mWindow, outputId, mParentWindowHandle, mPixelFormat, connection, surfaceEventCallback, this); - mEglSurface = eglCreateWindowSurface(mEglDisplay, config, nativeWindowFor(mMirWindow), nullptr); + mMirSurface = createMirSurface(mWindow, connection); + mMirWindow = createMirWindow(mWindow, outputId, mParentWindowHandle, mMirSurface, connection, windowEventCallback, this); + mEglSurface = eglCreateWindowSurface(mEglDisplay, config, reinterpret_cast(mMirSurface), nullptr); mNeedsExposeCatchup = mir_window_get_visibility(mMirWindow) == mir_window_visibility_occluded; - // Window manager can give us a final size different from what we asked for - // so let's check what we ended up getting - MirWindowParameters parameters; - mir_window_get_parameters(mMirWindow, ¶meters); - - auto geom = mWindow->geometry(); - geom.setWidth(parameters.width); - geom.setHeight(parameters.height); - // Assume that the buffer size matches the surface size at creation time - mBufferSize = geom.size(); - platformWindow->QPlatformWindow::setGeometry(geom); - QWindowSystemInterface::handleGeometryChange(mWindow, geom); + auto geom = mWindow->geometry(); qCDebug(mirclient) << "Created surface with geometry:" << geom << "title:" << mWindow->title(); qCDebug(mirclientGraphics) << "Requested format:" << mWindow->requestedFormat() - << "\nActual format:" << mFormat - << "with associated Mir pixel format:" << mirPixelFormatToStr(mPixelFormat); + << "\nActual format:" << mFormat; } UbuntuSurface::~UbuntuSurface() { - if (mEglSurface != EGL_NO_SURFACE) + if (mEglSurface != EGL_NO_SURFACE) { eglDestroySurface(mEglDisplay, mEglSurface); + } + if (mMirSurface) { + mir_render_surface_release(mMirSurface); + } if (mMirWindow) { mir_window_release_sync(mMirWindow); } @@ -606,30 +579,23 @@ { QMutexLocker lock(&mTargetSizeMutex); - // mir's resize event is mainly a signal that we need to redraw our content. We use the - // width/height as identifiers to figure out if this is the latest surface resize event - // that has posted, discarding any old ones. This avoids issuing too many redraw events. - // see TODO in postEvent as the ideal way we should handle this. - // The actual buffer size may or may have not changed at this point, so let the rendering - // thread drive the window geometry updates. - mNeedsRepaint = mTargetSize.width() == width && mTargetSize.height() == height; -} - -int UbuntuSurface::needsRepaint() const -{ - if (mNeedsRepaint) { - if (mTargetSize != mBufferSize) { - //If the buffer hasn't changed yet, we need at least two redraws, - //once to get the new buffer size and propagate the geometry changes - //and the second to redraw the content at the new size - return 2; - } else { - // The buffer size has already been updated so we only need one redraw - // to render at the new size - return 1; - } + // There could have been a flurry of resize events, only process the latest event + const bool needsResize = mTargetSize.width() == width && mTargetSize.height() == height; + if (needsResize) { + // Resize the buffers + mir_render_surface_set_size(mMirSurface, width, height); + + //Resize the window + Spec spec{mir_create_window_spec(mConnection)}; + mir_window_spec_add_render_surface(spec.get(), mMirSurface, width, height, 0, 0); + mir_window_apply_spec(mMirWindow, spec.get()); + + QRect newGeometry = mPlatformWindow->geometry(); + newGeometry.setSize(mTargetSize); + + mPlatformWindow->QPlatformWindow::setGeometry(newGeometry); + QWindowSystemInterface::handleGeometryChange(mWindow, newGeometry); } - return 0; } void UbuntuSurface::setState(MirWindowState state) @@ -653,35 +619,13 @@ static int sFrameNumber = 0; ++sFrameNumber; - EGLint eglSurfaceWidth = -1; - EGLint eglSurfaceHeight = -1; - eglQuerySurface(mEglDisplay, mEglSurface, EGL_WIDTH, &eglSurfaceWidth); - eglQuerySurface(mEglDisplay, mEglSurface, EGL_HEIGHT, &eglSurfaceHeight); - - const bool validSize = eglSurfaceWidth > 0 && eglSurfaceHeight > 0; - - if (validSize && (mBufferSize.width() != eglSurfaceWidth || mBufferSize.height() != eglSurfaceHeight)) { - - qCDebug(mirclientBufferSwap, "onSwapBuffersDone(window=%p) [%d] - size changed (%d, %d) => (%d, %d)", - mWindow, sFrameNumber, mBufferSize.width(), mBufferSize.height(), eglSurfaceWidth, eglSurfaceHeight); - - mBufferSize.rwidth() = eglSurfaceWidth; - mBufferSize.rheight() = eglSurfaceHeight; - - QRect newGeometry = mPlatformWindow->geometry(); - newGeometry.setSize(mBufferSize); - - mPlatformWindow->QPlatformWindow::setGeometry(newGeometry); - QWindowSystemInterface::handleGeometryChange(mWindow, newGeometry); - } else { - qCDebug(mirclientBufferSwap, "onSwapBuffersDone(window=%p) [%d] - buffer size (%d,%d)", - mWindow, sFrameNumber, mBufferSize.width(), mBufferSize.height()); - } + qCDebug(mirclientBufferSwap, "onSwapBuffersDone(window=%p) [%d]", + mWindow, sFrameNumber); } -void UbuntuSurface::surfaceEventCallback(MirWindow *surface, const MirEvent *event, void* context) +void UbuntuSurface::windowEventCallback(MirWindow *window, const MirEvent *event, void* context) { - Q_UNUSED(surface); + Q_UNUSED(window); Q_ASSERT(context != nullptr); auto s = static_cast(context); @@ -692,9 +636,8 @@ { const auto eventType = mir_event_get_type(event); if (mir_event_type_resize == eventType) { - // TODO: The current event queue just accumulates all resize events; - // It would be nicer if we could update just one event if that event has not been dispatched. - // As a workaround, we use the width/height as an identifier of this latest event + // The event queue just accumulates all resize events; + // Use the width and height as an identifier of this latest event // so the event handler (handleSurfaceResized) can discard/ignore old ones. const auto resizeEvent = mir_event_get_resize_event(event); const auto width = mir_resize_event_get_width(resizeEvent); @@ -786,19 +729,6 @@ qCDebug(mirclient, "handleSurfaceResize(window=%p, size=(%dx%d)px", window(), width, height); mSurface->handleSurfaceResized(width, height); - - // This resize event could have occurred just after the last buffer swap for this window. - // This means the client may still be holding a buffer with the older size. The first redraw call - // will then render at the old size. After swapping the client now will get a new buffer with the - // updated size but it still needs re-rendering so another redraw may be needed. - // A mir API to drop the currently held buffer would help here, so that we wouldn't have to redraw twice - auto const numRepaints = mSurface->needsRepaint(); - lock.unlock(); - qCDebug(mirclient, "handleSurfaceResize(window=%p) redraw %d times", window(), numRepaints); - for (int i = 0; i < numRepaints; i++) { - qCDebug(mirclient, "handleSurfaceResize(window=%p) repainting size=(%dx%d)dp", window(), geometry().size().width(), geometry().size().height()); - QWindowSystemInterface::handleExposeEvent(window(), QRect(QPoint(), geometry().size())); - } } void QMirClientWindow::handleSurfaceExposeChange(bool exposed) --- qtubuntu-0.64+17.10.20170707.orig/src/ubuntumirclient/ubuntumirclient.pro +++ qtubuntu-0.64+17.10.20170707/src/ubuntumirclient/ubuntumirclient.pro @@ -4,22 +4,22 @@ QT += \ core-private dbus linuxaccessibility_support-private \ theme_support-private eventdispatcher_support-private \ + service_support-private \ fontdatabase_support-private egl_support-private CONFIG += plugin no_keywords qpa/genericunixfontdatabase -DEFINES += MESA_EGL_NO_X11_HEADERS +DEFINES += MESA_EGL_NO_X11_HEADERS MIR_DEPRECATE_RENDERSURFACES=0 MIR_ENABLE_DEPRECATIONS=0 # CONFIG += c++11 # only enables C++0x QMAKE_CXXFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden -std=c++11 -Werror -Wall QMAKE_CXXFLAGS += -Wno-error=deprecated-declarations QMAKE_LFLAGS += -std=c++11 -Wl,-no-undefined CONFIG += link_pkgconfig -PKGCONFIG += egl mirclient ubuntu-platform-api xkbcommon libcontent-hub +PKGCONFIG += egl mirclient xkbcommon SOURCES = \ qmirclientbackingstore.cpp \ - qmirclientclipboard.cpp \ qmirclientcursor.cpp \ qmirclientdebugextension.cpp \ qmirclientdesktopwindow.cpp \ @@ -27,7 +27,6 @@ qmirclientinput.cpp \ qmirclientintegration.cpp \ qmirclientnativeinterface.cpp \ - qmirclientplatformservices.cpp \ qmirclientplugin.cpp \ qmirclientscreen.cpp \ qmirclientscreenobserver.cpp \ @@ -36,7 +35,6 @@ HEADERS = \ qmirclientbackingstore.h \ - qmirclientclipboard.h \ qmirclientcursor.h \ qmirclientdebugextension.h \ qmirclientdesktopwindow.h \ @@ -45,7 +43,6 @@ qmirclientintegration.h \ qmirclientnativeinterface.h \ qmirclientorientationchangeevent_p.h \ - qmirclientplatformservices.h \ qmirclientplugin.h \ qmirclientscreenobserver.h \ qmirclientscreen.h \