From f2226adca99ace299ae02881a9036ee5f935992a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Mon, 17 Dec 2012 21:12:02 +0100 Subject: [PATCH 01/13] activate layout, no idea why doesn't happen implicitly BUG: 311553 FIXED-IN: 4.10 REVIEW: 107851 --- kcmkwin/kwincompositing/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/kcmkwin/kwincompositing/main.cpp b/kcmkwin/kwincompositing/main.cpp index 84a2895788..7e371c4ac3 100644 --- a/kcmkwin/kwincompositing/main.cpp +++ b/kcmkwin/kwincompositing/main.cpp @@ -86,6 +86,7 @@ KWinCompositingConfig::KWinCompositingConfig(QWidget *parent, const QVariantList KGlobal::locale()->insertCatalog("kwin_effects"); ui.setupUi(this); layout()->setMargin(0); + layout()->activate(); ui.tabWidget->setCurrentIndex(0); ui.statusTitleWidget->hide(); ui.rearmGlSupport->hide(); From b61f7c7cc27cdb544e40ff69b45207cc5db5e11a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Thu, 27 Dec 2012 21:57:40 +0100 Subject: [PATCH 02/13] collect shadows of existing clients when toggling the compositor REVIEW: 107965 --- composite.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/composite.cpp b/composite.cpp index 0d8c909a31..6a2efdc1c4 100644 --- a/composite.cpp +++ b/composite.cpp @@ -251,12 +251,16 @@ void Compositor::slotCompositingOptionsInitialized() new EffectsHandlerImpl(this, m_scene); // sets also the 'effects' pointer connect(effects, SIGNAL(screenGeometryChanged(QSize)), SLOT(addRepaintFull())); addRepaintFull(); - foreach (Client * c, Workspace::self()->clientList()) + foreach (Client * c, Workspace::self()->clientList()) { c->setupCompositing(); + c->getShadow(); + } foreach (Client * c, Workspace::self()->desktopList()) c->setupCompositing(); - foreach (Unmanaged * c, Workspace::self()->unmanagedList()) + foreach (Unmanaged * c, Workspace::self()->unmanagedList()) { c->setupCompositing(); + c->getShadow(); + } emit compositingToggled(true); From ad451beae2504666dfe5aeecdd15726f707cd93a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sat, 22 Dec 2012 23:40:20 +0100 Subject: [PATCH 03/13] support brightness > 1 for XRender backend REVIEW: 107854 --- scene_xrender.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scene_xrender.cpp b/scene_xrender.cpp index 4ee755aef4..019ddbd261 100644 --- a/scene_xrender.cpp +++ b/scene_xrender.cpp @@ -701,9 +701,10 @@ XRenderComposite(display(), PictOpOver, _PART_->x11PictureHandle(), decorationAl } #undef RENDER_DECO_PART - if (data.brightness() < 1.0) { + if (data.brightness() != 1.0) { // fake brightness change by overlaying black - XRenderColor col = { 0, 0, 0, static_cast(0xffff *(1 - data.brightness()) * data.opacity()) }; + const float alpha = (1 - data.brightness()) * data.opacity(); + XRenderColor col = preMultiply(data.brightness() < 1.0 ? QColor(0,0,0,255*alpha) : QColor(255,255,255,-alpha*255)); if (blitInTempPixmap) { XRenderFillRectangle(display(), PictOpOver, renderTarget, &col, -temp_visibleRect.left(), -temp_visibleRect.top(), width(), height()); From 1727ab12116ac6cde4161a2f004897c77d875a0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sat, 29 Dec 2012 15:36:55 +0100 Subject: [PATCH 04/13] skip reset states if client untabbed for release BUG: 299333 FIXED-IN: 4.10 REVIEW: 108003 --- client.cpp | 4 +++- client.h | 2 +- workspace.cpp | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/client.cpp b/client.cpp index b555c11cc6..43296b3a06 100644 --- a/client.cpp +++ b/client.cpp @@ -1849,13 +1849,15 @@ bool Client::tabTo(Client *other, bool behind, bool activate) return true; } -bool Client::untab(const QRect &toGeometry) +bool Client::untab(const QRect &toGeometry, bool clientRemoved) { TabGroup *group = tab_group; if (group && group->remove(this)) { // remove sets the tabgroup to "0", therefore the pointer is cached if (group->isEmpty()) { delete group; } + if (clientRemoved) + return true; // there's been a broadcast signal that this client is now removed - don't touch it setClientShown(!(isMinimized() || isShade())); bool keepSize = toGeometry.size() == size(); bool changedSize = false; diff --git a/client.h b/client.h index e8ae850deb..9e261280a9 100644 --- a/client.h +++ b/client.h @@ -556,7 +556,7 @@ public: * WARNING: non dynamic properties are ignored - you're not supposed to alter/update such explicitly */ Q_INVOKABLE void syncTabGroupFor(QString property, bool fromThisClient = false); - Q_INVOKABLE bool untab(const QRect &toGeometry = QRect()); + Q_INVOKABLE bool untab(const QRect &toGeometry = QRect(), bool clientRemoved = false); /** * Set tab group - this is to be invoked by TabGroup::add/remove(client) and NO ONE ELSE */ diff --git a/workspace.cpp b/workspace.cpp index f80649da26..366043168b 100644 --- a/workspace.cpp +++ b/workspace.cpp @@ -663,7 +663,7 @@ void Workspace::removeClient(Client* c, allowed_t) m_userActionsMenu->close(); } - c->untab(); + c->untab(QRect(), true); if (client_keys_client == c) setupWindowShortcutDone(false); From 1e4d1347d6f7e818bc5709e55a0b02046a1f07fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sat, 29 Dec 2012 17:02:09 +0100 Subject: [PATCH 05/13] disconnect all client signals when it's closed the client can still live on and emit stuff, but the compositing has been fininshed for it, so the effect window is NULL BUG: 310142 FIXED-IN: 4.10 REVIEW: 108008 --- effects.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/effects.cpp b/effects.cpp index 7025883505..eaab46ff32 100644 --- a/effects.cpp +++ b/effects.cpp @@ -440,6 +440,7 @@ void EffectsHandlerImpl::slotDeletedRemoved(KWin::Deleted *d) void EffectsHandlerImpl::slotWindowClosed(KWin::Toplevel *c) { + c->disconnect(this); emit windowClosed(c->effectWindow()); } From 8239c686f622292dfb20ef34a0033be710161980 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sat, 29 Dec 2012 17:01:05 +0100 Subject: [PATCH 06/13] NULL Compositor global static on deletion what moc can do any time for the Workspace deconstructor BUG: 308040 FIXED-IN: 4.10 REVIEW: 108007 --- composite.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/composite.cpp b/composite.cpp index 6a2efdc1c4..99eb65dd72 100644 --- a/composite.cpp +++ b/composite.cpp @@ -136,6 +136,7 @@ Compositor::~Compositor() { finish(); delete cm_selection; + s_compositor = NULL; } From d83d4a79775352ed03ad5108c26f49a4802448d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sat, 29 Dec 2012 16:27:08 +0100 Subject: [PATCH 07/13] snaphelper: repaint center rect on resizing client BUG: 311551 FIXED-IN: 4.10 REVIEW: 108005 --- effects/snaphelper/snaphelper.cpp | 16 ++++++++++++++-- effects/snaphelper/snaphelper.h | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/effects/snaphelper/snaphelper.cpp b/effects/snaphelper/snaphelper.cpp index cdb00bc65d..f2a286aa5a 100644 --- a/effects/snaphelper/snaphelper.cpp +++ b/effects/snaphelper/snaphelper.cpp @@ -39,6 +39,7 @@ SnapHelperEffect::SnapHelperEffect() connect(effects, SIGNAL(windowClosed(KWin::EffectWindow*)), this, SLOT(slotWindowClosed(KWin::EffectWindow*))); connect(effects, SIGNAL(windowStartUserMovedResized(KWin::EffectWindow*)), this, SLOT(slotWindowStartUserMovedResized(KWin::EffectWindow*))); connect(effects, SIGNAL(windowFinishUserMovedResized(KWin::EffectWindow*)), this, SLOT(slotWindowFinishUserMovedResized(KWin::EffectWindow*))); + connect(effects, SIGNAL(windowGeometryShapeChanged(KWin::EffectWindow*, const QRect&)), this, SLOT(slotWindowResized(KWin::EffectWindow*, const QRect&))); /*if ( effects->compositingType() == XRenderCompositing ) { @@ -94,7 +95,7 @@ void SnapHelperEffect::postPaintScreen() glLineWidth(4.0); QVector verts; verts.reserve(effects->numScreens() * 24); - for (int i = 0; i < effects->numScreens(); i++) { + for (int i = 0; i < effects->numScreens(); ++i) { const QRect& rect = effects->clientArea(ScreenArea, i, 0); int midX = rect.x() + rect.width() / 2; int midY = rect.y() + rect.height() / 2 ; @@ -126,7 +127,7 @@ void SnapHelperEffect::postPaintScreen() } if ( effects->compositingType() == XRenderCompositing ) { #ifdef KWIN_HAVE_XRENDER_COMPOSITING - for ( int i = 0; i < effects->numScreens(); i++ ) { + for (int i = 0; i < effects->numScreens(); ++i) { const QRect& rect = effects->clientArea( ScreenArea, i, 0 ); int midX = rect.x() + rect.width() / 2; int midY = rect.y() + rect.height() / 2 ; @@ -201,6 +202,17 @@ void SnapHelperEffect::slotWindowFinishUserMovedResized(EffectWindow *w) } } +void SnapHelperEffect::slotWindowResized(KWin::EffectWindow *w, const QRect &oldRect) +{ + if (w == m_window) { + QRect r(oldRect); + for (int i = 0; i < effects->numScreens(); ++i) { + r.moveCenter(effects->clientArea( ScreenArea, i, 0 ).center()); + effects->addRepaint(r); + } + } +} + bool SnapHelperEffect::isActive() const { return m_active || m_timeline.currentValue() != 0.0; diff --git a/effects/snaphelper/snaphelper.h b/effects/snaphelper/snaphelper.h index 464ae3f080..3dd67314bc 100644 --- a/effects/snaphelper/snaphelper.h +++ b/effects/snaphelper/snaphelper.h @@ -45,6 +45,7 @@ public Q_SLOTS: void slotWindowClosed(KWin::EffectWindow *w); void slotWindowStartUserMovedResized(KWin::EffectWindow *w); void slotWindowFinishUserMovedResized(KWin::EffectWindow *w); + void slotWindowResized(KWin::EffectWindow *w, const QRect &r); private: bool m_active; From 683aa5595706ff75640ca72021ed6ec7ab3c49d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sat, 29 Dec 2012 22:27:31 +0100 Subject: [PATCH 08/13] use synthetic configure notifies when needed the patch omit them while the user just moves around a window and adds one that got lost with the deferred XMoveResize patch, causing BUG: 312346 FIXED-IN: 4.10 REVIEW: 108013 --- geometry.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index 76fa5e3e1e..90b4273b70 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -1902,14 +1902,20 @@ void Client::setGeometry(int x, int y, int w, int h, ForceGeometry_t force) if (!isResize() || syncRequest.counter == None) #endif XMoveResizeWindow(display(), window(), 0, 0, cs.width(), cs.height()); + // SELI - won't this be too expensive? + // THOMAS - yes, but gtk+ clients will not resize without ... + sendSyntheticConfigureNotify(); } updateShape(); } else { - if (moveResizeMode && compositing()) { - // Defer the X update until we leave this mode - needsXWindowMove = true; + if (moveResizeMode) { + if (compositing()) // Defer the X update until we leave this mode + needsXWindowMove = true; + else + XMoveWindow(display(), frameId(), x, y); // sendSyntheticConfigureNotify() on finish shall be sufficient } else { XMoveWindow(display(), frameId(), x, y); + sendSyntheticConfigureNotify(); } // Unconditionally move the input window: it won't affect rendering @@ -1918,8 +1924,6 @@ void Client::setGeometry(int x, int y, int w, int h, ForceGeometry_t force) XMoveWindow(display(), inputId(), pos.x(), pos.y()); } } - // SELI TODO won't this be too expensive? - sendSyntheticConfigureNotify(); updateWindowRules(Rules::Position|Rules::Size); // keep track of old maximize mode @@ -2683,6 +2687,8 @@ void Client::leaveMoveResize() XMoveWindow(display(), frameId(), geom.x(), geom.y()); needsXWindowMove = false; } + if (!isResize()) + sendSyntheticConfigureNotify(); // tell the client about it's new final position if (geometryTip) { geometryTip->hide(); delete geometryTip; @@ -3063,7 +3069,7 @@ void Client::handleMoveResize(int x, int y, int x_root, int y_root) sendSyncRequest(); } else { // for clients not supporting the XSYNC protocol, we syncRequest.isPending = true; // limit the resizes to 30Hz to take pointless load from X11 - syncRequest.timeout->start(33); // and the client, the mouse is still moved a full speed + syncRequest.timeout->start(33); // and the client, the mouse is still moved at full speed } // and no human can control faster resizes anyway XMoveResizeWindow(display(), window(), 0, 0, moveResizeGeom.width() - (border_left + border_right), moveResizeGeom.height() - (border_top + border_bottom)); } else From 75e87a44cef35eaef61536801ab20b41633ecaa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Thu, 27 Dec 2012 22:01:41 +0100 Subject: [PATCH 09/13] finish / sync screenshot before calling ksnapshot BUG: 312209 FIXED-IN: 4.10 REVIEW: 107981 --- effects/screenshot/screenshot.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/effects/screenshot/screenshot.cpp b/effects/screenshot/screenshot.cpp index 4254c37b31..b23129280d 100644 --- a/effects/screenshot/screenshot.cpp +++ b/effects/screenshot/screenshot.cpp @@ -148,6 +148,8 @@ void ScreenShotEffect::postPaintScreen() QPainter p(&m_lastScreenshot); p.setCompositionMode(QPainter::CompositionMode_Source); p.drawImage(QPoint(0, 0), img); + p.end(); + XSync(display(), False); } emit screenshotCreated(m_lastScreenshot.handle()); } From 2f18371e27735a712842ead0955c19c46b77e276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sun, 30 Dec 2012 00:15:30 +0100 Subject: [PATCH 10/13] fix dbus service registration/invocation REVIEW: 108016 --- dbusinterface.cpp | 21 ++++++++++++++++++++- dbusinterface.h | 2 ++ kcmkwin/kwincompositing/main.cpp | 12 ++++++------ 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/dbusinterface.cpp b/dbusinterface.cpp index 6d64a9fc6a..053832b76f 100644 --- a/dbusinterface.cpp +++ b/dbusinterface.cpp @@ -20,6 +20,7 @@ along with this program. If not, see . // own #include "dbusinterface.h" + // kwin // TODO: remove together with deprecated methods #include "client.h" @@ -28,6 +29,9 @@ along with this program. If not, see . #include "kwinadaptor.h" #include "workspace.h" +// Qt +#include + namespace KWin { @@ -38,7 +42,10 @@ DBusInterface::DBusInterface(QObject *parent) QDBusConnection dbus = QDBusConnection::sessionBus(); dbus.registerObject("/KWin", this); - dbus.registerService("org.kde.KWin"); + if (!dbus.registerService("org.kde.KWin")) { + QDBusServiceWatcher *dog = new QDBusServiceWatcher("org.kde.KWin", dbus, QDBusServiceWatcher::WatchForUnregistration, this); + connect (dog, SIGNAL(serviceUnregistered(const QString&)), SLOT(becomeKWinService(const QString&))); + } connect(Compositor::self(), SIGNAL(compositingToggled(bool)), SIGNAL(compositingToggled(bool))); dbus.connect(QString(), "/KWin", "org.kde.KWin", "reloadConfig", Workspace::self(), SLOT(slotReloadConfig())); @@ -46,8 +53,20 @@ DBusInterface::DBusInterface(QObject *parent) Compositor::self(), SLOT(slotReinitialize())); } +void DBusInterface::becomeKWinService(const QString &service) +{ + // TODO: this watchdog exists to make really safe that we at some point get the service + // but it's probably no longer needed since we explicitly unregister the service with the deconstructor + if (service == "org.kde.KWin" && QDBusConnection::sessionBus().registerService("org.kde.KWin") && sender()) { + sender()->deleteLater(); // bye doggy :'( + } +} + DBusInterface::~DBusInterface() { + QDBusConnection::sessionBus().unregisterService("org.kde.KWin"); // this is the long standing legal service + // KApplication automatically also grabs org.kde.kwin, so it's often been used externally - ensure to free it as well + QDBusConnection::sessionBus().unregisterService("org.kde.kwin"); } void DBusInterface::circulateDesktopApplications() diff --git a/dbusinterface.h b/dbusinterface.h index d8e8cd3500..a07857afb5 100644 --- a/dbusinterface.h +++ b/dbusinterface.h @@ -147,6 +147,8 @@ Q_SIGNALS: // SIGNALS * @deprecated **/ void compositingToggled(bool active); +private Q_SLOTS: + void becomeKWinService(const QString &service); }; } // namespace diff --git a/kcmkwin/kwincompositing/main.cpp b/kcmkwin/kwincompositing/main.cpp index 7e371c4ac3..6e39479780 100644 --- a/kcmkwin/kwincompositing/main.cpp +++ b/kcmkwin/kwincompositing/main.cpp @@ -196,7 +196,7 @@ void KWinCompositingConfig::showConfirmDialog(bool reinitCompositing) bool revert = false; // Feel free to extend this to support several kwin instances (multihead) if you // think it makes sense. - OrgKdeKWinInterface kwin("org.kde.kwin", "/KWin", QDBusConnection::sessionBus()); + OrgKdeKWinInterface kwin("org.kde.KWin", "/KWin", QDBusConnection::sessionBus()); if (reinitCompositing ? !kwin.compositingActive().value() : !kwin.waitForCompositingSetup().value()) { KMessageBox::sorry(this, i18n( "Failed to activate desktop effects using the given " @@ -399,7 +399,7 @@ void KWinCompositingConfig::updateStatusUI(bool compositingIsPossible) ui.rearmGlSupport->hide(); } else { - OrgKdeKWinInterface kwin("org.kde.kwin", "/KWin", QDBusConnection::sessionBus()); + OrgKdeKWinInterface kwin("org.kde.KWin", "/KWin", QDBusConnection::sessionBus()); ui.compositingOptionsContainer->hide(); QString text = i18n("Desktop effects are not available on this system due to the following technical issues:"); text += "
"; @@ -416,7 +416,7 @@ void KWinCompositingConfig::load() { initEffectSelector(); mKWinConfig->reparseConfiguration(); - QDBusMessage msg = QDBusMessage::createMethodCall("org.kde.kwin", "/KWin", "org.kde.KWin", "compositingPossible"); + QDBusMessage msg = QDBusMessage::createMethodCall("org.kde.KWin", "/KWin", "org.kde.KWin", "compositingPossible"); QDBusConnection::sessionBus().callWithCallback(msg, this, SLOT(updateStatusUI(bool))); // Copy Plugins group to temp config file @@ -527,7 +527,7 @@ bool KWinCompositingConfig::saveAdvancedTab() void KWinCompositingConfig::save() { - OrgKdeKWinInterface kwin("org.kde.kwin", "/KWin", QDBusConnection::sessionBus()); + OrgKdeKWinInterface kwin("org.kde.KWin", "/KWin", QDBusConnection::sessionBus()); if (ui.compositingType->currentIndex() == OPENGL_INDEX && kwin.openGLIsBroken() && !ui.rearmGlSupport->isVisible()) { @@ -595,7 +595,7 @@ void KWinCompositingConfig::checkLoadedEffects() { // check for effects not supported by Backend or hardware // such effects are enabled but not returned by DBus method loadedEffects - OrgKdeKWinInterface kwin("org.kde.kwin", "/KWin", QDBusConnection::sessionBus()); + OrgKdeKWinInterface kwin("org.kde.KWin", "/KWin", QDBusConnection::sessionBus()); KConfigGroup effectConfig = KConfigGroup(mKWinConfig, "Compositing"); bool enabledAfter = effectConfig.readEntry("Enabled", true); @@ -626,7 +626,7 @@ void KWinCompositingConfig::checkLoadedEffects() void KWinCompositingConfig::showDetailedEffectLoadingInformation() { QStringList disabledEffects = m_showDetailedErrors->data().toStringList(); - OrgKdeKWinInterface kwin("org.kde.kwin", "/KWin", QDBusConnection::sessionBus()); + OrgKdeKWinInterface kwin("org.kde.KWin", "/KWin", QDBusConnection::sessionBus()); QDBusPendingReply< QString > pendingCompositingType = kwin.compositingType(); QString compositingType = pendingCompositingType.isError() ? "none" : pendingCompositingType.value(); KServiceTypeTrader* trader = KServiceTypeTrader::self(); From d6dd4308db505203ef6ce45696a549e80c1897fa Mon Sep 17 00:00:00 2001 From: Script Kiddy Date: Thu, 3 Jan 2013 07:40:00 +0100 Subject: [PATCH 11/13] SVN_SILENT made messages (.desktop file) --- clients/aurorae/src/kwindecoration.desktop | 1 + clients/aurorae/themes/plastik/package/metadata.desktop | 1 + effects/maximize/package/metadata.desktop | 3 +++ effects/mouseclick/mouseclick.desktop | 2 ++ effects/mouseclick/mouseclick_config.desktop | 1 + 5 files changed, 8 insertions(+) diff --git a/clients/aurorae/src/kwindecoration.desktop b/clients/aurorae/src/kwindecoration.desktop index f0ab397583..75b8231695 100644 --- a/clients/aurorae/src/kwindecoration.desktop +++ b/clients/aurorae/src/kwindecoration.desktop @@ -14,6 +14,7 @@ Comment[ga]=Maisiúchán Fuinneog KWin Comment[gl]=Decoración de xanela de Kwin Comment[hu]=KWin ablakdekoráció Comment[ia]=Decorationes de fenestra de KWin +Comment[kk]=KWin терезе безендіруі Comment[ko]=KWin 창 장식 Comment[lt]=KWin lango dekoracija Comment[nb]=KWin Vinduspynt diff --git a/clients/aurorae/themes/plastik/package/metadata.desktop b/clients/aurorae/themes/plastik/package/metadata.desktop index d1670cb586..44840c6376 100644 --- a/clients/aurorae/themes/plastik/package/metadata.desktop +++ b/clients/aurorae/themes/plastik/package/metadata.desktop @@ -99,6 +99,7 @@ Comment[gl]=O tema clásico de KDE 3 Comment[he]=הערכה הקלאסית של KDE 3 Comment[hu]=A KDE 3-ból ismert klasszikus téma Comment[ia]=Le thema classic cognoscite ex KDE 3 +Comment[kk]=KDE3-тің классикалық нақышы Comment[ko]=KDE 3의 고전 테마 Comment[nb]=Det klassiske temaet kjent fra KDE 3 Comment[nl]=Het klassieke thema bekend van KDE 3 diff --git a/effects/maximize/package/metadata.desktop b/effects/maximize/package/metadata.desktop index 2c05641e2f..edf76ec0be 100644 --- a/effects/maximize/package/metadata.desktop +++ b/effects/maximize/package/metadata.desktop @@ -9,6 +9,7 @@ Comment[fi]=Animointi ikkunalle, joka suurennetaan tai palautetaan suurennuksest Comment[gl]=Animación das xanelas que se maximizan ou restauran maximizadas Comment[hu]=Ablakanimáció maximalizáláskor / maximális méretről való visszaállításkor Comment[ia]=Animation per un fenestra va maximisar/restabilir ab maximizar +Comment[kk]=Терезені кең жаю/қалпына қайтаруды анимациясы Comment[nb]=Animering for et vindu som maksimeres/tilbakestilles fra maksimering Comment[nl]=Animatie voor een venster dat gaat naar maximaliseren/herstellen vanuit maximaliseren Comment[pl]=Animacja dla okna mającego zostać zmaksymalizowanym/przywróconym z maksymalizacji @@ -33,6 +34,7 @@ Name=Maximize Name[ca]=Maximitza Name[cs]=Maximalizovat Name[da]=Maksimér +Name[de]=Maximieren Name[el]=Μεγιστοποίηση Name[es]=Maximizar Name[et]=Maksimeerimine @@ -41,6 +43,7 @@ Name[ga]=Uasmhéadaigh Name[gl]=Maximizar Name[hu]=Maximalizálás Name[ia]=Maximiza +Name[kk]=Кең жаю Name[lt]=Išdidinti Name[nb]=Maksimer Name[nl]=Maximaliseren diff --git a/effects/mouseclick/mouseclick.desktop b/effects/mouseclick/mouseclick.desktop index cee805173d..eb633ab49d 100644 --- a/effects/mouseclick/mouseclick.desktop +++ b/effects/mouseclick/mouseclick.desktop @@ -10,6 +10,7 @@ Name[fi]=Hiiren napsautuksen animointi Name[gl]=Animación ao premer o rato Name[hu]=Egérkattintás animáció Name[ia]=Animation de click de mus +Name[kk]=Тышқанды түрту анимациясы Name[nb]=Animer ved museklikk Name[nl]=Animatie van muisklik Name[pa]=ਮਾਊਸ ਕਲਿੱਕ ਐਨੀਮੇਸ਼ਨ @@ -41,6 +42,7 @@ Comment[fi]=Näyttää animoinnin hiirtä napsautettaessa. Tästä on hyötyä n Comment[gl]=Crea unha animación cando se preme no botón do rato. Isto é útil nas presentacións e nas gravacións da pantalla. Comment[hu]=Animációt hoz létre, amikor az egérgombbal kattintanak. Ez hasznos a képernyő felvételekor vagy bemutatónál. Comment[ia]=Crea un animation quando un button de mus es pressate. Isto es util pro registrationes de schermo/presentationes +Comment[kk]=Тышқанның батырмасын түрткенде анимацияны жасайды.Экраннан демонстацияны түсіргнде/презентацияны жасағанда ыңғайлы. Comment[nb]=Lager en animasjon hver gang en museknapp trykkes. Dette er nyttig for skjermopptak/presentasjoner. Comment[nl]=Maakt een animatie wanneer een op een muisknop wordt geklikt. Dit is nuttig voor schermopnamen/presentaties. Comment[pl]=Tworzy animację przy każdym kliknięciu myszy. Jest to użyteczne przy nagrywaniu ekranu/prezentacjach diff --git a/effects/mouseclick/mouseclick_config.desktop b/effects/mouseclick/mouseclick_config.desktop index b74386fafa..9aa4eae833 100644 --- a/effects/mouseclick/mouseclick_config.desktop +++ b/effects/mouseclick/mouseclick_config.desktop @@ -17,6 +17,7 @@ Name[fi]=Hiiren napsautuksen animointi Name[gl]=Animación ao premer o rato Name[hu]=Egérkattintás animáció Name[ia]=Animation de click de mus +Name[kk]=Тышқанды түрту анимациясы Name[nb]=Animer ved museklikk Name[nl]=Animatie van muisklik Name[pa]=ਮਾਊਸ ਕਲਿੱਕ ਐਨੀਮੇਸ਼ਨ From 93c9fd0f32a2975b121d8c85dae626840b03bcf9 Mon Sep 17 00:00:00 2001 From: Script Kiddy Date: Fri, 4 Jan 2013 07:44:10 +0100 Subject: [PATCH 12/13] SVN_SILENT made messages (.desktop file) --- effects/mouseclick/mouseclick.desktop | 1 + effects/mouseclick/mouseclick_config.desktop | 1 + kwin.notifyrc | 9 ++++++--- scripts/desktopchangeosd/metadata.desktop | 1 + tabbox/kwinwindowswitcher.desktop | 1 + 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/effects/mouseclick/mouseclick.desktop b/effects/mouseclick/mouseclick.desktop index eb633ab49d..1489103423 100644 --- a/effects/mouseclick/mouseclick.desktop +++ b/effects/mouseclick/mouseclick.desktop @@ -11,6 +11,7 @@ Name[gl]=Animación ao premer o rato Name[hu]=Egérkattintás animáció Name[ia]=Animation de click de mus Name[kk]=Тышқанды түрту анимациясы +Name[lt]=Spragtelėjimo pele animacija Name[nb]=Animer ved museklikk Name[nl]=Animatie van muisklik Name[pa]=ਮਾਊਸ ਕਲਿੱਕ ਐਨੀਮੇਸ਼ਨ diff --git a/effects/mouseclick/mouseclick_config.desktop b/effects/mouseclick/mouseclick_config.desktop index 9aa4eae833..73cc8e15dc 100644 --- a/effects/mouseclick/mouseclick_config.desktop +++ b/effects/mouseclick/mouseclick_config.desktop @@ -18,6 +18,7 @@ Name[gl]=Animación ao premer o rato Name[hu]=Egérkattintás animáció Name[ia]=Animation de click de mus Name[kk]=Тышқанды түрту анимациясы +Name[lt]=Spragtelėjimo pele animacija Name[nb]=Animer ved museklikk Name[nl]=Animatie van muisklik Name[pa]=ਮਾਊਸ ਕਲਿੱਕ ਐਨੀਮੇਸ਼ਨ diff --git a/kwin.notifyrc b/kwin.notifyrc index 2e54755bdd..ddd6bafd82 100644 --- a/kwin.notifyrc +++ b/kwin.notifyrc @@ -3952,7 +3952,7 @@ Name[lt]=Pašalinti langą Name[lv]=Loga dzēšana Name[mk]=Избриши прозорец Name[ml]=ജാലകം നീക്കം ചെയ്യുക -Name[mr]=चौकट काढूण टाका +Name[mr]=चौकट काढून टाका Name[ms]=Hapuskan Tetingkap Name[nb]=Slett vindu Name[nds]=Finster wegdoon @@ -4037,7 +4037,7 @@ Comment[lt]=Pašalinti langą Comment[lv]=Loga dzēšana Comment[mk]=Избриши прозорец Comment[ml]=ജാലകം നീക്കം ചെയ്യുക -Comment[mr]=चौकट काढूण टाका +Comment[mr]=चौकट काढून टाका Comment[ms]=Hapuskan tetingkap Comment[nb]=Slett vindu Comment[nds]=Finster wegdoon @@ -5782,7 +5782,7 @@ Name[lt]=Pašalinti dialogą Name[lv]=Dialoga dzēšana Name[mk]=Избриши дијалог Name[ml]=കുഞ്ഞുജാലകം നീക്കം ചെയ്യുമ്പോള്‍ -Name[mr]=संवाद काढूण टाका +Name[mr]=संवाद काढून टाका Name[nb]=Slett dialog Name[nds]=Wegmaken vun Dialoog Name[ne]=संवाद मेट्नुहोस् @@ -7177,6 +7177,7 @@ Comment[it]=La finestra è stata impostata a schermo pieno Comment[kk]=Толық экранды терезе орнатылды Comment[km]=បង្អួច​ត្រូវ​បាន​កំណត់​ទៅ​ពេញអេក្រង់ Comment[ko]=창이 전체 화면으로 전환됨 +Comment[lt]=Lango nustatytas per visą ekraną Comment[nb]=Et vindu har blitt satt som fullskjermvindu Comment[nl]=Een venster is ingesteld op volledig scherm Comment[pa]=ਵਿੰਡੋ ਪੂਰੀ ਸਕਰੀਨ ਲਈ ਸੈੱਟ ਕੀਤੀ ਜਾ ਚੁੱਕੀ ਹੈ @@ -7217,6 +7218,7 @@ Name[it]=Finestra a schermo pieno ripristinata Name[kk]=Кәдімгі (толық экранды емес) терезе Name[km]=បានស្ដារ​បង្អួច​ពេញអេក្រង់ Name[ko]=창이 전체 화면에서 복원됨 +Name[lt]=Langas per visą ekraną atstatytas Name[nb]=Fullskjerm slått av Name[nl]=Venster terug uit modus volledig scherm Name[pa]=ਵਿੰਡੋ ਪੂਰੀ ਸਕਰੀਨ ਰੀ-ਸਟੋਰ ਕੀਤੀ @@ -7255,6 +7257,7 @@ Comment[it]=La finestra è stata ripristinata da schermo pieno Comment[kk]=Терезе толық экранды күйінен қайтарылды Comment[km]=បង្អួច​ត្រូវ​បាន​ស្ដារ​ពី​ទិដ្ឋភាព​ពេញអេក្រង់ Comment[ko]=창이 전체 화면에서 복원됨 +Comment[lt]=Lango per visą ekraną buvo atstatytas Comment[nb]=Et vindu er tilbakestilt fra fullskjermvindu Comment[nl]=Een venster is teruggebracht uit de instelling volledig scherm Comment[pa]=ਵਿੰਡੋ ਨੂੰ ਪੂਰੀ ਸਕਰੀਨ ਨੂੰ ਮੁੜ ਕੇ ਸਟੋਰ ਕੀਤਾ ਗਿਆ diff --git a/scripts/desktopchangeosd/metadata.desktop b/scripts/desktopchangeosd/metadata.desktop index 8d87819ca3..37c6f24965 100644 --- a/scripts/desktopchangeosd/metadata.desktop +++ b/scripts/desktopchangeosd/metadata.desktop @@ -15,6 +15,7 @@ Name[it]=Mostra lo scambia desktop Name[kk]=Үстел ауыстыру панелі Name[km]=ការ​ផ្លាស់ប្ដូ​រផ្ទៃតុ OSD Name[ko]=데스크톱 변경 OSD +Name[lt]=Darbastalio pokyčio OSD Name[nb]=OSD for skrivebordsbytte Name[nl]=OSD voor bureaubladwijziging Name[pa]=ਡੈਸਕਟਾਪ ਬਦਲਣ OSD diff --git a/tabbox/kwinwindowswitcher.desktop b/tabbox/kwinwindowswitcher.desktop index 7a47e022ad..85a9645021 100644 --- a/tabbox/kwinwindowswitcher.desktop +++ b/tabbox/kwinwindowswitcher.desktop @@ -18,6 +18,7 @@ Comment[it]=Layout scambiafinestre KWin Comment[kk]=KWin терезе ауыстырғышының қалыпы Comment[km]=ប្លង់​នៃ​កម្មវិធី​ប្ដូរ​បង្អួច KWin Comment[ko]=KWin 창 전환기 레이아웃 +Comment[lt]=KWin langų perjungimo išdėstymas Comment[nb]=Utforming av KWin vindusbytter Comment[nl]=KWin indeling van vensterwisselaar Comment[pa]=KWin ਵਿੰਡੋ ਸਵਿੱਚਰ ਲੇਆਉਟ From 6e544c93ffb5fd751e09eafcbceeebfaa30ccfad Mon Sep 17 00:00:00 2001 From: Script Kiddy Date: Sat, 5 Jan 2013 08:24:47 +0100 Subject: [PATCH 13/13] SVN_SILENT made messages (.desktop file) --- clients/aurorae/src/kwindecoration.desktop | 1 + clients/aurorae/themes/plastik/package/metadata.desktop | 1 + 2 files changed, 2 insertions(+) diff --git a/clients/aurorae/src/kwindecoration.desktop b/clients/aurorae/src/kwindecoration.desktop index 75b8231695..3ee596ab30 100644 --- a/clients/aurorae/src/kwindecoration.desktop +++ b/clients/aurorae/src/kwindecoration.desktop @@ -6,6 +6,7 @@ Comment=KWin Window Decoration Comment[ca]=Decoració de finestres del KWin Comment[cs]=Dekorace oken KWin Comment[da]=KWin vinduesdekoration +Comment[de]=KWin-Fensterdekoration Comment[el]=Διακοσμήσεις παραθύρου KWin Comment[es]=Decoración de ventanas de KWin Comment[et]=KWini akna dekoratsioon diff --git a/clients/aurorae/themes/plastik/package/metadata.desktop b/clients/aurorae/themes/plastik/package/metadata.desktop index 44840c6376..3edfc60258 100644 --- a/clients/aurorae/themes/plastik/package/metadata.desktop +++ b/clients/aurorae/themes/plastik/package/metadata.desktop @@ -91,6 +91,7 @@ Name[zh_TW]=Plastik Comment=The classic theme known from KDE 3 Comment[ca]=El tema clàssic conegut des del KDE 3 Comment[da]=Det klassiske tema som er kendt fra KDE 3 +Comment[de]=Das klassische Design aus KDE 3 Comment[el]=Το γνωστό κλασικό θέμα από το KDE 3 Comment[es]=El tema clásico conocido desde KDE 3 Comment[et]=Klassikaline KDE 3 ajast tuntud teema