I have made the following changes intended for : CE:UX:MTF / meegotouch-compositor
Please review and accept or decline. BOSS has already run some checks on this request. See the "Messages from BOSS" section below. https://build.pub.meego.com//request/show/6510 Thank You, Marko Saukko [This message was auto-generated] --- Request # 6510: Messages from BOSS: Applying the actions required to automate this process has failed, because the bossbot user was not authorized to do so. Please add bossbot as a maintainer in the target projet CE:UX:MTF Applying the actions required to automate this process has failed, because the bossbot user was not authorized to do so. Please add bossbot as a maintainer in the target projet CE:UX:MTF State: revoked at 2012-08-31T11:50:02 by sage Reviews: new for bossbot : Under automated review Changes: submit: Project:MTF:UX / meegotouch-compositor -> CE:UX:MTF / meegotouch-compositor changes files: -------------- --- meegotouch-compositor.changes +++ meegotouch-compositor.changes @@ -0,0 +1,8 @@ +* Thu Aug 30 2012 Robin Burchell <[email protected]> - 1.1.31-1 +- Remove no_mce.patch. Breaks lipstick homescreen, wastes battery, not useful. +- Add 0001-remove-lockscreen_painted-waiting-logic.patch, waiting for lockscreen + paints is no longer necessary. +- Add 0001-sort-lockscreens-before-checking-desktops.patch, lockscreen should + always be sorted above everything. Required now the desktop can also be a + lockscreen. + old: ---- no_mce.patch new: ---- 0001-remove-lockscreen_painted-waiting-logic.patch 0001-sort-lockscreens-before-checking-desktops.patch spec files: ----------- --- meegotouch-compositor.spec +++ meegotouch-compositor.spec @@ -1,11 +1,13 @@ # # Do NOT Edit the Auto-generated Part! -# Generated by: spectacle version 0.23 +# Generated by: spectacle version 0.24.1 # + +Name: meegotouch-compositor + # >> macros # << macros -Name: meegotouch-compositor Summary: MeeGo UI Compositing Window Manager Version: 1.1.31 Release: 1 @@ -17,16 +19,17 @@ Source2: X-MEEGO-HS.desktop Source100: meegotouch-compositor.yaml Patch0: BMC_14207_double_xterm_thumbnail.patch -Patch1: no_mce.patch -Patch2: XSync-after-un-redirecting-windows-in-EGL-MTexturePi.patch -Patch3: Use-QTransform-rather-than-the-deprecated-matrix-cla.patch -Patch4: fix_windowctl_test_linkage.patch -Patch5: new_test_definitions.patch -Patch6: BMC_18554_xTerm_is_improperly_redrawn_after_maximization.patch -Patch7: BMC_22845_move-var-run-to-home.patch -Patch8: fix_animations_for_gestures_plugin.patch -Patch9: fix_tfp_on_lenovo.patch -Patch10: meegotouch-compositor-1.1.31-1-add-missing-libs-for-linking.patch +Patch1: XSync-after-un-redirecting-windows-in-EGL-MTexturePi.patch +Patch2: Use-QTransform-rather-than-the-deprecated-matrix-cla.patch +Patch3: fix_windowctl_test_linkage.patch +Patch4: new_test_definitions.patch +Patch5: BMC_18554_xTerm_is_improperly_redrawn_after_maximization.patch +Patch6: BMC_22845_move-var-run-to-home.patch +Patch7: fix_animations_for_gestures_plugin.patch +Patch8: fix_tfp_on_lenovo.patch +Patch9: meegotouch-compositor-1.1.31-1-add-missing-libs-for-linking.patch +Patch10: 0001-sort-lockscreens-before-checking-desktops.patch +Patch11: 0001-remove-lockscreen_painted-waiting-logic.patch Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig BuildRequires: pkgconfig(QtDBus) @@ -45,6 +48,7 @@ BuildRequires: pkgconfig(xrender) BuildRequires: pkgconfig(xrandr) BuildRequires: pkgconfig(xi) +BuildRequires: pkgconfig(mce) BuildRequires: test-definition BuildRequires: doxygen Provides: duicompositor >= 0.3.9 @@ -52,12 +56,10 @@ Obsoletes: duicompositor < 0.3.9 Obsoletes: mcompositor < 0.4.6 - %description This package contains the Direct UI compositing window manager. - %package devel Summary: Development files for building mcompositor decorators Group: Development/Libraries @@ -84,26 +86,28 @@ # BMC_14207_double_xterm_thumbnail.patch %patch0 -p1 -# no_mce.patch -%patch1 -p1 # XSync-after-un-redirecting-windows-in-EGL-MTexturePi.patch -%patch2 -p1 +%patch1 -p1 # Use-QTransform-rather-than-the-deprecated-matrix-cla.patch -%patch3 -p1 +%patch2 -p1 # fix_windowctl_test_linkage.patch -%patch4 -p1 +%patch3 -p1 # new_test_definitions.patch -%patch5 -p1 +%patch4 -p1 # BMC_18554_xTerm_is_improperly_redrawn_after_maximization.patch -%patch6 -p1 +%patch5 -p1 # BMC_22845_move-var-run-to-home.patch -%patch7 -p1 +%patch6 -p1 # fix_animations_for_gestures_plugin.patch -%patch8 -p1 +%patch7 -p1 # fix_tfp_on_lenovo.patch -%patch9 -p1 +%patch8 -p1 # meegotouch-compositor-1.1.31-1-add-missing-libs-for-linking.patch +%patch9 -p1 +# 0001-sort-lockscreens-before-checking-desktops.patch %patch10 -p1 +# 0001-remove-lockscreen_painted-waiting-logic.patch +%patch11 -p1 # >> setup # << setup @@ -117,6 +121,7 @@ # >> build post # << build post + %install rm -rf %{buildroot} # >> install pre @@ -132,18 +137,10 @@ # << install post - %post -p /sbin/ldconfig %postun -p /sbin/ldconfig - - - - - - - %files %defattr(-,root,root,-) # >> files @@ -157,7 +154,6 @@ %{_datadir}/xsessions/X-MEEGO-HS.desktop # << files - %files devel %defattr(-,root,root,-) # >> files devel @@ -205,4 +201,3 @@ %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test*.py %{_datadir}/meegotouch/testscripts/mcompositor-functional-tests/test*.sh # << files tests - other changes: -------------- ++++++ 0001-remove-lockscreen_painted-waiting-logic.patch (new) --- 0001-remove-lockscreen_painted-waiting-logic.patch +++ 0001-remove-lockscreen_painted-waiting-logic.patch @@ -0,0 +1,231 @@ +From 271410c9f4c870c615010884de12221f4d09c449 Mon Sep 17 00:00:00 2001 +From: Robin Burchell <[email protected]> +Date: Sat, 25 Aug 2012 11:34:31 +0200 +Subject: [PATCH] remove lockscreen_painted waiting/logic + +with the lockscreen now part of the homescreen, it should always be painted. +--- + src/mcompositemanager.cpp | 76 +++++++-------------------- + src/mcompositemanager.h | 1 - + src/mcompositemanager_p.h | 2 - + src/mcompositewindow.cpp | 1 - + tests/unit/ut_lockscreen/ut_lockscreen.cpp | 2 - + 5 files changed, 20 insertions(+), 62 deletions(-) + +diff --git a/src/mcompositemanager.cpp b/src/mcompositemanager.cpp +index 1e58520..92fcb57 100644 +--- a/src/mcompositemanager.cpp ++++ b/src/mcompositemanager.cpp +@@ -429,8 +429,7 @@ MCompositeManagerPrivate::MCompositeManagerPrivate(MCompositeManager *p) + defaultGraphicsAlpha(MAXIMUM_GLOBAL_ALPHA), + defaultVideoAlpha(MAXIMUM_GLOBAL_ALPHA), + globalAlphaOverridden(false), +- disable_redrawing_due_to_damage(false), +- lockscreen_painted(false) ++ disable_redrawing_due_to_damage(false) + { + xcb_conn = XGetXCBConnection(QX11Info::display()); + MWindowPropertyCache::set_xcb_connection(xcb_conn); +@@ -447,11 +446,6 @@ MCompositeManagerPrivate::MCompositeManagerPrivate(MCompositeManager *p) + this, SLOT(callOngoing(bool))); + stacking_timer.setSingleShot(true); + connect(&stacking_timer, SIGNAL(timeout()), this, SLOT(stackingTimeout())); +- lockscreen_map_timer.setSingleShot(true); +- lockscreen_map_timer.setInterval(qobject_cast<MCompositeManager*>(p)-> +- configInt("lockscreen-map-timeout-ms")); +- connect(&lockscreen_map_timer, SIGNAL(timeout()), p, +- SLOT(lockScreenPainted())); + } + + MCompositeManagerPrivate::~MCompositeManagerPrivate() +@@ -621,6 +615,7 @@ void MCompositeManagerPrivate::damageEvent(XDamageNotifyEvent *e) + MCompositeWindow *item = COMPOSITE_WINDOW(e->drawable); + if (item) { + item->propertyCache()->damageReceived(); ++ + /* partial updates disabled for now, does not always work, unless we + * check for EGL_BUFFER_PRESERVED or GLX_SWAP_COPY_OML first, see + * http://www.khronos.org/registry/egl/specs/EGLTechNote0001.html and +@@ -1085,8 +1080,6 @@ void MCompositeManagerPrivate::unmapEvent(XUnmapEvent *e) + XRemoveFromSaveSet(QX11Info::display(), e->window); + if (wpc->isDecorator()) + MDecoratorFrame::instance()->setDecoratorItem(0); +- if (wpc->isLockScreen()) +- lockscreen_painted = false; + } + + // do not keep unmapped windows in windows_as_mapped list +@@ -2145,14 +2138,6 @@ void MCompositeManagerPrivate::mapEvent(XMapEvent *e, bool startup) + + pc->setBeingMapped(false); + pc->setIsMapped(true); +- if (pc->isLockScreen()) { +- lockscreen_map_timer.stop(); +- if (e->send_event == False) +- lockscreen_painted = false; +- else +- // we just started -> don't expect any damage +- lockscreen_painted = true; +- } + + #ifdef ENABLE_BROKEN_SIMPLEWINDOWFRAME + FrameData fd = framed_windows.value(win); +@@ -2737,14 +2722,6 @@ void MCompositeManagerPrivate::activateWindow(Window w, Time timestamp, + dirtyStacking(false); + } + +-void MCompositeManager::lockScreenPainted() +-{ +- d->lockscreen_painted = true; +- if (!d->device_state->displayOff()) +- d->displayOff(false); +- d->watch->keep_black = false; +-} +- + MWindowPropertyCache *MCompositeManagerPrivate::findLockScreen() const + { + for (QHash<Window, MWindowPropertyCache*>::const_iterator +@@ -2759,36 +2736,32 @@ void MCompositeManagerPrivate::displayOff(bool display_off) + if (display_off) { + if (splash) + splashTimeout(); +- lockscreen_map_timer.stop(); + if (!haveMappedWindow()) + enableCompositing(); + MWindowPropertyCache *pc; + MCompositeWindow *cw; +- if (!(pc = findLockScreen()) || !(cw = COMPOSITE_WINDOW(pc->winId())) +- || !pc->isMapped() || !cw->paintedAfterMapping()) +- lockscreen_painted = false; ++ + // check whether there is a low-power mode window visible -- when the + // lockscreen is visible we trust it to become the low-power mode window + // even if the flag is not yet set +- bool lpm_window = lockscreen_painted; +- if (!lpm_window) { +- int covering_i = indexOfLastVisibleWindow(); +- for (int i = stacking_list.size() - 1; i >= covering_i; --i) { +- Window w = stacking_list[i]; +- MWindowPropertyCache *pc = prop_caches.value(w, 0); +- if (pc && pc->isMapped() && pc->lowPowerMode() > 0) { +- lpm_window = true; +- break; +- } +- } +- if (!lpm_window) { +- watch->keep_black = true; +- if (!compositing) +- enableCompositing(); +- else +- glwidget->update(); ++ int covering_i = indexOfLastVisibleWindow(); ++ bool lpm_window = false; ++ for (int i = stacking_list.size() - 1; i >= covering_i; --i) { ++ Window w = stacking_list[i]; ++ MWindowPropertyCache *pc = prop_caches.value(w, 0); ++ if (pc && pc->isMapped() && pc->lowPowerMode() > 0) { ++ lpm_window = true; ++ break; + } + } ++ if (!lpm_window) { ++ watch->keep_black = true; ++ if (!compositing) ++ enableCompositing(); ++ else ++ glwidget->update(); ++ } ++ + /* stop pinging to save some battery */ + for (QHash<Window, MCompositeWindow *>::iterator it = windows.begin(); + it != windows.end(); ++it) { +@@ -2805,15 +2778,6 @@ void MCompositeManagerPrivate::displayOff(bool display_off) + i->propertyCache()->damageTracking(false); + } + } else { +- MWindowPropertyCache *pc; +- if (device_state->touchScreenLock() == "locked" && +- !lockscreen_painted && (pc = findLockScreen())) { +- // lockscreen not painted yet: wait for painting or timeout +- if (!pc->isMapped()) +- // give it little time to map but not for ever +- lockscreen_map_timer.start(); +- return; +- } + watch->keep_black = false; + glwidget->update(); + if (!possiblyUnredirectTopmostWindow() && !compositing) +@@ -4600,7 +4564,7 @@ void MCompositeManager::ensureSettingsFile() + config("damage-timeout-ms", 500); + config("expect-resize-timeout-ms", 800); + config("splash-timeout-ms", 30000); +- config("lockscreen-map-timeout-ms", 1000); ++ config("lockscreen-map-timeout-ms", 1000); // TODO: unused now? + config("default-statusbar-height", 36); + config("default-desktop-angle", 270); + config("close-timeout-ms", 5000); +diff --git a/src/mcompositemanager.h b/src/mcompositemanager.h +index 91a96e2..b7e7136 100644 +--- a/src/mcompositemanager.h ++++ b/src/mcompositemanager.h +@@ -296,7 +296,6 @@ public slots: + void windowBound(MCompositeWindow* window); + + private slots: +- void lockScreenPainted(); + void handleSigHup(); + + private: +diff --git a/src/mcompositemanager_p.h b/src/mcompositemanager_p.h +index b14057f..65aba29 100644 +--- a/src/mcompositemanager_p.h ++++ b/src/mcompositemanager_p.h +@@ -210,7 +210,6 @@ public: + void pingTopmost(); + MSplashScreen *splash; + QPointer<MCompositeWindow> waiting_damage; +- QTimer lockscreen_map_timer; + QSocketNotifier *sighupNotifier; + + struct DismissedSplash { +@@ -251,7 +250,6 @@ public: + int defaultVideoAlpha; + bool globalAlphaOverridden; + bool disable_redrawing_due_to_damage; +- bool lockscreen_painted; + + signals: + void currentAppChanged(Window w); +diff --git a/src/mcompositewindow.cpp b/src/mcompositewindow.cpp (32 more lines skipped) ++++++ 0001-sort-lockscreens-before-checking-desktops.patch (new) --- 0001-sort-lockscreens-before-checking-desktops.patch +++ 0001-sort-lockscreens-before-checking-desktops.patch @@ -0,0 +1,35 @@ +From 67c378b2feee1d50b54311af3e59dd6521fbecf5 Mon Sep 17 00:00:00 2001 +From: Robin Burchell <[email protected]> +Date: Thu, 23 Aug 2012 20:03:05 +0200 +Subject: [PATCH] sort lockscreens before checking desktops + +allows lipstick to also act as a lockscreen if needed +--- + src/mcompositemanager.cpp | 11 +++++++++++ + 1 files changed, 11 insertions(+), 0 deletions(-) + +diff --git a/src/mcompositemanager.cpp b/src/mcompositemanager.cpp +index 93dffa0..1e58520 100644 +--- a/src/mcompositemanager.cpp ++++ b/src/mcompositemanager.cpp +@@ -3338,6 +3338,17 @@ static bool compareWindows(Window w_a, Window w_b) + goto use_old_order; + } + ++ if (pc_a->isLockScreen()) { ++ // if a is a lockscreen, and b isn't, then don't sort a below b ++ if (!pc_b->isLockScreen()) ++ SORTING(false, "A LOCKSCREEN"); ++ // otherwise fallthrough, they're both lockscreens, more comparison ++ // needed ++ } else if (pc_b->isLockScreen()) { ++ // b is a lockscreen, and a isn't, then sort a below b ++ SORTING(true, "B LOCKSCREEN"); ++ } ++ + // Both @pc_a and @pc_b are in NormalState. + // Sort the desktop below all NormalState windows. + // (Quiz: why do we check @pc_b before @pc_a? +-- +1.7.7.5 (Apple Git-26) + ++++++ meegotouch-compositor.yaml --- meegotouch-compositor.yaml +++ meegotouch-compositor.yaml @@ -12,7 +12,6 @@ - X-MEEGO-HS.desktop;%{_datadir}/xsessions/ Patches: - BMC_14207_double_xterm_thumbnail.patch - - no_mce.patch - XSync-after-un-redirecting-windows-in-EGL-MTexturePi.patch - Use-QTransform-rather-than-the-deprecated-matrix-cla.patch - fix_windowctl_test_linkage.patch @@ -22,6 +21,8 @@ - fix_animations_for_gestures_plugin.patch - fix_tfp_on_lenovo.patch - meegotouch-compositor-1.1.31-1-add-missing-libs-for-linking.patch + - 0001-sort-lockscreens-before-checking-desktops.patch + - 0001-remove-lockscreen_painted-waiting-logic.patch Description: | This package contains the Direct UI compositing window manager. PkgConfigBR: @@ -41,7 +42,7 @@ - xrender - xrandr - xi -# - mce + - mce PkgBR: - test-definition - doxygen ++++++ deleted files: --- no_mce.patch
