Commit 34027455 authored by Martin Flöser's avatar Martin Flöser
Browse files

Remove Tiling support from KWin

As discussed on the mailinglist [1] the tiling support is
removed from KWin. The main reasons for this step are:
* it is unmaintained
* it is a mode not used by any of the core KWin team
* original developer said at Akademy 2012 that he is not
  interested in picking up the work again
* tiling has quite some bugs, e.g. multi screen not supported
* is conflicting with other concepts in KWin, e.g. activities

There is ongoing work to get tiling supported through a KWin
script, which is a preferred way as it does not influence the
existing C++ code base.

[1] http://lists.kde.org/?l=kwin&m=133149673110558&w=2
BUG: 303090
FIXED-IN: 4.10
REVIEW: 105546
parent da673cd6
......@@ -4,7 +4,6 @@ OPTION(KWIN_BUILD_DECORATIONS "Enable building of KWin decorations." ON)
OPTION(KWIN_BUILD_KCMS "Enable building of KWin configuration modules." ON)
OPTION(KWIN_MOBILE_EFFECTS "Only build effects relevant for mobile devices" OFF)
OPTION(KWIN_BUILD_TABBOX "Enable building of KWin Tabbox functionality" ON)
OPTION(KWIN_BUILD_TILING "Enable building of KWin Tiling functionality" ON)
OPTION(KWIN_BUILD_SCREENEDGES "Enable building of KWin with screen edge support" ON)
OPTION(KWIN_BUILD_SCRIPTING "Enable building of KWin with scripting support" ON)
OPTION(KWIN_BUILD_XRENDER_COMPOSITING "Enable building of KWin with XRender Compositing support" ON)
......@@ -21,7 +20,6 @@ set(KWIN_NAME "kwin")
if(KWIN_PLASMA_ACTIVE)
set(KWIN_BUILD_DECORATIONS OFF)
set(KWIN_BUILD_KCMS OFF)
set(KWIN_BUILD_TILING OFF)
set(KWIN_BUILD_SCREENEDGES OFF)
set(KWIN_BUILD_SCRIPTING ON)
set(KWIN_BUILD_XRENDER_COMPOSITING OFF)
......@@ -143,26 +141,6 @@ if(KWIN_BUILD_TABBOX)
)
endif(KWIN_BUILD_TABBOX)
if(KWIN_BUILD_TILING)
set(
kwin_KDEINIT_SRCS ${kwin_KDEINIT_SRCS}
tiling/tile.cpp
tiling/tiling.cpp
tiling/tilinglayout.cpp
tilinglayoutfactory.cpp
# tiling layouts
# spiral
tilinglayouts/spiral/spiral.cpp
# columns
tilinglayouts/columns/columns.cpp
# floating
tilinglayouts/floating/floating.cpp
)
endif(KWIN_BUILD_TILING)
if(KWIN_BUILD_SCREENEDGES)
set(
kwin_KDEINIT_SRCS ${kwin_KDEINIT_SRCS}
......
#cmakedefine KWIN_BUILD_DECORATIONS 1
#cmakedefine KWIN_BUILD_TABBOX 1
#cmakedefine KWIN_BUILD_TILING 1
#cmakedefine KWIN_BUILD_DESKTOPCHANGEOSD 1
#cmakedefine KWIN_BUILD_SCREENEDGES 1
#cmakedefine KWIN_BUILD_SCRIPTING 1
......
......@@ -46,9 +46,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <KDE/KGlobalSettings>
#include "outline.h"
#ifdef KWIN_BUILD_TILING
#include "tiling/tiling.h"
#endif
namespace KWin
{
......@@ -2030,9 +2027,6 @@ void Client::move(int x, int y, ForceGeometry_t force)
workspace()->checkActiveScreen(this);
workspace()->updateStackingOrder();
workspace()->checkUnredirect();
#ifdef KWIN_BUILD_TILING
workspace()->tiling()->notifyTilingWindowMove(this, moveResizeGeom, initialMoveResizeGeom);
#endif
// client itself is not damaged
const QRect deco_rect = visibleRect();
addLayerRepaint(deco_rect_before_block);
......@@ -2612,31 +2606,21 @@ void Client::finishMoveResize(bool cancel)
const bool wasMove = isMove();
leaveMoveResize();
#ifdef KWIN_BUILD_TILING
if (workspace()->tiling()->isEnabled()) {
if (wasResize)
workspace()->tiling()->notifyTilingWindowResizeDone(this, moveResizeGeom, initialMoveResizeGeom, cancel);
else if (wasMove)
workspace()->tiling()->notifyTilingWindowMoveDone(this, moveResizeGeom, initialMoveResizeGeom, cancel);
} else
#endif
{
if (cancel)
setGeometry(initialMoveResizeGeom);
else {
if (wasResize) {
const bool restoreH = maximizeMode() == MaximizeHorizontal &&
moveResizeGeom.width() != initialMoveResizeGeom.width();
const bool restoreV = maximizeMode() == MaximizeVertical &&
moveResizeGeom.height() != initialMoveResizeGeom.height();
if (restoreH || restoreV) // NOT setMaximize(restoreH, restoreV); !
setMaximize(false, false);
}
setGeometry(moveResizeGeom);
if (cancel)
setGeometry(initialMoveResizeGeom);
else {
if (wasResize) {
const bool restoreH = maximizeMode() == MaximizeHorizontal &&
moveResizeGeom.width() != initialMoveResizeGeom.width();
const bool restoreV = maximizeMode() == MaximizeVertical &&
moveResizeGeom.height() != initialMoveResizeGeom.height();
if (restoreH || restoreV) // NOT setMaximize(restoreH, restoreV); !
setMaximize(false, false);
}
if (screen() != moveResizeStartScreen && maximizeMode() != MaximizeRestore)
checkWorkspacePosition();
setGeometry(moveResizeGeom);
}
if (screen() != moveResizeStartScreen && maximizeMode() != MaximizeRestore)
checkWorkspacePosition();
if (isElectricBorderMaximizing()) {
setQuickTileMode(electricMode);
......@@ -2811,12 +2795,6 @@ void Client::handleMoveResize(int x, int y, int x_root, int y_root)
bool update = false;
if (isResize()) {
#ifdef KWIN_BUILD_TILING
// query layout for supported resize mode
if (workspace()->tiling()->isEnabled()) {
mode = workspace()->tiling()->supportedTilingResizeMode(this, mode);
}
#endif
// first resize (without checking constrains), then snap, then check bounds, then check constrains
QRect orig = initialMoveResizeGeom;
Sizemode sizemode = SizemodeAny;
......@@ -2850,22 +2828,10 @@ void Client::handleMoveResize(int x, int y, int x_root, int y_root)
sizemode = SizemodeFixedW;
break;
case PositionCenter:
#ifdef KWIN_BUILD_TILING
// exception for tiling
// Center means no resizing allowed
if (workspace()->tiling()->isEnabled()) {
finishMoveResize(false);
buttonDown = false;
return;
}
#endif
default:
abort();
break;
}
#ifdef KWIN_BUILD_TILING
workspace()->tiling()->notifyTilingWindowResize(this, moveResizeGeom, initialMoveResizeGeom);
#endif
// adjust new size to snap to other windows/borders
moveResizeGeom = workspace()->adjustClientSize(this, moveResizeGeom, mode);
......@@ -3067,9 +3033,6 @@ void Client::handleMoveResize(int x, int y, int x_root, int y_root)
performMoveResize();
if (isMove()) {
#ifdef KWIN_BUILD_TILING
workspace()->tiling()->notifyTilingWindowMove(this, moveResizeGeom, initialMoveResizeGeom);
#endif
#ifdef KWIN_BUILD_SCREENEDGES
workspace()->screenEdge()->check(globalPos, xTime());
#endif
......@@ -3078,13 +3041,8 @@ void Client::handleMoveResize(int x, int y, int x_root, int y_root)
void Client::performMoveResize()
{
#ifdef KWIN_BUILD_TILING
if (!workspace()->tiling()->isEnabled())
#endif
{
if (isMove() || (isResize() && !s_haveResizeEffect)) {
setGeometry(moveResizeGeom);
}
if (isMove() || (isResize() && !s_haveResizeEffect)) {
setGeometry(moveResizeGeom);
}
#ifdef HAVE_XSYNC
if (isResize() && syncRequest.counter != None)
......
......@@ -62,9 +62,6 @@
#define KWIN_AUTOGROUP_FOREGROUND "AutogroupInForeground"
#define KWIN_SEPARATE_SCREEN_FOCUS "SeparateScreenFocus"
#define KWIN_ACTIVE_MOUSE_SCREEN "ActiveMouseScreen"
#define KWIN_TILINGON "TilingOn"
#define KWIN_TILING_DEFAULT_LAYOUT "TilingDefaultLayout"
#define KWIN_TILING_RAISE_POLICY "TilingRaisePolicy"
//CT 15mar 98 - magics
#define KWM_BRDR_SNAP_ZONE "BorderSnapZone"
......@@ -640,58 +637,6 @@ KAdvancedConfig::KAdvancedConfig(bool _standAlone, KConfig *_config, const KComp
connect(hideUtilityWindowsForInactive, SIGNAL(toggled(bool)), SLOT(changed()));
vLay->addWidget(hideUtilityWindowsForInactive, 1, 0, 1, 2);
tilBox = new KButtonGroup(this);
tilBox->setTitle(i18n("Tiling"));
QGridLayout *tilBoxLay = new QGridLayout(tilBox);
tilingOn = new QCheckBox(i18n("Enable Tiling"), tilBox);
tilingOn->setWhatsThis(
i18n("A tiling window manager lays out all the windows in a non-overlapping manner."
" This way all windows are always visible."));
tilBoxLay->addWidget(tilingOn);
connect(tilingOn, SIGNAL(toggled(bool)), SLOT(tilingOnChanged(bool)));
connect(tilingOn, SIGNAL(toggled(bool)), SLOT(changed()));
tilingLayoutLabel = new QLabel(i18n("Default Tiling &Layout"), tilBox);
tilBoxLay->addWidget(tilingLayoutLabel, 1, 0);
tilingLayoutCombo = new KComboBox(tilBox);
// NOTE: add your layout to the bottom of this list
tilingLayoutCombo->addItem(i18nc("Spiral tiling layout", "Spiral"));
tilingLayoutCombo->addItem(i18nc("Two-column horizontal tiling layout", "Columns"));
tilingLayoutCombo->addItem(i18nc("Floating layout, windows aren't tiled at all", "Floating"));
tilingLayoutLabel->setBuddy(tilingLayoutCombo);
connect(tilingLayoutCombo, SIGNAL(activated(int)), SLOT(changed()));
tilBoxLay->addWidget(tilingLayoutCombo, 1, 1);
tilingRaiseLabel = new QLabel(i18n("Floating &Windows Raising"), tilBox);
tilBoxLay->addWidget(tilingRaiseLabel, 2, 0);
tilingRaiseCombo = new KComboBox(tilBox);
// when a floating window is activated, all other floating
// windows are also brought to the front, above the tiled windows
// when a tiled window is focused, all floating windows go to the back.
// NOTE: If the user has explicitly set a client to "keep above others", that will be respected.
tilingRaiseCombo->addItem(i18nc("Window Raising Policy", "Raise/Lower all floating windows"));
tilingRaiseCombo->addItem(i18nc("Window Raising Policy", "Raise/Lower current window only"));
tilingRaiseCombo->addItem(i18nc("Window Raising Policy", "Floating windows are always on top"));
wtstr = i18n("The window raising policy determines how floating windows are stacked"
" <ul>"
" <li><em>Raise/Lower all</em> will raise all floating windows when a"
" floating window is activated.</li>"
" <li><em>Raise/Lower current</em> will raise only the current window.</li>"
" <li><em>Floating windows on top</em> will always keep floating windows on top, even"
" when a tiled window is activated."
"</ul>") ;
tilingRaiseCombo->setWhatsThis(wtstr);
connect(tilingRaiseCombo, SIGNAL(activated(int)), SLOT(changed()));
tilingRaiseLabel->setBuddy(tilingRaiseCombo);
tilBoxLay->addWidget(tilingRaiseCombo, 2, 1);
lay->addWidget(tilBox);
lay->addStretch();
load();
......@@ -721,33 +666,6 @@ void KAdvancedConfig::shadeHoverChanged(bool a)
shadeHover->setEnabled(a);
}
void KAdvancedConfig::setTilingOn(bool on)
{
tilingOn->setChecked(on);
tilingLayoutLabel->setEnabled(on);
tilingLayoutCombo->setEnabled(on);
tilingRaiseLabel->setEnabled(on);
tilingRaiseCombo->setEnabled(on);
}
void KAdvancedConfig::setTilingLayout(int l)
{
tilingLayoutCombo->setCurrentIndex(l);
}
void KAdvancedConfig::setTilingRaisePolicy(int l)
{
tilingRaiseCombo->setCurrentIndex(l);
}
void KAdvancedConfig::tilingOnChanged(bool a)
{
tilingLayoutLabel->setEnabled(a);
tilingLayoutCombo->setEnabled(a);
tilingRaiseLabel->setEnabled(a);
tilingRaiseCombo->setEnabled(a);
}
void KAdvancedConfig::showEvent(QShowEvent *ev)
{
if (!standAlone) {
......@@ -794,10 +712,6 @@ void KAdvancedConfig::load(void)
setAutogroupSimilarWindows(cg.readEntry(KWIN_AUTOGROUP_SIMILAR, false));
setAutogroupInForeground(cg.readEntry(KWIN_AUTOGROUP_FOREGROUND, true));
setTilingOn(cg.readEntry(KWIN_TILINGON, false));
setTilingLayout(cg.readEntry(KWIN_TILING_DEFAULT_LAYOUT, 0));
setTilingRaisePolicy(cg.readEntry(KWIN_TILING_RAISE_POLICY, 0));
emit KCModule::changed(false);
}
......@@ -835,10 +749,6 @@ void KAdvancedConfig::save(void)
QDBusConnection::sessionBus().send(message);
}
cg.writeEntry(KWIN_TILINGON, tilingOn->isChecked());
cg.writeEntry(KWIN_TILING_DEFAULT_LAYOUT, tilingLayoutCombo->currentIndex());
cg.writeEntry(KWIN_TILING_RAISE_POLICY, tilingRaiseCombo->currentIndex());
emit KCModule::changed(false);
}
......@@ -848,9 +758,6 @@ void KAdvancedConfig::defaults()
setShadeHoverInterval(250);
placementCombo->setCurrentIndex(0); // default to Smart
setHideUtilityWindowsForInactive(true);
setTilingOn(false);
setTilingLayout(0);
setTilingRaisePolicy(0);
setInactiveTabsSkipTaskbar(false);
setAutogroupSimilarWindows(false);
setAutogroupInForeground(true);
......
......@@ -181,7 +181,6 @@ private slots:
emit KCModule::changed(true);
}
void tilingOnChanged(bool a);
private:
int getShadeHoverInterval(void);
......@@ -210,19 +209,6 @@ private:
QCheckBox* autogroupInForeground;
KComboBox *placementCombo;
// ------------------------------
// Tiling related widgets/methods
// ------------------------------
KButtonGroup *tilBox;
QCheckBox *tilingOn;
QLabel *tilingLayoutLabel;
QLabel *tilingRaiseLabel;
KComboBox *tilingLayoutCombo;
KComboBox *tilingRaiseCombo;
void setTilingOn(bool);
void setTilingLayout(int);
void setTilingRaisePolicy(int);
};
#endif // KKWMWINDOWS_H
......@@ -106,7 +106,6 @@ RulesWidget::RulesWidget(QWidget* parent)
SETUP(autogroupid, force);
SETUP(opacityactive, force);
SETUP(opacityinactive, force);
SETUP(tilingoption, force);
SETUP(shortcut, force);
// workarounds tab
SETUP(fsplevel, force);
......@@ -118,7 +117,6 @@ RulesWidget::RulesWidget(QWidget* parent)
SETUP(disableglobalshortcuts, force);
SETUP(blockcompositing, force);
connect (title_match, SIGNAL(currentIndexChanged(int)), SLOT(titleMatchChanged()));
connect (machine_match, SIGNAL(currentIndexChanged(int)), SLOT(machineMatchChanged()));
connect (shortcut_edit, SIGNAL(clicked()), SLOT(shortcutEditClicked()));
......@@ -175,7 +173,6 @@ UPDATE_ENABLE_SLOT(autogroupfg)
UPDATE_ENABLE_SLOT(autogroupid)
UPDATE_ENABLE_SLOT(opacityactive)
UPDATE_ENABLE_SLOT(opacityinactive)
UPDATE_ENABLE_SLOT(tilingoption)
void RulesWidget::updateEnableshortcut()
{
shortcut->setEnabled(enable_shortcut->isChecked() && rule_shortcut->currentIndex() != 0);
......@@ -311,16 +308,6 @@ QString RulesWidget::comboToActivity(int val) const
return activity->itemData(val).toString();
}
int RulesWidget::tilingToCombo(int t) const
{
return qBound(0, t, 1);
}
int RulesWidget::comboToTiling(int val) const
{
return val; // 0 is tiling, 1 is floating
}
static int placementToCombo(Placement::Policy placement)
{
static const int conv[] = {
......@@ -473,7 +460,6 @@ void RulesWidget::setRules(Rules* rules)
LINEEDIT_FORCE_RULE(autogroupid,);
SPINBOX_FORCE_RULE(opacityactive,);
SPINBOX_FORCE_RULE(opacityinactive,);
COMBOBOX_FORCE_RULE(tilingoption, tilingToCombo);
LINEEDIT_SET_RULE(shortcut,);
COMBOBOX_FORCE_RULE(fsplevel,);
COMBOBOX_FORCE_RULE(type, typeToCombo);
......@@ -568,7 +554,6 @@ Rules* RulesWidget::rules() const
LINEEDIT_FORCE_RULE(autogroupid,);
SPINBOX_FORCE_RULE(opacityactive,);
SPINBOX_FORCE_RULE(opacityinactive,);
COMBOBOX_FORCE_RULE(tilingoption, comboToTiling);
LINEEDIT_SET_RULE(shortcut,);
COMBOBOX_FORCE_RULE(fsplevel,);
COMBOBOX_FORCE_RULE(type, comboToType);
......@@ -688,7 +673,6 @@ void RulesWidget::prefillUnusedValues(const KWindowInfo& info)
//LINEEDIT_PREFILL( autogroupid, );
SPINBOX_PREFILL(opacityactive, , 100 /*get the actual opacity somehow*/);
SPINBOX_PREFILL(opacityinactive, , 100 /*get the actual opacity somehow*/);
COMBOBOX_PREFILL(tilingoption, tilingToCombo, 0);
//LINEEDIT_PREFILL( shortcut, );
//COMBOBOX_PREFILL( fsplevel, );
COMBOBOX_PREFILL(type, typeToCombo, info.windowType(SUPPORTED_MANAGED_WINDOW_TYPES_MASK));
......
......@@ -78,7 +78,6 @@ private slots:
void updateEnableautogroupid();
void updateEnableopacityactive();
void updateEnableopacityinactive();
void updateEnabletilingoption();
// workarounds tab
void updateEnablefsplevel();
void updateEnabletype();
......@@ -96,7 +95,6 @@ private:
int comboToDesktop(int val) const;
int activityToCombo(QString d) const;
QString comboToActivity(int val) const;
int tilingToCombo(int t) const;
int comboToTiling(int val) const;
void prefillUnusedValues(const KWindowInfo& info);
DetectDialog* detect_dlg;
......
This diff is collapsed.
......@@ -7122,349 +7122,6 @@ Comment[zh_CN]=一些效果不被后端或硬件支持。
Comment[zh_TW]=有些效果未被後端介面或硬體支援。
Action=Popup
[Event/tilingenabled]
Name=Tiling Enabled
Name[ar]=رصف النوافذ مُفعّل
Name[ast]=Mosaicu activáu
Name[bg]=Включено е подреждане в мозайка
Name[bs]=Popločavanje uključeno
Name[ca]=Mosaic habilitat
Name[ca@valencia]=Mosaic habilitat
Name[cs]=Dlaždicování zapnuto
Name[da]=Fliseudlægning aktiveret
Name[de]=Kacheln aktiviert
Name[el]=Ενεργοποίηση παράθεσης
Name[en_GB]=Tiling Enabled
Name[es]=Mosaico activado
Name[et]=Paanimine on sisse lülitatud
Name[eu]=Mosaikoa gaituta
Name[fi]=Kaakelointi otettu käyttöön
Name[fr]=Mosaïque activée
Name[ga]=Tíliú Cumasaithe
Name[he]=ריצוף אופשר
Name[hi]=टायलिग सक्षम
Name[hr]=Slaganje omogućeno
Name[hu]=Mozaik bekapcsolva
Name[ia]=Tegulas habilitate
Name[id]=Pengubinan Diaktifkan
Name[is]=Flísalagningahamur virkur
Name[it]=Affiancamento abilitato
Name[ja]=タイリングが有効
Name[kk]=Қатарлау рұқсат етілді
Name[km]=បានបើក​ក្រឡា​ក្បឿង
Name[ko]=타일링 활성화됨
Name[lt]=Išdėliojimas įjungtas
Name[lv]=Mozaīkošana ieslēgta
Name[nb]=Flislegging slått på
Name[nds]=Kacheln anmaakt
Name[nl]=Tegelen ingeschakeld
Name[pa]=ਟਿਲਿੰਗ ਚਾਲੂ ਹੈ
Name[pl]=Kafelki włączone
Name[pt]=Mosaico Activado
Name[pt_BR]=Mosaico habilitado
Name[ro]=Mozaic activat
Name[ru]=Мозаичный режим включён
Name[si]=උළු සෙවිලි කිරීම සක්‍රියයි
Name[sk]=Dlaždice povolené
Name[sl]=Tlakovanje omogočeno
Name[sr]=Поплочавање укључено
Name[sr@ijekavian]=Поплочавање укључено
Name[sr@ijekavianlatin]=Popločavanje uključeno
Name[sr@latin]=Popločavanje uključeno
Name[sv]=Sida vid sida aktiverad
Name[th]=การปูหน้าต่างถูกเปิดใช้งาน
Name[tr]=Döşeme Etkinleştirildi
Name[ug]=كاھىش ئۈنۈمى ئىناۋەتلىك
Name[uk]=Мозаїчне розташування увімкнено
Name[x-test]=xxTiling Enabledxx
Name[zh_CN]=平铺已启用
Name[zh_TW]=鋪排已開啟
Comment=Tiling mode has been enabled
Comment[ar]=فُعِّل نمط رصف النوافذ
Comment[ast]=Activáu'l mou mosaicu
Comment[bg]=Включено е подреждане на прозорците в мозайка
Comment[bs]=Uključen je režim popločavanja
Comment[ca]=S'ha habilitat el mode de mosaic
Comment[ca@valencia]=S'ha habilitat el mode de mosaic
Comment[cs]=Dlaždicový režim byl povolen
Comment[da]=Fliseudlægningstilstand er blevet aktiveret
Comment[de]=Kacheln-Modus ist aktiviert worden
Comment[el]=Η λειτουργία παράθεσης έχει ενεργοποιηθεί
Comment[en_GB]=Tiling mode has been enabled
Comment[es]=Se ha activado el modo mosaico
Comment[et]=Paanimine on sisse lülitatud
Comment[eu]=Mosaiko modua gaitu egin da
Comment[fi]=Kaakelointitila on otettu käyttöön
Comment[fr]=L'affichage des fenêtres en mosaïque a été activé.
Comment[ga]=Cumasaíodh an mód tílithe
Comment[he]=מצב ריצוף אופשר
Comment[hr]=Omogućeno je slaganje
Comment[hu]=Mozaikozó ablakkezelés bekapcsolva
Comment[ia]=Le modo de tegulas ha essite habilitate
Comment[id]=Mode pengubinan telah diaktifkan
Comment[is]=Flísalagningahamur hefur verið gerður virkur
Comment[it]=La modalità di affiancamento è stata attivata
Comment[ja]=タイリングモードが有効になりました
Comment[kk]=Қатарлау режімі рұқсат етілді
Comment[km]=បានបើក​របៀប​ក្រឡា​ក្បឿង
Comment[ko]=타일링 모드를 사용합니다
Comment[lt]=Įjungtas išdėliojimo režimas
Comment[lv]=Mozaīkošanas režīms ir ieslēgts
Comment[nb]=Flislegging er slått på
Comment[nds]="Kacheln " wöör anmaakt
Comment[nl]=Tegelenmodus is ingeschakeld
Comment[pa]=ਟਿਲਿੰਗ ਮੋਡ ਚਾਲੂ ਹੈ
Comment[pl]=Tryb kafelków został włączony
Comment[pt]=O modo em mosaico (lado-a-lado) foi activado
Comment[pt_BR]=O modo em mosaico foi habilitado
Comment[ro]=Dispunerea în modul mozaic a fost activată
Comment[ru]=Мозаичный режим диспетчера окон включён
Comment[si]=සෙවිලි කිරීමේ ප්‍රකාරය සක්‍රිය කර ඇත
Comment[sk]=Režim dlaždíc bol povolený
Comment[sl]=Način s tlakovanjem je bil omogočen
Comment[sr]=Укључен је режим поплочавања
Comment[sr@ijekavian]=Укључен је режим поплочавања
Comment[sr@ijekavianlatin]=Uključen je režim popločavanja
Comment[sr@latin]=Uključen je režim popločavanja
Comment[sv]=Sida vid sida har aktiverats
Comment[th]=โหมดการปูหน้าต่างถูกเปิดใช้งาน
Comment[tr]=Döşeme kipi etkinleştirildi
Comment[ug]=تەكشى ياي ھالىتى قوزغىتىلدى
Comment[uk]=Було увімкнено режим мозаїчного розташування
Comment[x-test]=xxTiling mode has been enabledxx
Comment[zh_CN]=已启用平铺模式
Comment[zh_TW]=鋪排模式已開啟
Action=Popup
[Event/tilingdisabled]
Name=Tiling Disabled
Name[ar]=رصف النوافذ مُعطّل
Name[ast]=Mosaicu desactiváu
Name[bg]=Изключено е подреждането в мозайка
Name[bs]=Popločavanje isključeno
Name[ca]=Mosaic deshabilitat
Name[ca@valencia]=Mosaic deshabilitat
Name[cs]=Dlaždicování vypnuto
Name[da]=Fliseudlægning deaktiveret
Name[de]=Kacheln deaktiviert
Name[el]=Η παράθεση απενεργοποιήθηκε
Name[en_GB]=Tiling Disabled
Name[es]=Mosaico desactivado
Name[et]=Paanimine on välja lülitatud
Name[eu]=Mosaikoa ezgaituta
Name[fi]=Kaakelointi on poistettu käytöstä
Name[fr]=Mosaïque désactivée
Name[ga]=Tíliú Díchumasaithe
Name[he]=ריצוף הופסק
Name[hi]=टायलिंग अक्षम
Name[hr]=Slaganje onemogućeno
Name[hu]=Mozaik kikapcsolva
Name[ia]=Tegulas dishabilitate
Name[id]=Pengubinan Dinonaktifkan
Name[is]=Flísalagningahamur óvirkur
Name[it]=Affiancamento disabilitato
Name[ja]=タイリングが無効
Name[kk]=Қатарлау рұқсат етілмеді
Name[km]=បានបិទ​ក្រឡា​ក្បឿង
Name[ko]=타일링 비활성화됨
Name[lt]=Išdėliojimas išjungtas
Name[lv]=Mozaīkošana izslēgta
Name[nb]=Flislegging slått av
Name[nds]="Kacheln" utmaakt
Name[nl]=Tegelen uitgeschakeld
Name[pa]=ਟਿੰਲਿੰਗ ਬੰਦ ਹੈ
Name[pl]=Kafelki wyłączone
Name[pt]=Mosaico Desactivado
Name[pt_BR]=Mosaico desabilitado
Name[ro]=Mozaic dezactivat
Name[ru]=Мозаичный режим выключен
Name[si]=උළු සෙවිලි කිරීම අක්‍රියයි
Name[sk]=Dlaždice zakázané
Name[sl]=Tlakovanje onemogočeno
Name[sr]=Поплочавање искључено
Name[sr@ijekavian]=Поплочавање искључено
Name[sr@ijekavianlatin]=Popločavanje isključeno
Name[sr@latin]=Popločavanje isključeno
Name[sv]=Sida vid sida inaktiverad
Name[th]=การปูหน้าต่างถูกปิดการใช้งาน
Name[tr]=Döşeme Pasifleştirildi
Name[ug]=كاھىش ئۈنۈمى چەكلەنگەن
Name[uk]=Мозаїчне розташування вимкнено
Name[x-test]=xxTiling Disabledxx
Name[zh_CN]=平铺已禁用
Name[zh_TW]=鋪排已關閉
Comment=Tiling mode has been disabled
Comment[ar]=عُطِّل نمط رصف النوافذ
Comment[ast]=Desactivóse'l mou mosaicu
Comment[bg]=Изключено е подреждането на прозорците в мозайка
Comment[bs]=Isključen je režim popločavanja
Comment[ca]=S'ha deshabilitat el mode de mosaic
Comment[ca@valencia]=S'ha deshabilitat el mode de mosaic
Comment[cs]=Dlaždicový režim byl zakázán
Comment[da]=Fliseudlægningstilstand er blevet deaktiveret
Comment[de]=Die Funktion „Kacheln“ ist deaktiviert worden
Comment[el]=Η λειτουργία παράθεσης έχει απενεργοποιηθεί
Comment[en_GB]=Tiling mode has been disabled
Comment[es]=Se ha desactivado el modo mosaico
Comment[et]=Paanimine on välja lülitatud
Comment[eu]=Mosaiko modua ezgaitu egin da
Comment[fi]=Kaakelointitila poistettu käytöstä
Comment[fr]=L'affichage des fenêtres en mosaïque a été désactivé.
Comment[ga]=Díchumasaíodh an mód tílithe
Comment[he]=מצב ריצוף הופסק
Comment[hr]=Popločavanje je onemogućeno
Comment[hu]=Mozaikozó ablakkezelés kikapcsolva
Comment[ia]=Le mode de tegulas ha essite dishabilitate
Comment[id]=Tombol pengubinan telah dinonaktifkan
Comment[is]=Flísalagningahamur hefur verið gerður óvirkur
Comment[it]=La modalità di affiancamento è stata disattivata
Comment[ja]=タイリングモードが無効になりました
Comment[kk]=Қатарлау режімі рұқсат етілмеді
Comment[km]=បាន​បិទ​របៀប​ក្រឡាក្បឿង
Comment[ko]=타일링 모드를 사용하지 않습니다
Comment[lt]=Išjungtas išdėliojimo režimas
Comment[lv]=Mozaīkošanas režīms ir izslēgts
Comment[nb]=Flislegging er slått av
Comment[nds]="Kacheln" wöör utmaakt