From 3363f4f9ed7df0b928a7c09d99b63ce70a6ba132 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=B6glund?= Date: Wed, 7 Aug 2013 23:01:14 +0200 Subject: [PATCH 1/3] kwin: Don't set the forward-compatible bit This flag seems to be ignored by several OpenGL implementations, so don't set it for now. Mesa may also stop accepting this flag until forward-compatible contexts are fully supported. --- eglonxbackend.cpp | 1 - glxbackend.cpp | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/eglonxbackend.cpp b/eglonxbackend.cpp index 9af3c0d507..ab692d7cb5 100644 --- a/eglonxbackend.cpp +++ b/eglonxbackend.cpp @@ -177,7 +177,6 @@ bool EglOnXBackend::initRenderingContext() const EGLint context_attribs_31_core[] = { EGL_CONTEXT_MAJOR_VERSION_KHR, 3, EGL_CONTEXT_MINOR_VERSION_KHR, 1, - EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, EGL_NONE }; diff --git a/glxbackend.cpp b/glxbackend.cpp index 11f7017bf5..545dedf6cf 100644 --- a/glxbackend.cpp +++ b/glxbackend.cpp @@ -155,7 +155,7 @@ bool GlxBackend::initRenderingContext() const int attribs_31_core_robustness[] = { GLX_CONTEXT_MAJOR_VERSION_ARB, 3, GLX_CONTEXT_MINOR_VERSION_ARB, 1, - GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB | GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB, + GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB, GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB, GLX_LOSE_CONTEXT_ON_RESET_ARB, 0 }; @@ -163,7 +163,6 @@ bool GlxBackend::initRenderingContext() const int attribs_31_core[] = { GLX_CONTEXT_MAJOR_VERSION_ARB, 3, GLX_CONTEXT_MINOR_VERSION_ARB, 1, - GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB, 0 }; From 3b2f744b49f98b16cd5f9f26352c0d79f6421e2a Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Tue, 13 Aug 2013 07:25:19 +0000 Subject: [PATCH 2/3] SVN_SILENT made messages (.desktop file) --- kcmkwin/kwindecoration/kwindecoration.desktop | 1 + kcmkwin/kwinscripts/kwinscripts.desktop | 3 +++ scripting/kwinscript.desktop | 1 + scripts/desktopchangeosd/metadata.desktop | 2 ++ scripts/videowall/metadata.desktop | 2 ++ tabbox/qml/clients/big_icons/metadata.desktop | 1 + tabbox/qml/clients/compact/metadata.desktop | 1 + tabbox/qml/clients/present_windows/metadata.desktop | 2 ++ tabbox/qml/clients/small_icons/metadata.desktop | 1 + 9 files changed, 14 insertions(+) diff --git a/kcmkwin/kwindecoration/kwindecoration.desktop b/kcmkwin/kwindecoration/kwindecoration.desktop index 7adec3c557..794ff49ba4 100644 --- a/kcmkwin/kwindecoration/kwindecoration.desktop +++ b/kcmkwin/kwindecoration/kwindecoration.desktop @@ -170,6 +170,7 @@ X-KDE-Keywords[de]=KWin,Kwm,Fenster,Manager,Rahmen,Design,Stile,Themes,Optik,Ers X-KDE-Keywords[el]=kwin,παράθυρο,διαχειριστής,περίγραμμα,στιλ,θέμα,εμφάνιση,αίσθηση,διάταξη,κουμπί,χειρισμός,άκρη,kwm,διακόσμηση X-KDE-Keywords[es]=kwin,ventana,gestor,borde,estilo,tema,aspecto,sensación,disposición,botón,asa,borde,kwm,decoración X-KDE-Keywords[et]=kwin,aken,haldur,piire,stiil,teema,välimus,paigutus,nupp,pide,serv,kwm,dekoratsioon +X-KDE-Keywords[eu]=kwin,leiho,kudeatzaile,muga,estilo,gai,itxura,izaera,antolamendu,botoi,helduleku,ertz,kwm,apainketa X-KDE-Keywords[fi]=kwin,ikkuna,hallinta,ikkunointiohjelma,kehys,reunus,tyyli,teema,ulkoasu,toiminta,asettelu,painike,kahva,kulma,reuna,kwm,koriste X-KDE-Keywords[fr]=kwin, fenêtre, gestionnaire, composition, bordure, style, thème, apparence, comportement, disposition, bouton, prise en main, bord, kwm, décoration X-KDE-Keywords[ga]=kwin,fuinneog,bainisteoir,imlíne,stíl,téama,cuma,brath,leagan amach,cnaipe,hanla,ciumhais,kwm,maisiúchán diff --git a/kcmkwin/kwinscripts/kwinscripts.desktop b/kcmkwin/kwinscripts/kwinscripts.desktop index 73f78fefc0..6c8ffc055e 100644 --- a/kcmkwin/kwinscripts/kwinscripts.desktop +++ b/kcmkwin/kwinscripts/kwinscripts.desktop @@ -18,6 +18,7 @@ X-KDE-Keywords[de]=KWin-Skript X-KDE-Keywords[el]=σενάριο kwin X-KDE-Keywords[es]=guion de kwin X-KDE-Keywords[et]=kwini skript +X-KDE-Keywords[eu]=kwin script-a X-KDE-Keywords[fi]=kwin-skripti X-KDE-Keywords[fr]=Script de KWin X-KDE-Keywords[ga]=Script kwin @@ -63,6 +64,7 @@ Name[de]=KWin-Skripte Name[el]=Σενάρια KWin Name[es]=Guiones de KWin Name[et]=KWini skriptid +Name[eu]=KWin script-ak Name[fi]=KWin-skriptit Name[fr]=Scripts de KWin Name[ga]=Scripteanna KWin @@ -107,6 +109,7 @@ Comment[de]=KWin-Skripte verwalten Comment[el]=Διαχείριση σεναρίων KWin Comment[es]=Gestionar guiones de KWin Comment[et]=KWini skriptide haldamine +Comment[eu]=Kudeatu KWin script-ak Comment[fi]=KWin-skriptien hallinta Comment[fr]=Gérer les scripts de KWin Comment[ga]=Bainistigh scripteanna KWin diff --git a/scripting/kwinscript.desktop b/scripting/kwinscript.desktop index fa0edd7d60..dfe010ceec 100644 --- a/scripting/kwinscript.desktop +++ b/scripting/kwinscript.desktop @@ -12,6 +12,7 @@ Comment[de]=KWin-Skript Comment[el]=Σενάριο KWin Comment[es]=Guion de KWin Comment[et]=KWini skript +Comment[eu]=KWin script-a Comment[fi]=KWin-skripti Comment[fr]=Script KWin Comment[ga]=Script KWin diff --git a/scripts/desktopchangeosd/metadata.desktop b/scripts/desktopchangeosd/metadata.desktop index 1f47e38ac3..4bcc3857b5 100644 --- a/scripts/desktopchangeosd/metadata.desktop +++ b/scripts/desktopchangeosd/metadata.desktop @@ -9,6 +9,7 @@ Name[de]=OSD-Arbeitsflächenwechsel Name[el]=OSD αλλαγής επιφάνειας εργασίας Name[es]=Información en pantalla sobre cambio de escritorio Name[et]=Töölaua muutmise ekraaniesitus +Name[eu]=Mahaigain aldaketa OSD Name[fi]=Työpöydänvaihdon ilmoitus Name[fr]=OSD pour le changement de bureau Name[gl]=OSD de cambio de escritorio @@ -50,6 +51,7 @@ Comment[de]=Ein On-Screen-Display (OSD), das den Wechsel der Arbeitsfläche anze Comment[el]=Μια ένδειξη στην οθόνη που δηλώνει την αλλαγή της επιφάνειας εργασίας Comment[es]=Una información en pantalla que indica el cambio de escritorio Comment[et]=Töölaua muutumist näitab ekraanikuva +Comment[eu]=Mahaigain aldaketa adierazten duen pantailan erakusten den informazioa Comment[fi]=Näytölle ilmestyvä ilmoitus työpöydän vaihdosta Comment[fr]=Un affichage sur l'écran (OSD) indiquant le changement de bureau Comment[gl]=Un visor na pantalla que indica o cambio de escritorio diff --git a/scripts/videowall/metadata.desktop b/scripts/videowall/metadata.desktop index 32fe15d3be..7f9e847255 100644 --- a/scripts/videowall/metadata.desktop +++ b/scripts/videowall/metadata.desktop @@ -9,6 +9,7 @@ Name[de]=Video-Wand Name[el]=Τοίχος με οθόνες Name[es]=Panel de vídeo Name[et]=Videosein +Name[eu]=Bideo-horma Name[fi]=Videoseinä Name[fr]=Mur de vidéos Name[ga]=Balla Físe @@ -51,6 +52,7 @@ Comment[de]=Erweitert einen Videospieler im Vollbildmodus über alle Bildschirme Comment[el]=Απλώνει πλήρη οθόνη για το πρόγραμμα αναπαραγωγής βίντεο σε όλες τις προσαρτημένες οθόνες για να δημιουργήσει ένα Video Wall Comment[es]=Extiende el reproductor de vídeo a pantalla completa sobre todas las pantallas conectadas para crear un panel de vídeo Comment[et]=Täisekraan-videomängija laiendamine kõigile ühendatud ekraanile videoseina loomiseks +Comment[eu]=Pantaila-beteko bideo jotzea lotutako pantaila guztietara zabaltzen du bideo-horma bat sortzeko Comment[fi]=Levittää koko näytön tilassa olevan videotoistimen kaikkiin yhdistettyihin näyttöihin luoden videoseinän Comment[fr]=Étend le lecteur vidéo en mode plein écran sur l'ensemble des écrans connectés afin de créer un mur de vidéos Comment[gl]=Estende un reprodutor de vídeo a pantalla completa por todas as pantallas anexas para crear unha parede de vídeo diff --git a/tabbox/qml/clients/big_icons/metadata.desktop b/tabbox/qml/clients/big_icons/metadata.desktop index 1058787b64..b95dc5ac27 100644 --- a/tabbox/qml/clients/big_icons/metadata.desktop +++ b/tabbox/qml/clients/big_icons/metadata.desktop @@ -9,6 +9,7 @@ Name[de]=Große Symbole Name[el]=Μεγάλα εικονίδια Name[es]=Iconos grandes Name[et]=Suured ikoonid +Name[eu]=Ikonoak handiak Name[fi]=Suuret kuvakkeet Name[fr]=Grandes icônes Name[ga]=Deilbhíní Móra diff --git a/tabbox/qml/clients/compact/metadata.desktop b/tabbox/qml/clients/compact/metadata.desktop index 15d490f668..b5e0ae8372 100644 --- a/tabbox/qml/clients/compact/metadata.desktop +++ b/tabbox/qml/clients/compact/metadata.desktop @@ -9,6 +9,7 @@ Name[de]=Kompakt Name[el]=Συμπαγές Name[es]=Compacto Name[et]=Kompaktne +Name[eu]=Trinkoa Name[fi]=Tiivis Name[fr]=Synthétique Name[ga]=Dlúth diff --git a/tabbox/qml/clients/present_windows/metadata.desktop b/tabbox/qml/clients/present_windows/metadata.desktop index c338414def..f758bd40fa 100644 --- a/tabbox/qml/clients/present_windows/metadata.desktop +++ b/tabbox/qml/clients/present_windows/metadata.desktop @@ -9,6 +9,7 @@ Name[de]=Raster Name[el]=Κάνναβος Name[es]=Rejilla Name[et]=Võrgustik +Name[eu]=Sareta Name[fi]=Ruudukko Name[fr]=Grille Name[ga]=Greille @@ -53,6 +54,7 @@ Comment[de]=Ein Fensterwechsler-Layout, das Vorschauen aller Fenster in einem Ra Comment[el]=Μια διάταξη εναλλαγής παραθύρων με όλα τα παράθυρα ως εικόνες επισκόπησης σε κάνναβο Comment[es]=Un esquema de cambiador de ventanas que muestra todas las ventanas como miniaturas en una rejilla Comment[et]=Aknavahetaja paigutus kõigi akende näitamisega pisipiltidena võrgustikus +Comment[eu]=Leiho aldaketarako antolamendu bat leiho guztiak sareta batean koadro-txiki gisa erakusten dituena Comment[fi]=Tehtävänvalitsimen asettelu, joka näyttää kaikkien ikkunoiden pienoiskuvat ruudukossa Comment[fr]=Une disposition de sélecteur de fenêtres affichant toutes les fenêtres en miniatures dans une grille Comment[gl]=Unha disposición do alternador de xanelas que mostra nunha grella miniaturas das xanelas diff --git a/tabbox/qml/clients/small_icons/metadata.desktop b/tabbox/qml/clients/small_icons/metadata.desktop index 96e785e49b..2f48df0a1b 100644 --- a/tabbox/qml/clients/small_icons/metadata.desktop +++ b/tabbox/qml/clients/small_icons/metadata.desktop @@ -9,6 +9,7 @@ Name[de]=Kleine Symbole Name[el]=Μικρά εικονίδια Name[es]=Iconos pequeños Name[et]=Väikesed ikoonid +Name[eu]=Ikono txikiak Name[fi]=Pienet kuvakkeet Name[fr]=Petites icônes Name[ga]=Deilbhíní Beaga From a3357695a7f0d5ce714681921a69c9ab0ded2319 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sun, 11 Aug 2013 19:02:53 +0200 Subject: [PATCH 3/3] make stacking_order exclusive during shutdown Client::releaseClient() deletes all Client objects referenced by stacking_order, thus those pointers dangle and everything trying to touch it died an ugly death. REVIEW: 112020 BUG: 323383 --- workspace.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/workspace.cpp b/workspace.cpp index 8237eeda9b..3ec6979500 100644 --- a/workspace.cpp +++ b/workspace.cpp @@ -420,8 +420,13 @@ Workspace::~Workspace() // TODO: grabXServer(); // Use stacking_order, so that kwin --replace keeps stacking order - for (ToplevelList::iterator it = stacking_order.begin(), end = stacking_order.end(); it != end; ++it) { - Client *c = qobject_cast(*it); + const ToplevelList stack = stacking_order; + // "mutex" the stackingorder, since anything trying to access it from now on will find + // many dangeling pointers and crash + stacking_order.clear(); + + for (ToplevelList::const_iterator it = stack.constBegin(), end = stack.constEnd(); it != end; ++it) { + Client *c = qobject_cast(const_cast(*it)); if (!c) { continue; }