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 01/39] 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 df17849412fd4fa3f5a7f31a06b434d23187de80 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Tue, 13 Aug 2013 04:19:10 +0000 Subject: [PATCH 02/39] SVN_SILENT made messages (.desktop file) --- clients/aurorae/src/kwindecoration.desktop | 1 + clients/aurorae/themes/plastik/package/metadata.desktop | 1 + effects/kscreen/kscreen.desktop | 2 ++ effects/maximize/package/metadata.desktop | 1 + effects/mouseclick/mouseclick.desktop | 2 ++ effects/mouseclick/mouseclick_config.desktop | 1 + effects/screenedge/screenedgeeffect.desktop | 2 ++ kcmkwin/kwindecoration/kwindecoration.desktop | 1 + kcmkwin/kwinoptions/kwinactions.desktop | 1 + kcmkwin/kwinscripts/kwinscripts.desktop | 3 +++ kwin.notifyrc | 2 ++ 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 + 18 files changed, 27 insertions(+) diff --git a/clients/aurorae/src/kwindecoration.desktop b/clients/aurorae/src/kwindecoration.desktop index aa2017c7b3..0055e10b45 100644 --- a/clients/aurorae/src/kwindecoration.desktop +++ b/clients/aurorae/src/kwindecoration.desktop @@ -12,6 +12,7 @@ Comment[de]=KWin-Fensterdekoration Comment[el]=Διακοσμήσεις παραθύρου KWin Comment[es]=Decoración de ventanas de KWin Comment[et]=KWini akna dekoratsioon +Comment[eu]=KWin leihoen apaingarriak Comment[fi]=KWin-ikkunakoristus Comment[fr]=Décorations de fenêtres KWin Comment[ga]=Maisiúchán Fuinneog KWin diff --git a/clients/aurorae/themes/plastik/package/metadata.desktop b/clients/aurorae/themes/plastik/package/metadata.desktop index 26fa04729f..2f6db64b3f 100644 --- a/clients/aurorae/themes/plastik/package/metadata.desktop +++ b/clients/aurorae/themes/plastik/package/metadata.desktop @@ -98,6 +98,7 @@ 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 +Comment[eu]=KDE 3tik ezaguna den gai klasikoa Comment[fi]=KDE 3:sta tuttu klassinen teema Comment[fr]=Le thème classique connu depuis KDE 3 Comment[gl]=O tema clásico de KDE 3 diff --git a/effects/kscreen/kscreen.desktop b/effects/kscreen/kscreen.desktop index f5127baafe..8ecb54ccca 100644 --- a/effects/kscreen/kscreen.desktop +++ b/effects/kscreen/kscreen.desktop @@ -7,6 +7,7 @@ Name[da]=KScreen Name[de]=Kscreen Name[el]=Kscreen Name[es]=Kscreen +Name[eu]=Kscreen Name[fi]=KScreen Name[fr]=KScreen Name[gl]=KScreen @@ -40,6 +41,7 @@ Comment[cs]=Pomocný efekt pro KScreen Comment[da]=Hjælpeeffekt til KScreen Comment[de]=Hilfseffekt für KScreen Comment[es]=Efecto auxiliar para KScreen +Comment[eu]=KScreen-entzako efektu laguntzailea Comment[fi]=Avustajatehoste KScreenille Comment[fr]=Effet d'assistance pour KScreen Comment[gl]=Efecto auxiliar para KScreen. diff --git a/effects/maximize/package/metadata.desktop b/effects/maximize/package/metadata.desktop index e74d6c0f12..b1ee810991 100644 --- a/effects/maximize/package/metadata.desktop +++ b/effects/maximize/package/metadata.desktop @@ -49,6 +49,7 @@ Name[de]=Maximieren Name[el]=Μεγιστοποίηση Name[es]=Maximizar Name[et]=Maksimeerimine +Name[eu]=Maximizatu Name[fi]=Suurentaminen Name[fr]=Maximiser Name[ga]=Uasmhéadaigh diff --git a/effects/mouseclick/mouseclick.desktop b/effects/mouseclick/mouseclick.desktop index cce2fb0952..2cd49a145d 100644 --- a/effects/mouseclick/mouseclick.desktop +++ b/effects/mouseclick/mouseclick.desktop @@ -9,6 +9,7 @@ Name[de]=Animation für Mausklicks Name[el]=Εφέ κίνησης με κλικ του ποντικιού Name[es]=Animación del clic de ratón Name[et]=Hiireklõpsu animeerimine +Name[eu]=Sagu-klikaren animazioa Name[fi]=Hiiren napsautuksen animointi Name[fr]=Animation du clic de la souris Name[gl]=Animación ao premer o rato @@ -52,6 +53,7 @@ Comment[de]=Erzeugt bei jedem Mausklick eine Animation. Dies ist sinnvoll für B Comment[el]=Σχηματίζει εφέ κίνησης όποτε γίνεται κλικ σε κουμπί του ποντικιού. Αυτό είναι χρήσιμο για βιντεοσκόπηση οθόνης / παρουσιάσεις. Comment[es]=Crea una animación cada vez que se pulsa un botón del ratón. Esto resulta útil para las grabaciones de pantalla y para las presentaciones. Comment[et]=Animatsiooni loomine hiirenupu klõpsamise peale. See on kasulik näiteks ekraanisalvestuste või esitluste jaoks. +Comment[eu]=Animazio bat sortzen du saguaren botoi bat klikatzen den bakoitzean. Erabilgarria da pantailaren grabaziorako/aurkezpenetarako. Comment[fi]=Näyttää animoinnin hiirtä napsautettaessa. Tästä on hyötyä näyttötallennuksissa ja esityksissä. Comment[fr]=Crée une animation associé à un clic sur un bouton de la souris. Ceci est utile pour les enregistrement d'écran ou les présentations. 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. diff --git a/effects/mouseclick/mouseclick_config.desktop b/effects/mouseclick/mouseclick_config.desktop index 6a482daaa0..3e68b125e6 100644 --- a/effects/mouseclick/mouseclick_config.desktop +++ b/effects/mouseclick/mouseclick_config.desktop @@ -16,6 +16,7 @@ Name[de]=Animation für Mausklicks Name[el]=Εφέ κίνησης με κλικ του ποντικιού Name[es]=Animación del clic de ratón Name[et]=Hiireklõpsu animeerimine +Name[eu]=Sagu-klikaren animazioa Name[fi]=Hiiren napsautuksen animointi Name[fr]=Animation du clic de la souris Name[gl]=Animación ao premer o rato diff --git a/effects/screenedge/screenedgeeffect.desktop b/effects/screenedge/screenedgeeffect.desktop index 87ebd7f3aa..846e68820a 100644 --- a/effects/screenedge/screenedgeeffect.desktop +++ b/effects/screenedge/screenedgeeffect.desktop @@ -7,6 +7,7 @@ Name[da]=Skærmkant Name[de]=Bildschirmkante Name[el]=Άκρο οθόνης Name[es]=Borde de la pantalla +Name[eu]=Pantailaren ertza Name[fi]=Näytön reuna Name[fr]=Bord de l'écran Name[gl]=Beira da pantalla @@ -46,6 +47,7 @@ Comment[da]=Fremhæver en skærmkant når den nærmer sig Comment[de]=Bildschirmkante bei Annäherung hervorheben Comment[el]=Εμφανίζει τονισμένο το άκρο της οθόνης όταν το πλησιάζετε Comment[es]=Resalta el borde de la pantalla al aproximarse a él +Comment[eu]=Pantailaren ertz bat nabarmentzen du hurbiltzerakoan Comment[fi]=Korostaa näytön reunaa sitä lähestyttäessä Comment[fr]=Mettre en valeur le bord de l'écran à l'approche Comment[gl]=Realza unha beira da pantalla cando se aproxima 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/kwinoptions/kwinactions.desktop b/kcmkwin/kwinoptions/kwinactions.desktop index a75df6076a..c861a2308f 100644 --- a/kcmkwin/kwinoptions/kwinactions.desktop +++ b/kcmkwin/kwinoptions/kwinactions.desktop @@ -107,6 +107,7 @@ Comment[cs]=Nastavení činností myši na oknech Comment[da]=Indstilling af musehandlinger på vinduer Comment[de]=Maus-Aktionen für Fenster einrichten Comment[es]=Configurar las acciones del ratón sobre las ventanas +Comment[eu]=Konfiguratu sagu-ekintzak leihoetan Comment[fi]=Ikkunoiden hiiritoimintojen asetukset Comment[fr]=Configurer les actions de souris pour les fenêtres Comment[gl]=Configura a accións do rato nas xanelas 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/kwin.notifyrc b/kwin.notifyrc index ed56672f68..a087849251 100644 --- a/kwin.notifyrc +++ b/kwin.notifyrc @@ -202,6 +202,7 @@ Name[ca]=Reinici dels gràfics Name[cs]=Resetovat grafiku Name[da]=Grafiknulstilling Name[es]=Reinicio gráfico +Name[eu]=Grafikoak berrezarri Name[fi]=Grafiikan nollaus Name[fr]=Réinitialisation graphique Name[gl]=Reinicio dos gráficos @@ -234,6 +235,7 @@ Comment[bs]=Grafički reset događaj se desio Comment[ca]=Ha ocorregut un esdeveniment de reinici dels gràfics Comment[da]=En grafiknulstillingshændelse fandt sted Comment[es]=Ha ocurrido un evento de reinicio gráfico +Comment[eu]=Grafikoak berrezartzeko gertaera bat jazo da Comment[fi]=Sattui grafiikan nollaustapahtuma Comment[fr]=Un évènement de réinitialisation graphique est intervenu Comment[gl]=Aconteceu un reinicio de gráficos diff --git a/scripting/kwinscript.desktop b/scripting/kwinscript.desktop index 795fc3bcfe..f6f91bcb95 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 1f612305e7..b24e0489ef 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 42c237312a..88e4762ace 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 60fa982a4a..f2069de106 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 @@ -54,6 +55,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 04ffe45a83..1419462d8d 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 3b2f744b49f98b16cd5f9f26352c0d79f6421e2a Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Tue, 13 Aug 2013 07:25:19 +0000 Subject: [PATCH 03/39] 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 04/39] 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; } From 4ba6764a574e46e9bbec86557ef4b2c74ceaf526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Tue, 20 Aug 2013 21:54:05 +0200 Subject: [PATCH 05/39] make plastik use PlainText captions BUG: 323798 FIXED-IN: 4.11 REVIEW: 112180 --- clients/aurorae/themes/plastik/package/contents/ui/main.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/clients/aurorae/themes/plastik/package/contents/ui/main.qml b/clients/aurorae/themes/plastik/package/contents/ui/main.qml index 8832d1d03e..77676bf54b 100644 --- a/clients/aurorae/themes/plastik/package/contents/ui/main.qml +++ b/clients/aurorae/themes/plastik/package/contents/ui/main.qml @@ -271,6 +271,7 @@ Decoration { } Text { id: caption + textFormat: Text.PlainText anchors { top: parent.top left: leftButtonGroup.right From 1d778f46005454bbac4add01d6e0987c50c0d605 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sun, 25 Aug 2013 16:17:20 +0200 Subject: [PATCH 06/39] c++ cannot invoke other constructors BUG: 324004 FIXED-IN: 4.11.1 BUG: 112274 --- libkwineffects/kwinxrenderutils.cpp | 7 ++++++- libkwineffects/kwinxrenderutils.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/libkwineffects/kwinxrenderutils.cpp b/libkwineffects/kwinxrenderutils.cpp index cfd3bc5859..270474f581 100644 --- a/libkwineffects/kwinxrenderutils.cpp +++ b/libkwineffects/kwinxrenderutils.cpp @@ -110,13 +110,18 @@ static xcb_render_picture_t createPicture(xcb_pixmap_t pix, int depth) XRenderPicture::XRenderPicture(const QPixmap &pix) { if (Extensions::nonNativePixmaps()) { - XRenderPicture(pix.toImage()); + fromImage(pix.toImage()); } else { d = new XRenderPictureData(createPicture(pix.handle(), pix.depth())); } } XRenderPicture::XRenderPicture(const QImage &img) +{ + fromImage(img); +} + +void XRenderPicture::fromImage(const QImage &img) { const int depth = img.depth(); xcb_pixmap_t xpix = xcb_generate_id(connection()); diff --git a/libkwineffects/kwinxrenderutils.h b/libkwineffects/kwinxrenderutils.h index a02028d766..697c82d691 100644 --- a/libkwineffects/kwinxrenderutils.h +++ b/libkwineffects/kwinxrenderutils.h @@ -74,6 +74,7 @@ public: XRenderPicture(xcb_pixmap_t pix, int depth); operator xcb_render_picture_t(); private: + void fromImage(const QImage &img); KSharedPtr< XRenderPictureData > d; }; From e4d386b76ea6bbb2bfb1e0b97474d16f1cc36eaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sun, 18 Aug 2013 13:04:05 +0200 Subject: [PATCH 07/39] print active screen strategy, blocking for retrace REVIEW: 112162 --- workspace.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/workspace.cpp b/workspace.cpp index 3ec6979500..8235aaa48a 100644 --- a/workspace.cpp +++ b/workspace.cpp @@ -1460,6 +1460,11 @@ QString Workspace::supportInformation() const } else { support.append("no\n"); } + support.append("Active screen follows mouse: "); + if (screens()->isCurrentFollowsMouse()) + support.append(" yes\n"); + else + support.append(" no\n"); support.append(QString("Number of Screens: %1\n").arg(screens()->count())); for (int i=0; icount(); ++i) { const QRect geo = screens()->geometry(i); @@ -1563,6 +1568,11 @@ QString Workspace::supportInformation() const } else { support.append("OpenGL 2 Shaders are not used. Legacy OpenGL 1.x code path is used.\n"); } + support.append("Painting blocks for vertical retrace: "); + if (m_compositor->scene()->blocksForRetrace()) + support.append(" yes\n"); + else + support.append(" no\n"); break; } case XRenderCompositing: From 809d261067407aa3e75212f98b9f056a95ca7d3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sat, 24 Aug 2013 12:19:28 +0200 Subject: [PATCH 08/39] align GUI object name to kcfg name BUG: 315866 FIXED-IN: 4.11.1 REVIEW: 112237 --- effects/diminactive/diminactive_config.ui | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/effects/diminactive/diminactive_config.ui b/effects/diminactive/diminactive_config.ui index ab6099a348..99009f94cd 100644 --- a/effects/diminactive/diminactive_config.ui +++ b/effects/diminactive/diminactive_config.ui @@ -33,7 +33,7 @@ - + Apply effect to &groups @@ -111,7 +111,7 @@ kcfg_Strength kcfg_DimPanels kcfg_DimDesktop - kcfg_DimGroup + kcfg_DimByGroup From 9001af8e5a127dac02ebc7a568f27c213a2b3652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sat, 17 Aug 2013 16:46:46 +0200 Subject: [PATCH 09/39] reset custom cube shaders on screen change the reset/setup invokes the viewport dimensions... BUG: 323311 FIXED-IN: 4.11.1 REVIEW: 112133 --- effects/cube/cube.cpp | 9 +++++++++ effects/cube/cube.h | 1 + libkwineffects/kwinglutils.cpp | 10 ++++++++++ libkwineffects/kwinglutils.h | 6 ++++++ 4 files changed, 26 insertions(+) diff --git a/effects/cube/cube.cpp b/effects/cube/cube.cpp index df01d7c5bb..858356d63f 100644 --- a/effects/cube/cube.cpp +++ b/effects/cube/cube.cpp @@ -122,6 +122,7 @@ CubeEffect::CubeEffect() connect(effects, SIGNAL(tabBoxAdded(int)), this, SLOT(slotTabBoxAdded(int))); connect(effects, SIGNAL(tabBoxClosed()), this, SLOT(slotTabBoxClosed())); connect(effects, SIGNAL(tabBoxUpdated()), this, SLOT(slotTabBoxUpdated())); + connect(effects, SIGNAL(screenGeometryChanged(const QSize&)), this, SLOT(slotResetShaders())); reconfigure(ReconfigureAll); } @@ -290,6 +291,14 @@ void CubeEffect::slotWallPaperLoaded() watcher->deleteLater(); } +void CubeEffect::slotResetShaders() +{ + ShaderManager::instance()->resetShader(m_capShader, ShaderManager::GenericShader); + ShaderManager::instance()->resetShader(m_reflectionShader, ShaderManager::GenericShader); + ShaderManager::instance()->resetShader(cylinderShader, ShaderManager::GenericShader); + ShaderManager::instance()->resetShader(sphereShader, ShaderManager::GenericShader); +} + bool CubeEffect::loadShader() { if (!(GLPlatform::instance()->supports(GLSL) && diff --git a/effects/cube/cube.h b/effects/cube/cube.h index 4fb15adfd2..d222ee4c02 100644 --- a/effects/cube/cube.h +++ b/effects/cube/cube.h @@ -139,6 +139,7 @@ private slots: void slotTabBoxClosed(); void slotCubeCapLoaded(); void slotWallPaperLoaded(); + void slotResetShaders(); private: enum RotationDirection { Left, diff --git a/libkwineffects/kwinglutils.cpp b/libkwineffects/kwinglutils.cpp index 777755af79..a6cd8c33d9 100644 --- a/libkwineffects/kwinglutils.cpp +++ b/libkwineffects/kwinglutils.cpp @@ -787,6 +787,16 @@ void ShaderManager::resetAllShaders() } } +void ShaderManager::resetShader(GLShader *shader, ShaderType type) +{ + if (!(shader && shader->isValid())) + return; + + pushShader(shader); + resetShader(type); + popShader(); +} + void ShaderManager::pushShader(GLShader *shader) { diff --git a/libkwineffects/kwinglutils.h b/libkwineffects/kwinglutils.h index 20a66013b4..e5c6f7660f 100644 --- a/libkwineffects/kwinglutils.h +++ b/libkwineffects/kwinglutils.h @@ -352,6 +352,12 @@ public: **/ void resetAllShaders(); + /** + * Resets ShaderType @p type uniforms of a custom shader + * @since 4.11.1 + */ + void resetShader(GLShader *shader, ShaderType type); + /** * Creates a GLShader with a built-in vertex shader and a custom fragment shader. * @param vertex The generic vertex shader From 2568fcb149227cb6f90ac284bc2540bc2635e51e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Fri, 16 Aug 2013 21:21:21 +0200 Subject: [PATCH 10/39] guide partially max'd windows against corner snaps BUG: 323598 FIXED-IN: 4.11.1 REVIEW: 112124 --- geometry.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index 9adcb98776..480f97da82 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -383,13 +383,16 @@ QPoint Workspace::adjustClientPosition(Client* c, QPoint pos, bool unrestricted, { QSize borderSnapZone(options->borderSnapZone(), options->borderSnapZone()); QRect maxRect; + int guideMaximized = MaximizeRestore; if (c->maximizeMode() != MaximizeRestore) { maxRect = clientArea(MovementArea, pos + c->rect().center(), c->desktop()); QRect geo = c->geometry(); if (c->maximizeMode() & MaximizeHorizontal && (geo.x() == maxRect.left() || geo.right() == maxRect.right())) { + guideMaximized |= MaximizeHorizontal; borderSnapZone.setWidth(qMax(borderSnapZone.width() + 2, maxRect.width() / 16)); } if (c->maximizeMode() & MaximizeVertical && (geo.y() == maxRect.top() || geo.bottom() == maxRect.bottom())) { + guideMaximized |= MaximizeVertical; borderSnapZone.setHeight(qMax(borderSnapZone.height() + 2, maxRect.height() / 16)); } } @@ -478,7 +481,8 @@ QPoint Workspace::adjustClientPosition(Client* c, QPoint pos, bool unrestricted, lrx = lx + (*l)->width(); lry = ly + (*l)->height(); - if (((cy <= lry) && (cy >= ly)) || ((ry >= ly) && (ry <= lry)) || ((cy <= ly) && (ry >= lry))) { + if (!(guideMaximized & MaximizeHorizontal) && + (((cy <= lry) && (cy >= ly)) || ((ry >= ly) && (ry <= lry)) || ((cy <= ly) && (ry >= lry)))) { if ((sOWO ? (cx < lrx) : true) && (qAbs(lrx - cx) < snap) && (qAbs(lrx - cx) < deltaX)) { deltaX = qAbs(lrx - cx); nx = lrx; @@ -489,7 +493,8 @@ QPoint Workspace::adjustClientPosition(Client* c, QPoint pos, bool unrestricted, } } - if (((cx <= lrx) && (cx >= lx)) || ((rx >= lx) && (rx <= lrx)) || ((cx <= lx) && (rx >= lrx))) { + if (!(guideMaximized & MaximizeVertical) && + (((cx <= lrx) && (cx >= lx)) || ((rx >= lx) && (rx <= lrx)) || ((cx <= lx) && (rx >= lrx)))) { if ((sOWO ? (cy < lry) : true) && (qAbs(lry - cy) < snap) && (qAbs(lry - cy) < deltaY)) { deltaY = qAbs(lry - cy); ny = lry; @@ -502,7 +507,7 @@ QPoint Workspace::adjustClientPosition(Client* c, QPoint pos, bool unrestricted, } // Corner snapping - if (nx == lrx || nx + cw == lx) { + if (!(guideMaximized & MaximizeVertical) && (nx == lrx || nx + cw == lx)) { if ((sOWO ? (ry > lry) : true) && (qAbs(lry - ry) < snap) && (qAbs(lry - ry) < deltaY)) { deltaY = qAbs(lry - ry); ny = lry - ch; @@ -512,7 +517,7 @@ QPoint Workspace::adjustClientPosition(Client* c, QPoint pos, bool unrestricted, ny = ly; } } - if (ny == lry || ny + ch == ly) { + if (!(guideMaximized & MaximizeHorizontal) && (ny == lry || ny + ch == ly)) { if ((sOWO ? (rx > lrx) : true) && (qAbs(lrx - rx) < snap) && (qAbs(lrx - rx) < deltaX)) { deltaX = qAbs(lrx - rx); nx = lrx - cw; From 7d6d80351cc5c059b7dcda738ae4f0e588acfadb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Thu, 15 Aug 2013 11:53:02 +0200 Subject: [PATCH 11/39] align zero corner placement to client, not deco BUG: 318107 FIXED-IN: 4.11.1 REVIEW: 112102 --- manage.cpp | 3 ++- placement.cpp | 30 ++++++++++++++++++++++++++---- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/manage.cpp b/manage.cpp index e4faec0914..c4206d2d9b 100644 --- a/manage.cpp +++ b/manage.cpp @@ -377,6 +377,7 @@ bool Client::manage(xcb_window_t w, bool isMapped) if (!placementDone) { // Placement needs to be after setting size Placement::self()->place(this, area); + dontKeepInArea = true; placementDone = true; } @@ -419,7 +420,7 @@ bool Client::manage(xcb_window_t w, bool isMapped) if (pseudo_max != Client::MaximizeRestore) { maximize((MaximizeMode)pseudo_max); // from now on, care about maxmode, since the maximization call will override mode for fix aspects - dontKeepInArea = (max_mode == Client::MaximizeFull); + dontKeepInArea |= (max_mode == Client::MaximizeFull); geom_restore = QRect(); // Use placement when unmaximizing ... if (!(max_mode & Client::MaximizeVertical)) { geom_restore.setY(y()); // ...but only for horizontal direction diff --git a/placement.cpp b/placement.cpp index 55fcb34e87..493ae158c7 100644 --- a/placement.cpp +++ b/placement.cpp @@ -28,6 +28,7 @@ along with this program. If not, see . #include #ifndef KCMRULES +#include #include "workspace.h" #include "client.h" #include "options.h" @@ -96,6 +97,30 @@ void Placement::place(Client* c, QRect& area, Policy policy, Policy nextPlacemen placeMaximizing(c, area, nextPlacement); else placeSmart(c, area, nextPlacement); + + if (options->borderSnapZone()) { + // snap to titlebar / snap to window borders on inner screen edges + const QRect geo(c->geometry()); + QPoint corner = geo.topLeft(); + const QPoint cp = c->clientPos(); + const QSize cs = geo.size() - c->clientSize(); + KDecorationDefines::Position titlePos = c->titlebarPosition(); + + const QRect fullRect = workspace()->clientArea(FullArea, c); + if (!(c->maximizeMode() & KDecorationDefines::MaximizeHorizontal)) { + if (titlePos != KDecorationDefines::PositionRight && geo.right() == fullRect.right()) + corner.rx() += cs.width() - cp.x(); + if (titlePos != KDecorationDefines::PositionLeft && geo.x() == fullRect.x()) + corner.rx() -= cp.x(); + } + if (!(c->maximizeMode() & KDecorationDefines::MaximizeVertical)) { + if (titlePos != KDecorationDefines::PositionBottom && geo.bottom() == fullRect.bottom()) + corner.ry() += cs.height() - cp.y(); + if (titlePos != KDecorationDefines::PositionTop && geo.y() == fullRect.y()) + corner.ry() -= cp.y(); + } + c->move(corner); + } } /*! @@ -442,10 +467,7 @@ void Placement::placeCentered(Client* c, const QRect& area, Policy /*next*/) void Placement::placeZeroCornered(Client* c, const QRect& area, Policy /*next*/) { // get the maximum allowed windows space and desk's origin - const QRect maxRect = checkArea(c, area); - - // place the window - c->move(QPoint(maxRect.left(), maxRect.top())); + c->move(checkArea(c, area).topLeft()); } void Placement::placeUtility(Client* c, QRect& area, Policy /*next*/) From 29e230dca3604f0202f480a4dd0c8fcbf7515865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Fri, 16 Aug 2013 19:38:26 +0200 Subject: [PATCH 12/39] enforce reactivation threshold to be 50ms bigger than actication threshold. Things don't work otherwise. BUG: 323588 FIXED-IN: 4.11.1 REVIEW: 112125 --- kcmkwin/kwinscreenedges/main.cpp | 8 ++++++++ kcmkwin/kwinscreenedges/main.h | 3 ++- screenedge.cpp | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/kcmkwin/kwinscreenedges/main.cpp b/kcmkwin/kwinscreenedges/main.cpp index 9de436a813..72d2b53dbd 100644 --- a/kcmkwin/kwinscreenedges/main.cpp +++ b/kcmkwin/kwinscreenedges/main.cpp @@ -54,6 +54,7 @@ KWinScreenEdgesConfig::KWinScreenEdgesConfig(QWidget* parent, const QVariantList connect(m_ui->monitor, SIGNAL(changed()), this, SLOT(changed())); connect(m_ui->desktopSwitchCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(changed())); + connect(m_ui->activationDelaySpin, SIGNAL(valueChanged(int)), this, SLOT(sanitizeCooldown())); connect(m_ui->activationDelaySpin, SIGNAL(valueChanged(int)), this, SLOT(changed())); connect(m_ui->triggerCooldownSpin, SIGNAL(valueChanged(int)), this, SLOT(changed())); connect(m_ui->quickMaximizeBox, SIGNAL(stateChanged(int)), this, SLOT(changed())); @@ -66,6 +67,8 @@ KWinScreenEdgesConfig::KWinScreenEdgesConfig(QWidget* parent, const QVariantList connect(m_ui->quickTileBox, SIGNAL(stateChanged(int)), this, SLOT(groupChanged())); load(); + + sanitizeCooldown(); } KWinScreenEdgesConfig::~KWinScreenEdgesConfig() @@ -147,6 +150,11 @@ void KWinScreenEdgesConfig::showEvent(QShowEvent* e) monitorShowEvent(); } +void KWinScreenEdgesConfig::sanitizeCooldown() +{ + m_ui->triggerCooldownSpin->setMinimum(m_ui->activationDelaySpin->value() + 50); +} + // Copied from kcmkwin/kwincompositing/main.cpp bool KWinScreenEdgesConfig::effectEnabled(const QString& effect, const KConfigGroup& cfg) const { diff --git a/kcmkwin/kwinscreenedges/main.h b/kcmkwin/kwinscreenedges/main.h index ec802d6be2..d42271022f 100644 --- a/kcmkwin/kwinscreenedges/main.h +++ b/kcmkwin/kwinscreenedges/main.h @@ -56,7 +56,8 @@ public slots: virtual void defaults(); protected: virtual void showEvent(QShowEvent* e); - +private slots: + void sanitizeCooldown(); private: KWinScreenEdgesConfigForm* m_ui; KSharedConfigPtr m_config; diff --git a/screenedge.cpp b/screenedge.cpp index 3d04f13d1a..a7169d7422 100644 --- a/screenedge.cpp +++ b/screenedge.cpp @@ -591,7 +591,7 @@ void ScreenEdges::reconfigure() // TODO: migrate settings to a group ScreenEdges KConfigGroup windowsConfig = m_config->group("Windows"); setTimeThreshold(windowsConfig.readEntry("ElectricBorderDelay", 150)); - setReActivationThreshold(windowsConfig.readEntry("ElectricBorderCooldown", 350)); + setReActivationThreshold(qMax(timeThreshold() + 50, windowsConfig.readEntry("ElectricBorderCooldown", 350))); int desktopSwitching = windowsConfig.readEntry("ElectricBorders", static_cast(ElectricDisabled)); if (desktopSwitching == ElectricDisabled) { setDesktopSwitching(false); From 7d9a9cde690f59793f80aecdfb706a6a59f18fc0 Mon Sep 17 00:00:00 2001 From: Hugo Pereira Da Costa Date: Mon, 26 Aug 2013 21:39:21 +0200 Subject: [PATCH 13/39] fixed uppercase typo in kcfg file --- clients/oxygen/oxygenconfigdata.kcfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clients/oxygen/oxygenconfigdata.kcfg b/clients/oxygen/oxygenconfigdata.kcfg index 14be20824d..dc23224009 100644 --- a/clients/oxygen/oxygenconfigdata.kcfg +++ b/clients/oxygen/oxygenconfigdata.kcfg @@ -59,7 +59,7 @@ BlendFromStyle - + true From 8255bda84d559d7c0e47a1f561f089a5cf86c125 Mon Sep 17 00:00:00 2001 From: Hugo Pereira Da Costa Date: Mon, 26 Aug 2013 21:47:26 +0200 Subject: [PATCH 14/39] Added "Display window borders for maximized windows" option. CCBUG: 324011 --- clients/oxygen/config/oxygenconfigwidget.cpp | 5 ++- .../oxygen/config/ui/oxygenconfigurationui.ui | 39 +++++++++++-------- clients/oxygen/oxygenclient.h | 2 +- clients/oxygen/oxygenconfigdata.kcfg | 5 +++ 4 files changed, 33 insertions(+), 18 deletions(-) diff --git a/clients/oxygen/config/oxygenconfigwidget.cpp b/clients/oxygen/config/oxygenconfigwidget.cpp index e36212d55e..261bf510a0 100644 --- a/clients/oxygen/config/oxygenconfigwidget.cpp +++ b/clients/oxygen/config/oxygenconfigwidget.cpp @@ -77,6 +77,7 @@ namespace Oxygen connect( ui.narrowButtonSpacing, SIGNAL(clicked()), SLOT(updateChanged()) ); connect( ui.closeFromMenuButton, SIGNAL(clicked()), SLOT(updateChanged()) ); connect( ui.separatorMode, SIGNAL(currentIndexChanged(int)), SLOT(updateChanged()) ); + connect( ui.drawBorderOnMaximizedWindows, SIGNAL(clicked()), SLOT(updateChanged()) ); // track exception changes connect( ui.exceptions, SIGNAL(changed(bool)), SLOT(updateChanged()) ); @@ -112,6 +113,7 @@ namespace Oxygen ui.animationsEnabled->setChecked( _configuration->animationsEnabled() ); ui.narrowButtonSpacing->setChecked( _configuration->useNarrowButtonSpacing() ); ui.closeFromMenuButton->setChecked( _configuration->closeWindowFromMenuButton() ); + ui.drawBorderOnMaximizedWindows->setChecked( _configuration->drawBorderOnMaximizedWindows() ); setChanged( false ); _animationConfigWidget->load(); @@ -134,7 +136,7 @@ namespace Oxygen _configuration->setDrawTitleOutline( ui.titleOutline->isChecked() ); _configuration->setUseNarrowButtonSpacing( ui.narrowButtonSpacing->isChecked() ); _configuration->setCloseWindowFromMenuButton( ui.closeFromMenuButton->isChecked() ); - + _configuration->setDrawBorderOnMaximizedWindows( ui.drawBorderOnMaximizedWindows->isChecked() ); setChanged( false ); if( _expertMode ) _animationConfigWidget->save(); @@ -235,6 +237,7 @@ namespace Oxygen else if( ui.titleOutline->isChecked() != _configuration->drawTitleOutline() ) modified = true; else if( ui.narrowButtonSpacing->isChecked() != _configuration->useNarrowButtonSpacing() ) modified = true; else if( ui.closeFromMenuButton->isChecked() != _configuration->closeWindowFromMenuButton() ) modified = true; + else if( ui.drawBorderOnMaximizedWindows->isChecked() != _configuration->drawBorderOnMaximizedWindows() ) modified = true; // exceptions else if( ui.exceptions->isChanged() ) modified = true; diff --git a/clients/oxygen/config/ui/oxygenconfigurationui.ui b/clients/oxygen/config/ui/oxygenconfigurationui.ui index 41c94a119a..d836351d91 100644 --- a/clients/oxygen/config/ui/oxygenconfigurationui.ui +++ b/clients/oxygen/config/ui/oxygenconfigurationui.ui @@ -217,6 +217,13 @@ 4 + + + + Close windows by double clicking the menu button + + + @@ -301,6 +308,19 @@ + + + + Qt::Vertical + + + + 20 + 40 + + + + @@ -315,26 +335,13 @@ - - + + - Close windows by double clicking the menu button + Display window borders for maximized windows - - - - Qt::Vertical - - - - 20 - 40 - - - - diff --git a/clients/oxygen/oxygenclient.h b/clients/oxygen/oxygenclient.h index 208e8724a4..af57dc5367 100644 --- a/clients/oxygen/oxygenclient.h +++ b/clients/oxygen/oxygenclient.h @@ -77,7 +77,7 @@ namespace Oxygen //! true if window is maximized virtual bool isMaximized( void ) const - { return maximizeMode()==MaximizeFull && !options()->moveResizeMaximizedWindows(); } + { return maximizeMode()==MaximizeFull && !configuration()->drawBorderOnMaximizedWindows(); } //! true if animations are used bool animationsEnabled( void ) const diff --git a/clients/oxygen/oxygenconfigdata.kcfg b/clients/oxygen/oxygenconfigdata.kcfg index dc23224009..4542ab7350 100644 --- a/clients/oxygen/oxygenconfigdata.kcfg +++ b/clients/oxygen/oxygenconfigdata.kcfg @@ -83,6 +83,11 @@ true + + + false + + true From 9c22d1109e46ae665e3c2cc7d6f6a9c9a8bc6428 Mon Sep 17 00:00:00 2001 From: Hugo Pereira Da Costa Date: Sun, 1 Sep 2013 20:30:51 +0200 Subject: [PATCH 15/39] fixed checkbox alignment --- clients/oxygen/config/ui/oxygenconfigurationui.ui | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clients/oxygen/config/ui/oxygenconfigurationui.ui b/clients/oxygen/config/ui/oxygenconfigurationui.ui index d836351d91..bef0193fee 100644 --- a/clients/oxygen/config/ui/oxygenconfigurationui.ui +++ b/clients/oxygen/config/ui/oxygenconfigurationui.ui @@ -23,7 +23,7 @@ - 0 + 1 false @@ -335,7 +335,7 @@ - + Display window borders for maximized windows From f62162eb4158325893d1e2a8a8c478600c904128 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Mon, 2 Sep 2013 08:00:32 -0700 Subject: [PATCH 16/39] Correctly detect mouseChanged between polls. REVIEW: 112392 BUG: 323979 FIXED-IN: 4.11.2 --- cursor.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cursor.cpp b/cursor.cpp index 5e35a209e7..a1287a5fc8 100644 --- a/cursor.cpp +++ b/cursor.cpp @@ -227,13 +227,15 @@ void X11Cursor::doStopCursorTracking() void X11Cursor::mousePolled() { - const QPoint last = currentPos(); - const uint16_t lastMask = m_buttonMask; + static QPoint lastPos = currentPos(); + static uint16_t lastMask = m_buttonMask; doGetPos(); // Update if needed - if (last != currentPos() || lastMask != m_buttonMask) { - emit mouseChanged(currentPos(), last, + if (lastPos != currentPos() || lastMask != m_buttonMask) { + emit mouseChanged(currentPos(), lastPos, x11ToQtMouseButtons(m_buttonMask), x11ToQtMouseButtons(lastMask), x11ToQtKeyboardModifiers(m_buttonMask), x11ToQtKeyboardModifiers(lastMask)); + lastPos = currentPos(); + lastMask = m_buttonMask; } } From b01f9ca07783ad67653359159ddb733a18303ef5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Wed, 4 Sep 2013 14:42:45 +0200 Subject: [PATCH 17/39] Only create ColorCorrection if it is enabled in the options According to massif just creating the ColorCorrection costs 2 MiB, so it makes sense to not create it if it is not used. REVIEW: 111604 DIGEST: Smaller memory footprint in KWin 4.11.2 if color correction is disabled --- scene_opengl.cpp | 44 ++++++++++++++++++++++++++++++++------------ scene_opengl.h | 4 ++-- 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/scene_opengl.cpp b/scene_opengl.cpp index e82c50767d..a1bf789fd7 100644 --- a/scene_opengl.cpp +++ b/scene_opengl.cpp @@ -637,17 +637,14 @@ bool SceneOpenGL2::supported(OpenGLBackend *backend) SceneOpenGL2::SceneOpenGL2(OpenGLBackend *backend) : SceneOpenGL(Workspace::self(), backend) , m_lanczosFilter(NULL) - , m_colorCorrection(new ColorCorrection(this)) + , m_colorCorrection() { if (!init_ok) { // base ctor already failed return; } // Initialize color correction before the shaders - kDebug(1212) << "Color correction:" << options->isColorCorrected(); - m_colorCorrection->setEnabled(options->isColorCorrected()); - connect(m_colorCorrection, SIGNAL(changed()), Compositor::self(), SLOT(addRepaintFull())); - connect(m_colorCorrection, SIGNAL(errorOccured()), options, SLOT(setColorCorrected()), Qt::QueuedConnection); + slotColorCorrectedChanged(false); connect(options, SIGNAL(colorCorrectedChanged()), this, SLOT(slotColorCorrectedChanged()), Qt::QueuedConnection); if (!ShaderManager::instance()->isValid()) { @@ -721,7 +718,7 @@ SceneOpenGL::Window *SceneOpenGL2::createWindow(Toplevel *t) void SceneOpenGL2::finalDrawWindow(EffectWindowImpl* w, int mask, QRegion region, WindowPaintData& data) { - if (m_colorCorrection->isEnabled()) { + if (!m_colorCorrection.isNull() && m_colorCorrection->isEnabled()) { // Split the painting for separate screens const int numScreens = screens()->count(); for (int screen = 0; screen < numScreens; ++ screen) { @@ -759,12 +756,29 @@ void SceneOpenGL2::resetLanczosFilter() ColorCorrection *SceneOpenGL2::colorCorrection() { - return m_colorCorrection; + return m_colorCorrection.data(); } -void SceneOpenGL2::slotColorCorrectedChanged() +void SceneOpenGL2::slotColorCorrectedChanged(bool recreateShaders) { - m_colorCorrection->setEnabled(options->isColorCorrected()); + kDebug(1212) << "Color correction:" << options->isColorCorrected(); + if (options->isColorCorrected() && m_colorCorrection.isNull()) { + m_colorCorrection.reset(new ColorCorrection(this)); + if (!m_colorCorrection->setEnabled(true)) { + m_colorCorrection.reset(); + return; + } + connect(m_colorCorrection.data(), SIGNAL(changed()), Compositor::self(), SLOT(addRepaintFull())); + connect(m_colorCorrection.data(), SIGNAL(errorOccured()), options, SLOT(setColorCorrected()), Qt::QueuedConnection); + if (recreateShaders) { + // Reload all shaders + ShaderManager::cleanup(); + ShaderManager::instance(); + } + } else { + m_colorCorrection.reset(); + } + Compositor::self()->addRepaintFull(); } @@ -1403,7 +1417,9 @@ void SceneOpenGL2Window::performPaint(int mask, QRegion region, WindowPaintData } } - static_cast(m_scene)->colorCorrection()->setupForOutput(data.screen()); + if (ColorCorrection *cc = static_cast(m_scene)->colorCorrection()) { + cc->setupForOutput(data.screen()); + } shader->setUniform(GLShader::WindowTransformation, transformation(mask, data)); shader->setUniform(GLShader::Saturation, data.saturation()); @@ -1566,7 +1582,9 @@ void SceneOpenGL2Window::prepareStates(TextureType type, qreal opacity, qreal br shader->setUniform(GLShader::ModulationConstant, QVector4D(rgb, rgb, rgb, a)); shader->setUniform(GLShader::Saturation, saturation); - static_cast(m_scene)->colorCorrection()->setupForOutput(screen); + if (ColorCorrection *cc = static_cast(m_scene)->colorCorrection()) { + cc->setupForOutput(screen); + } } void SceneOpenGL2Window::restoreStates(TextureType type, qreal opacity, qreal brightness, qreal saturation) @@ -1579,7 +1597,9 @@ void SceneOpenGL2Window::restoreStates(TextureType type, qreal opacity, qreal br glDisable(GL_BLEND); } - static_cast(m_scene)->colorCorrection()->setupForOutput(-1); + if (ColorCorrection *cc = static_cast(m_scene)->colorCorrection()) { + cc->setupForOutput(-1); + } } //*************************************** diff --git a/scene_opengl.h b/scene_opengl.h index 33a59b93fc..699c8f2115 100644 --- a/scene_opengl.h +++ b/scene_opengl.h @@ -127,7 +127,7 @@ protected: virtual void paintDesktop(int desktop, int mask, const QRegion ®ion, ScreenPaintData &data); private Q_SLOTS: - void slotColorCorrectedChanged(); + void slotColorCorrectedChanged(bool recreateShaders = true); void resetLanczosFilter(); private: @@ -135,7 +135,7 @@ private: private: LanczosFilter *m_lanczosFilter; - ColorCorrection *m_colorCorrection; + QScopedPointer m_colorCorrection; GLuint vao; }; From eed66fe776540d4106a8cdc7f376ce028fb0d5e9 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Thu, 5 Sep 2013 04:00:49 +0000 Subject: [PATCH 18/39] SVN_SILENT made messages (.desktop file) --- kwin.notifyrc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kwin.notifyrc b/kwin.notifyrc index a087849251..72dec7fdc2 100644 --- a/kwin.notifyrc +++ b/kwin.notifyrc @@ -201,6 +201,7 @@ Name[bs]=Reset grafike Name[ca]=Reinici dels gràfics Name[cs]=Resetovat grafiku Name[da]=Grafiknulstilling +Name[de]=Grafik-Reset Name[es]=Reinicio gráfico Name[eu]=Grafikoak berrezarri Name[fi]=Grafiikan nollaus @@ -234,6 +235,7 @@ Comment=A graphics reset event occurred Comment[bs]=Grafički reset događaj se desio Comment[ca]=Ha ocorregut un esdeveniment de reinici dels gràfics Comment[da]=En grafiknulstillingshændelse fandt sted +Comment[de]=Ein Zurücksetzen der Grafik ist aufgetreten Comment[es]=Ha ocurrido un evento de reinicio gráfico Comment[eu]=Grafikoak berrezartzeko gertaera bat jazo da Comment[fi]=Sattui grafiikan nollaustapahtuma From 8a8ccc2afacff84108cbf6cf2302bca6f6b882a9 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Thu, 5 Sep 2013 06:42:08 +0000 Subject: [PATCH 19/39] SVN_SILENT made messages (.desktop file) --- kwin.notifyrc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kwin.notifyrc b/kwin.notifyrc index ed56672f68..1259669e6b 100644 --- a/kwin.notifyrc +++ b/kwin.notifyrc @@ -201,6 +201,7 @@ Name[bs]=Reset grafike Name[ca]=Reinici dels gràfics Name[cs]=Resetovat grafiku Name[da]=Grafiknulstilling +Name[de]=Grafik-Reset Name[es]=Reinicio gráfico Name[fi]=Grafiikan nollaus Name[fr]=Réinitialisation graphique @@ -233,6 +234,7 @@ Comment=A graphics reset event occurred Comment[bs]=Grafički reset događaj se desio Comment[ca]=Ha ocorregut un esdeveniment de reinici dels gràfics Comment[da]=En grafiknulstillingshændelse fandt sted +Comment[de]=Ein Zurücksetzen der Grafik ist aufgetreten Comment[es]=Ha ocurrido un evento de reinicio gráfico Comment[fi]=Sattui grafiikan nollaustapahtuma Comment[fr]=Un évènement de réinitialisation graphique est intervenu From ef351070e7dd3e22226e18a8bdfdf72334a6b645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Tue, 27 Aug 2013 23:46:55 +0200 Subject: [PATCH 20/39] snap max'd windows to maximize, not movement area Because that's where it's placed. Notable esp. when there're panels on opposing sides. Since snapping keeps max'd windows in position, it should preferably keep it in the proper position ;-) REVIEW: 112322 --- geometry.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geometry.cpp b/geometry.cpp index 480f97da82..32ff389ced 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -385,7 +385,7 @@ QPoint Workspace::adjustClientPosition(Client* c, QPoint pos, bool unrestricted, QRect maxRect; int guideMaximized = MaximizeRestore; if (c->maximizeMode() != MaximizeRestore) { - maxRect = clientArea(MovementArea, pos + c->rect().center(), c->desktop()); + maxRect = clientArea(MaximizeArea, pos + c->rect().center(), c->desktop()); QRect geo = c->geometry(); if (c->maximizeMode() & MaximizeHorizontal && (geo.x() == maxRect.left() || geo.right() == maxRect.right())) { guideMaximized |= MaximizeHorizontal; From 3859f67862374bdff8032f3af0d9d43defe0500b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sat, 31 Aug 2013 23:50:13 +0200 Subject: [PATCH 21/39] glsl is not supported on indirect contexts and fglrx yells an invalid_enum error when being asked for the version BUG: 323527 FIXED-IN: 4.11.2 REVIEW: 112419 --- libkwineffects/kwinglplatform.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libkwineffects/kwinglplatform.cpp b/libkwineffects/kwinglplatform.cpp index 3783a21273..d9eb97d228 100644 --- a/libkwineffects/kwinglplatform.cpp +++ b/libkwineffects/kwinglplatform.cpp @@ -581,7 +581,8 @@ void GLPlatform::detect(OpenGLPlatformInterface platformInterface) GLXContext ctx = glXGetCurrentContext(); m_directRendering = glXIsDirect(display(), ctx); - m_supportsGLSL = m_extensions.contains("GL_ARB_shader_objects") && + m_supportsGLSL = m_directRendering && + m_extensions.contains("GL_ARB_shader_objects") && m_extensions.contains("GL_ARB_fragment_shader") && m_extensions.contains("GL_ARB_vertex_shader"); From 140c4856b7e1d4a752d892e5a98bd3ce6497d50c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sun, 1 Sep 2013 12:51:31 +0200 Subject: [PATCH 22/39] ignore minimized windows in scalein effect BUG: 324326 FIXED-IN: 4.11.2 REVIEW: 112425 --- effects/scalein/package/contents/code/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/effects/scalein/package/contents/code/main.js b/effects/scalein/package/contents/code/main.js index 91f6cfea6c..6ac941c81d 100644 --- a/effects/scalein/package/contents/code/main.js +++ b/effects/scalein/package/contents/code/main.js @@ -26,7 +26,7 @@ var scaleInEffect = { }, isScaleWindow: function (window) { "use strict"; - if (window.popupMenu || window.specialWindow || window.utility || + if (window.popupMenu || window.specialWindow || window.utility || window.minimized || effect.isGrabbed(window, Effect.WindowAddedGrabRole)) { return false; } From f1346494f61c560ae95b96079057b3b3e7e5ba2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sun, 1 Sep 2013 22:29:27 +0200 Subject: [PATCH 23/39] connect iconChanged to decoration broke with 9eaee286c55717d26535d3dc9e543c0285740d9a BUG: 324355 FIXED-IN: 4.11.2 REVIEW: 112435 --- client.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/client.cpp b/client.cpp index 2c80a63c2f..5a76c25185 100644 --- a/client.cpp +++ b/client.cpp @@ -450,6 +450,7 @@ void Client::createDecoration(const QRect& oldgeom) connect(this, SIGNAL(shadeChanged()), decoration, SLOT(shadeChange())); connect(this, SIGNAL(desktopChanged()), decoration, SLOT(desktopChange())); connect(this, SIGNAL(captionChanged()), decoration, SLOT(captionChange())); + connect(this, SIGNAL(iconChanged()), decoration, SLOT(iconChange())); connect(this, SIGNAL(activeChanged()), decoration, SLOT(activeChange())); connect(this, SIGNAL(clientMaximizedStateChanged(KWin::Client*,KDecorationDefines::MaximizeMode)), decoration, SLOT(maximizeChange())); From 0dcdcf48ebc0cefbde7e6a6726c762e3634f06a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sun, 1 Sep 2013 22:30:11 +0200 Subject: [PATCH 24/39] copy and paste timebomb bug as old as kwin compositing .... BUG: 323688 FIXED-IN: 4.11.2 REVIEW: 112436 --- effects.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/effects.cpp b/effects.cpp index a4ad2010b5..087eef8f79 100644 --- a/effects.cpp +++ b/effects.cpp @@ -1030,7 +1030,7 @@ int EffectsHandlerImpl::displayWidth() const int EffectsHandlerImpl::displayHeight() const { - return KWin::displayWidth(); + return KWin::displayHeight(); } EffectWindow* EffectsHandlerImpl::findWindow(WId id) const From 2a5861faefd9908c6a374edbab46e0f4297f7096 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Tue, 3 Sep 2013 21:55:39 +0200 Subject: [PATCH 25/39] highlight effect: windowAdded false positive exits When a window is added while the effect is running it shall either be highlighted or hidden, but not exit the effect what happened, because the property notification is invoked to test whether the window has a highlight property (questionable since the effect is running, but valid - could be different X11 client) and that routine exits the effect if no property is found (assuming it was withdrawn) REVIEW: 112494 --- effects/highlightwindow/highlightwindow.cpp | 22 +++++++++++++-------- effects/highlightwindow/highlightwindow.h | 3 ++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/effects/highlightwindow/highlightwindow.cpp b/effects/highlightwindow/highlightwindow.cpp index 2452b072c4..2de3aafcae 100644 --- a/effects/highlightwindow/highlightwindow.cpp +++ b/effects/highlightwindow/highlightwindow.cpp @@ -109,12 +109,15 @@ void HighlightWindowEffect::slotWindowAdded(EffectWindow* w) { if (!m_highlightedWindows.isEmpty()) { // The effect is activated thus we need to add it to the opacity hash - if (w->isNormalWindow() || w->isDialog()) // Only fade out windows - m_windowOpacity[w] = isInitiallyHidden(w) ? 0.0 : 0.15; - else - m_windowOpacity[w] = 1.0; + foreach (const WId id, m_highlightedIds) { + if (w == effects->findWindow(id)) { + m_windowOpacity[w] = 1.0; // this window was demanded to be highlighted before it appeared + return; + } + } + m_windowOpacity[w] = 0.15; // this window is not currently highlighted } - slotPropertyNotify(w, m_atom); // Check initial value + slotPropertyNotify(w, m_atom, w); // Check initial value } void HighlightWindowEffect::slotWindowClosed(EffectWindow* w) @@ -128,7 +131,7 @@ void HighlightWindowEffect::slotWindowDeleted(EffectWindow* w) m_windowOpacity.remove(w); } -void HighlightWindowEffect::slotPropertyNotify(EffectWindow* w, long a) +void HighlightWindowEffect::slotPropertyNotify(EffectWindow* w, long a, EffectWindow *addedWindow) { if (a != m_atom) return; // Not our atom @@ -138,7 +141,8 @@ void HighlightWindowEffect::slotPropertyNotify(EffectWindow* w, long a) effects->readRootProperty(m_atom, m_atom, 32); if (byteData.length() < 1) { // Property was removed, clearing highlight - finishHighlighting(); + if (!addedWindow || w != addedWindow) + finishHighlighting(); return; } long* data = reinterpret_cast(byteData.data()); @@ -154,11 +158,13 @@ void HighlightWindowEffect::slotPropertyNotify(EffectWindow* w, long a) //foreach ( EffectWindow* e, m_highlightedWindows ) // effects->setElevatedWindow( e, false ); m_highlightedWindows.clear(); + m_highlightedIds.clear(); for (int i = 0; i < length; i++) { + m_highlightedIds << data[i]; EffectWindow* foundWin = effects->findWindow(data[i]); if (!foundWin) { kDebug(1212) << "Invalid window targetted for highlight. Requested:" << data[i]; - continue; + continue; // might come in later. } m_highlightedWindows.append(foundWin); // TODO: We cannot just simply elevate the window as this will elevate it over diff --git a/effects/highlightwindow/highlightwindow.h b/effects/highlightwindow/highlightwindow.h index 2adefb2d02..4cfd2081e4 100644 --- a/effects/highlightwindow/highlightwindow.h +++ b/effects/highlightwindow/highlightwindow.h @@ -42,7 +42,7 @@ public Q_SLOTS: void slotWindowAdded(KWin::EffectWindow* w); void slotWindowClosed(KWin::EffectWindow *w); void slotWindowDeleted(KWin::EffectWindow *w); - void slotPropertyNotify(KWin::EffectWindow* w, long atom); + void slotPropertyNotify(KWin::EffectWindow* w, long atom, EffectWindow *addedWindow = NULL); private: void prepareHighlighting(); @@ -56,6 +56,7 @@ private: long m_atom; QList m_highlightedWindows; EffectWindow* m_monitorWindow; + QList m_highlightedIds; // Offscreen position cache /*QRect m_thumbArea; // Thumbnail area From a61002224f1c124277500c53a9ad89009acc2cdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Mon, 26 Aug 2013 01:19:06 +0200 Subject: [PATCH 26/39] re-read dashboard kcfg on reconfigure BUG: 324034 FIXED-IN: 4.11.2 REVIEW: 112280 --- effects/dashboard/dashboard.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/effects/dashboard/dashboard.cpp b/effects/dashboard/dashboard.cpp index 9cfa1c91b7..b41d2426dc 100644 --- a/effects/dashboard/dashboard.cpp +++ b/effects/dashboard/dashboard.cpp @@ -51,11 +51,14 @@ DashboardEffect::~DashboardEffect() void DashboardEffect::reconfigure(ReconfigureFlags) { + DashboardConfig::self()->readConfig(); brightness = DashboardConfig::brightness()/ 100.0; saturation = DashboardConfig::saturation()/ 100.0; blur = DashboardConfig::blur(); timeline.setDuration(animationTime(500)); + if (transformWindow) + effects->addRepaintFull(); } void DashboardEffect::paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data) From 52cea9285dd3ae4aea26df63b5ee07ec4b146b30 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Mon, 9 Sep 2013 04:11:16 +0000 Subject: [PATCH 27/39] SVN_SILENT made messages (.desktop file) --- effects/kscreen/kscreen.desktop | 2 ++ kcmkwin/kwincompositing/kwincompositing.desktop | 2 +- kcmkwin/kwinoptions/kwinoptions.desktop | 2 +- kwin.notifyrc | 2 ++ 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/effects/kscreen/kscreen.desktop b/effects/kscreen/kscreen.desktop index 8ecb54ccca..564ecc37e3 100644 --- a/effects/kscreen/kscreen.desktop +++ b/effects/kscreen/kscreen.desktop @@ -16,6 +16,7 @@ Name[ia]=Kscreen Name[it]=Kscreen Name[kk]=Kscreen Name[ko]=Kscreen +Name[nb]=Kscreen Name[nl]=Kscreen Name[pa]=ਕੇਸਕਰੀਨ Name[pt]=Kscreen @@ -50,6 +51,7 @@ Comment[ia]=Effecto de adjutante pro KScreen Comment[it]=Effetto di assistenza per KScreen Comment[kk]=KScreen-нің көмек эффекті Comment[ko]=KScreen 도우미 효과 +Comment[nb]=Hjelpereffekt for KScreen Comment[nl]=Effect van hulp voor KScreen Comment[pa]=ਕੇਸਕਰੀਨ ਲਈ ਮੱਦਦ ਪ੍ਰਭਾਵ Comment[pt]=Efeito auxiliar do KScreen diff --git a/kcmkwin/kwincompositing/kwincompositing.desktop b/kcmkwin/kwincompositing/kwincompositing.desktop index 7654edfd8c..7f6384d6dd 100644 --- a/kcmkwin/kwincompositing/kwincompositing.desktop +++ b/kcmkwin/kwincompositing/kwincompositing.desktop @@ -197,7 +197,7 @@ X-KDE-Keywords[ia]=kwin,fenestra,gerente,componente,effecto,effectos 3D,effectos X-KDE-Keywords[it]=kwin,finestra,gestore,composizione,effetto,effetti 3D,effetti 2D,OpenGL,XRender,impostazioni video,effetti grefici,effetti desktop,animazioni,animazioni varie, effetti del gestore delle finestre,effetto dello scambiafinestre, effetto dello scambiatore di desktop,animazioni,velocità animazioni,animazioni desktop,driver,impostazioni driver,disegno,rendering,effetto invertito,effetto vetro,effetto lente,effetto snap helper,effetto evidenzia mouse,effetto ingrandimento, effetto sfocatura,effetto quadro degli strumenti,effetto esplosione,effetto dissolvenza,effetto dissolvenza desktop,effetto caduta,effetto planatura,effetto evidenziazione finestra,effetto schermata di accesso, effetto disconnessione,effetto lampada magica,effetto animazione di minimizzazione,effetto tracciatura mouse, effetto scalatura,effetto istantanea,effetto foglio,effetto diapositiva,effetto scivolamento,effetto icone nella barra delle applicazioni,effetto miniatura su un lato,translucenza,effetto translucenza, trasparenza,effetto geometria finestra,effetto finestre tremolanti,effetto segnale di avvio,effetto finestra padre,effetto oscura finestra inattiva,effetto oscura schermo,effetto scivola all'indietro,gradevole,effetto gradevole,effetto mostra FPS,effetto ridisegno,effetto scambio cubi,effetto scambio copertina,effetto cubi del desktop,effetto animazione cubi del desktop,effetto griglia desktop,effetto scambiatore con inversione,effetto riquadro,effetto finestra presente,effetto ridimensionamento finestra X-KDE-Keywords[kk]=kwin,window,manager,compositing,effect,3D effects,2D effects,OpenGL,XRender,video settings,graphical effects,desktop effects,animations,various animations,window management effects,window switching effect,desktop switching effect,animations,animation speed,desktop animations,drivers,driver settings,rendering,render,invert effect,looking glass effect,magnifier effect,snap helper effect,track mouse effect,zoom effect,blur effect,dashboard effect,explosion effect,fade effect,fade desktop effect,fall apart effect,glide effect,highlight window effect,login effect,logout effect,magic lamp effect,minimize animation effect,mouse mark effect,scale in effect,screenshot effect,sheet effect,slide effect,sliding popups effect,taskbar thumbnails effect,thumbnail aside effect,translucency,translucency effect,transparency,window geometry effect,wobbly windows effect,startup feedback effect,dialog parent effect,dim inactive effect,dim screen effect,slide back effect,eye candy,candy,show FPS effect,show paint effect,box switch effect,cover switch effect,desktop cube effect,desktop cube animation effect,desktop grid effect,flip switch effect,outline effect,present windows effect,resize window effect X-KDE-Keywords[km]=kwin,window,manager,compositing,effect,3D effects,2D effects,OpenGL,XRender,video settings,graphical effects,desktop effects,animations,various animations,window management effects,window switching effect,desktop switching effect,animations,animation speed,desktop animations,drivers,driver settings,rendering,render,invert effect,looking glass effect,magnifier effect,snap helper effect,track mouse effect,zoom effect,blur effect,dashboard effect,explosion effect,fade effect,fade desktop effect,fall apart effect,glide effect,highlight window effect,login effect,logout effect,magic lamp effect,minimize animation effect,mouse mark effect,scale in effect,screenshot effect,sheet effect,slide effect,sliding popups effect,taskbar thumbnails effect,thumbnail aside effect,translucency,translucency effect,transparency,window geometry effect,wobbly windows effect,startup feedback effect,dialog parent effect,dim inactive effect,dim screen effect,slide back effect,eye candy,candy,show FPS effect,show paint effect,box switch effect,cover switch effect,desktop cube effect,desktop cube animation effect,desktop grid effect,flip switch effect,outline effect,present windows effect,resize window effect -X-KDE-Keywords[nb]=kwin,vindusbehandler,sammensetting,effekt,3D-effekter,2D-effekter,OpenGL,XRender,videoinnstillinger,grafiske effekter,skrivebordseffekter,animasjoner,diverse animasjoner,vindusbytteeffekter,effekter ved skrivebordsbytte,animasjoner,animasjonsfart,skrivebordsanimasjoner,drivere,driverinnstillinger,opptegning,opptegner,inverteringseffekt,speileffekt,lupeeffekt,gripehjelpereffekt,musesporeffekt,forstørreeffekt,sløreffekt,kontrollpulteffekt,eksplosjonseffekt,uttoningseffekt,skrivebordtoningseffekt,henfallseffekt,glidereffekt,framhev vindu-effekt,innlogingseffekt,utloggingsefffekt,magisk lampe-effekt, animasjonseffekt ved vindusminimering,musmerkeeffekt,innskalerngseffekt,skjermdumpeffekt,ark-effekt,lysbildeeffekt,glidende oppspretteffekt,effekt for minibilder på oppgavelinja,effekt for minibilder på siden,gjennomskinnelighetseffekt,gjennomsiktighet,vindusgeometri-effekt,skjelvende vinduer-effekt,effekt for oppstartsmelding,effekt for foreldredialog,effekt for mørk inaktiv,effekt for mørk skjerm,gli tilbake-effekt,øyesnop,snop,vis FPS-effekt,vis malingseffekt,boksbytteeffekt,lokkbytteeffekt,skrivebordsterning-effekt,effek for animert skrivebordsterning,effekt for skrivebordsruter,effekt for flipp-bytte,omriss-effekt,effekt for vinduer tilstede,effekt for vinduer som endrer størrelse +X-KDE-Keywords[nb]=kwin,vindusbehandler,sammensetting,effekt,3D-effekter,2D-effekter,OpenGL,XRender,videoinnstillinger,grafiske effekter,skrivebordseffekter,animasjoner,diverse animasjoner,vindusbytteeffekter,effekter ved skrivebordsbytte,animasjoner,animasjonsfart,skrivebordsanimasjoner,drivere,driverinnstillinger,opptegning,opptegner,inverteringseffekt,speileffekt,lupeeffekt,gripehjelpereffekt,musesporeffekt,forstørreeffekt,sløreffekt,kontrollpulteffekt,eksplosjonseffekt,uttoningseffekt,skrivebordtoningseffekt,henfallseffekt,glidereffekt,framhev vindu-effekt,innlogingseffekt,utloggingsefffekt,magisk lampe-effekt, animasjonseffekt ved vindusminimering,musmerkeeffekt,innskaleringseffekt,skjermdumpeffekt,ark-effekt,lysbildeeffekt,glidende oppspretteffekt,effekt for minibilder på oppgavelinja,effekt for minibilder på siden,gjennomskinnelighetseffekt,gjennomsiktighet,vindusgeometri-effekt,skjelvende vinduer-effekt,effekt for oppstartsmelding,effekt for foreldredialog,effekt for mørk inaktiv,effekt for mørk skjerm,gli tilbake-effekt,øyesnop,snop,vis FPS-effekt,vis malingseffekt,boksbytteeffekt,lokkbytteeffekt,skrivebordsterning-effekt,effek for animert skrivebordsterning,effekt for skrivebordsruter,effekt for flipp-bytte,omriss-effekt,effekt for vinduer tilstede,effekt for vinduer som endrer størrelse X-KDE-Keywords[nl]=kwin,venster,beheerder,compositing,effect,3D effecten,2D effecten,OpenGL,XRender,video-instellingen,grafische effecten,bureaubladeffecten,animaties,verrschillende animaties,vensterbeheereffecten,vensteromschakeleffect, bureaublad-omschakeleffect,animaties,animatiesnelheid,bureaubladanimaties,stuurprogramma's,stuurprogramma-instellingen,rendering,render,inversieeffect,vergrootglaseffect,vergrotingseffect,snaphelpereffect,trackmuiseffect,zoomeffect,vervagingseffect,dashboardeffect,explosie-effect,uitvaageffect,uitvaagbureaubladeffect,uiteenvaleffect,glijeffect,vebsteraccentueringseffect,aanmeldeffect,afmeldeffect,magische lampeffect,animatie-effect minimaliseren,muismarkeringseffect,inschaaleffect,schermafdrukeffect,bladeneffect,diaeffect,glijdende pop-upseffect,taakbalkminiatuureffect,miniatuur-opzijeffect,doorzichtigheid,doorzichtigheidseffect,transparantie,vensterafmetingeneffect,wiebelende vensterseffect,opstartterugkoppeleffect,dialoogoudereffect,dim bij inactiviteitseffect,dim het schermeffect,schuif terugeffect,oogstrelend,snoepgoed,FPS toneneffect,verf toneneffect,vak omschakeleffect,deksel schakelaareffect,bureaublad kubuseffect,bureaublad kubus animatie-effect,bureaubladrastereffect,omschakeleffect,omrandingeffect,huidig venstereffect, wijzig grootte van venstereffect X-KDE-Keywords[pl]=kwin,okno,menadżer,kompozycje,efekt,efekty 3D,efekty 2D,OpenGL,XRender, ustawienia wideo,efekty graficzne,efekty pulpitu,animacje,różne animacje,efekty zarządzania oknami,efekty przełączania okien,efekty przełączania pulpitów,animacje, szybkość animacji,animacje pulpitu,sterowniki,ustawienia sterowników,renderowania, efekt odwrócenia,szkło powiększające,efekt powiększenia,efekt pomocnika przyciągania, efekt śledzenia myszy,efekt przybliżenia,efekt rozmycia,efekt tablicy,efekt eksplozji,efekt zanikania,efekt zanikania pulpitu,efekt rozpadania,efekt slajdu,efekt podświetlania okna, efekt logowania,efekt wylogowywania,efekt magicznej lampy,efekt animacji minimalizacji, efekt znacznika myszy,efekt skalowania,efekt zrzutu ekranu,efekt arkusza,efekt slajdu,efekt wysuwających się elementów wyskakujących,efekt prześwitywania,przezroczystość,efekt geometrii okna,efekt chwiejnych okien,efekt odczuć przy starcie,efekt okna rodzica,efekt przyciemniania nieaktywnych,efekt przyciemniania ekranu,efekt przesuwania do tył,efekt pokazania ilości klatek na sekundę X-KDE-Keywords[pt]=kwin,janela,gestor,composição,efeito,efeitos 3D,efeitos 2D,OpenGL,XRender,configuração do vídeo,efeitos gráficos,efeitos do ecrã,animações,diversas animações,~efeitos de gestão das janelas,efeito de mudança da janela,efeito de mudança de ecrã,animações,velocidade da animação,animações do ecrã,controladores,configuração do controlador,desenho,efeito de inversão,efeito de lupa,efeito de lente,efeito de ajuste,efeito de seguimento do rato,efeito de ampliação,efeito de borrão,efeito de quadro,efeito de explosão,efeito de desvanecimento,efeito de desvanecimento do ecrã,efeito de queda,efeito de deslizamento,efeito de realce da janela,efeito de autenticação,efeito de encerramento da sessão,efeito de lâmpada mágica,efeito de animação da minimização,efeito de marcação do rato,efeito de ampliação,efeito de captura do ecrã,efeito de folha,efeito de deslizamento,efeito de janelas deslizantes,efeito de miniaturas das tarefas,efeito de miniatura ao lado,translucidez,efeito de translucidez,transparência,efeito de geometria da janela,efeito de janelas ondulantes,efeito da reacção ao arranque,efeito da janela-mãe,efeito de escurecimento da janela inactiva,efeito de escurecimento do ecrã,efeito de deslize para trás,efeitos visuais,visuais,efeito para mostrar FPS,efeito de pintura,efeito de mudança em caixa,efeito de mudança em capas,efeito de cubo do ecrã,efeito de animação do cubo do ecrã,efeito da grelha do ecrã,efeito de viragem de página,efeito de realce,efeito de apresentação das janelas,feito de dimensionamento das janelas diff --git a/kcmkwin/kwinoptions/kwinoptions.desktop b/kcmkwin/kwinoptions/kwinoptions.desktop index 46e17d617f..e9c088e441 100644 --- a/kcmkwin/kwinoptions/kwinoptions.desktop +++ b/kcmkwin/kwinoptions/kwinoptions.desktop @@ -208,7 +208,7 @@ X-KDE-Keywords[it]=fuoco,posizionamento,comportamento della finestra,animazione, X-KDE-Keywords[kk]=focus,placement,window behavior,animation,raise,auto raise,windows,frame,titlebar,doubleclick X-KDE-Keywords[km]=focus,placement,window behavior,animation,raise,auto raise,windows,frame,titlebar,doubleclick X-KDE-Keywords[ko]=focus,placement,window behavior,animation,raise,auto raise,windows,frame,titlebar,doubleclick,초점,위치,창 행동,애니메이션,올리기,창,프레임,제목 표시줄 -X-KDE-Keywords[nb]=fokus,plassering,vindusppførsel,animering,hev,autohev,vinduer,ramme,tittellinje,dobbeltklikk +X-KDE-Keywords[nb]=fokus,plassering,vindusoppførsel,animering,hev,autohev,vinduer,ramme,tittellinje,dobbeltklikk X-KDE-Keywords[nl]=focus,plaatsing,venstegedrag,animatie,omhoog,automatisch omhoog,vensters,frame,titelbalk,dubbelklik X-KDE-Keywords[pl]=uaktywnienie,umieszczenie,zachowanie okna,animacja,wzniesienie,auto-wzniesienie, okna,ramka,pasek tytułu,podwójne kliknięcie X-KDE-Keywords[pt]=foco,colocação,comportamento da janela,animação,elevar,elevar automaticamente,janelas,contorno,barra de título,duplo-click diff --git a/kwin.notifyrc b/kwin.notifyrc index 72dec7fdc2..859e5223af 100644 --- a/kwin.notifyrc +++ b/kwin.notifyrc @@ -213,6 +213,7 @@ Name[it]=Azzeramento grafica Name[kk]=Графиканы ысыру Name[ko]=그래픽 초기화 Name[lt]=Grafikos atstatymas +Name[nb]=Grafikk tilbakestilt Name[nl]=Grafische reset Name[pa]=ਗਰਾਫਿਕਸ ਮੁੜ-ਸੈੱਟ Name[pl]=Reset grafiki @@ -246,6 +247,7 @@ Comment[ia]=Il necessita un evento de reinitiar le graphic Comment[it]=Si è verificato un evento di azzeramento della grafica Comment[kk]=Графиканы ысыру оқиғасы болды Comment[ko]=그래픽 초기화 이벤트가 발생함 +Comment[nb]=Det har foregått en grafikk-tilbakestilling Comment[nl]=Een gebeurtenis van een grafische reset deed zich voor Comment[pl]=Nastąpiło zdarzenie resetu grafiki Comment[pt]=Ocorreu um evento de reinício gráfico From 24f68febf1215dc106b5414ce2c09d2f148f1f4a Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Mon, 9 Sep 2013 06:48:54 +0000 Subject: [PATCH 28/39] SVN_SILENT made messages (.desktop file) --- effects/kscreen/kscreen.desktop | 2 ++ kcmkwin/kwincompositing/kwincompositing.desktop | 2 +- kcmkwin/kwinoptions/kwinoptions.desktop | 2 +- kwin.notifyrc | 2 ++ 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/effects/kscreen/kscreen.desktop b/effects/kscreen/kscreen.desktop index f5127baafe..1f0560cf7c 100644 --- a/effects/kscreen/kscreen.desktop +++ b/effects/kscreen/kscreen.desktop @@ -15,6 +15,7 @@ Name[ia]=Kscreen Name[it]=Kscreen Name[kk]=Kscreen Name[ko]=Kscreen +Name[nb]=Kscreen Name[nl]=Kscreen Name[pa]=ਕੇਸਕਰੀਨ Name[pt]=Kscreen @@ -48,6 +49,7 @@ Comment[ia]=Effecto de adjutante pro KScreen Comment[it]=Effetto di assistenza per KScreen Comment[kk]=KScreen-нің көмек эффекті Comment[ko]=KScreen 도우미 효과 +Comment[nb]=Hjelpereffekt for KScreen Comment[nl]=Effect van hulp voor KScreen Comment[pa]=ਕੇਸਕਰੀਨ ਲਈ ਮੱਦਦ ਪ੍ਰਭਾਵ Comment[pt]=Efeito auxiliar do KScreen diff --git a/kcmkwin/kwincompositing/kwincompositing.desktop b/kcmkwin/kwincompositing/kwincompositing.desktop index 84764231db..99987202ab 100644 --- a/kcmkwin/kwincompositing/kwincompositing.desktop +++ b/kcmkwin/kwincompositing/kwincompositing.desktop @@ -197,7 +197,7 @@ X-KDE-Keywords[ia]=kwin,fenestra,gerente,componente,effecto,effectos 3D,effectos X-KDE-Keywords[it]=kwin,finestra,gestore,composizione,effetto,effetti 3D,effetti 2D,OpenGL,XRender,impostazioni video,effetti grefici,effetti desktop,animazioni,animazioni varie, effetti del gestore delle finestre,effetto dello scambiafinestre, effetto dello scambiatore di desktop,animazioni,velocità animazioni,animazioni desktop,driver,impostazioni driver,disegno,rendering,effetto invertito,effetto vetro,effetto lente,effetto snap helper,effetto evidenzia mouse,effetto ingrandimento, effetto sfocatura,effetto quadro degli strumenti,effetto esplosione,effetto dissolvenza,effetto dissolvenza desktop,effetto caduta,effetto planatura,effetto evidenziazione finestra,effetto schermata di accesso, effetto disconnessione,effetto lampada magica,effetto animazione di minimizzazione,effetto tracciatura mouse, effetto scalatura,effetto istantanea,effetto foglio,effetto diapositiva,effetto scivolamento,effetto icone nella barra delle applicazioni,effetto miniatura su un lato,translucenza,effetto translucenza, trasparenza,effetto geometria finestra,effetto finestre tremolanti,effetto segnale di avvio,effetto finestra padre,effetto oscura finestra inattiva,effetto oscura schermo,effetto scivola all'indietro,gradevole,effetto gradevole,effetto mostra FPS,effetto ridisegno,effetto scambio cubi,effetto scambio copertina,effetto cubi del desktop,effetto animazione cubi del desktop,effetto griglia desktop,effetto scambiatore con inversione,effetto riquadro,effetto finestra presente,effetto ridimensionamento finestra X-KDE-Keywords[kk]=kwin,window,manager,compositing,effect,3D effects,2D effects,OpenGL,XRender,video settings,graphical effects,desktop effects,animations,various animations,window management effects,window switching effect,desktop switching effect,animations,animation speed,desktop animations,drivers,driver settings,rendering,render,invert effect,looking glass effect,magnifier effect,snap helper effect,track mouse effect,zoom effect,blur effect,dashboard effect,explosion effect,fade effect,fade desktop effect,fall apart effect,glide effect,highlight window effect,login effect,logout effect,magic lamp effect,minimize animation effect,mouse mark effect,scale in effect,screenshot effect,sheet effect,slide effect,sliding popups effect,taskbar thumbnails effect,thumbnail aside effect,translucency,translucency effect,transparency,window geometry effect,wobbly windows effect,startup feedback effect,dialog parent effect,dim inactive effect,dim screen effect,slide back effect,eye candy,candy,show FPS effect,show paint effect,box switch effect,cover switch effect,desktop cube effect,desktop cube animation effect,desktop grid effect,flip switch effect,outline effect,present windows effect,resize window effect X-KDE-Keywords[km]=kwin,window,manager,compositing,effect,3D effects,2D effects,OpenGL,XRender,video settings,graphical effects,desktop effects,animations,various animations,window management effects,window switching effect,desktop switching effect,animations,animation speed,desktop animations,drivers,driver settings,rendering,render,invert effect,looking glass effect,magnifier effect,snap helper effect,track mouse effect,zoom effect,blur effect,dashboard effect,explosion effect,fade effect,fade desktop effect,fall apart effect,glide effect,highlight window effect,login effect,logout effect,magic lamp effect,minimize animation effect,mouse mark effect,scale in effect,screenshot effect,sheet effect,slide effect,sliding popups effect,taskbar thumbnails effect,thumbnail aside effect,translucency,translucency effect,transparency,window geometry effect,wobbly windows effect,startup feedback effect,dialog parent effect,dim inactive effect,dim screen effect,slide back effect,eye candy,candy,show FPS effect,show paint effect,box switch effect,cover switch effect,desktop cube effect,desktop cube animation effect,desktop grid effect,flip switch effect,outline effect,present windows effect,resize window effect -X-KDE-Keywords[nb]=kwin,vindusbehandler,sammensetting,effekt,3D-effekter,2D-effekter,OpenGL,XRender,videoinnstillinger,grafiske effekter,skrivebordseffekter,animasjoner,diverse animasjoner,vindusbytteeffekter,effekter ved skrivebordsbytte,animasjoner,animasjonsfart,skrivebordsanimasjoner,drivere,driverinnstillinger,opptegning,opptegner,inverteringseffekt,speileffekt,lupeeffekt,gripehjelpereffekt,musesporeffekt,forstørreeffekt,sløreffekt,kontrollpulteffekt,eksplosjonseffekt,uttoningseffekt,skrivebordtoningseffekt,henfallseffekt,glidereffekt,framhev vindu-effekt,innlogingseffekt,utloggingsefffekt,magisk lampe-effekt, animasjonseffekt ved vindusminimering,musmerkeeffekt,innskalerngseffekt,skjermdumpeffekt,ark-effekt,lysbildeeffekt,glidende oppspretteffekt,effekt for minibilder på oppgavelinja,effekt for minibilder på siden,gjennomskinnelighetseffekt,gjennomsiktighet,vindusgeometri-effekt,skjelvende vinduer-effekt,effekt for oppstartsmelding,effekt for foreldredialog,effekt for mørk inaktiv,effekt for mørk skjerm,gli tilbake-effekt,øyesnop,snop,vis FPS-effekt,vis malingseffekt,boksbytteeffekt,lokkbytteeffekt,skrivebordsterning-effekt,effek for animert skrivebordsterning,effekt for skrivebordsruter,effekt for flipp-bytte,omriss-effekt,effekt for vinduer tilstede,effekt for vinduer som endrer størrelse +X-KDE-Keywords[nb]=kwin,vindusbehandler,sammensetting,effekt,3D-effekter,2D-effekter,OpenGL,XRender,videoinnstillinger,grafiske effekter,skrivebordseffekter,animasjoner,diverse animasjoner,vindusbytteeffekter,effekter ved skrivebordsbytte,animasjoner,animasjonsfart,skrivebordsanimasjoner,drivere,driverinnstillinger,opptegning,opptegner,inverteringseffekt,speileffekt,lupeeffekt,gripehjelpereffekt,musesporeffekt,forstørreeffekt,sløreffekt,kontrollpulteffekt,eksplosjonseffekt,uttoningseffekt,skrivebordtoningseffekt,henfallseffekt,glidereffekt,framhev vindu-effekt,innlogingseffekt,utloggingsefffekt,magisk lampe-effekt, animasjonseffekt ved vindusminimering,musmerkeeffekt,innskaleringseffekt,skjermdumpeffekt,ark-effekt,lysbildeeffekt,glidende oppspretteffekt,effekt for minibilder på oppgavelinja,effekt for minibilder på siden,gjennomskinnelighetseffekt,gjennomsiktighet,vindusgeometri-effekt,skjelvende vinduer-effekt,effekt for oppstartsmelding,effekt for foreldredialog,effekt for mørk inaktiv,effekt for mørk skjerm,gli tilbake-effekt,øyesnop,snop,vis FPS-effekt,vis malingseffekt,boksbytteeffekt,lokkbytteeffekt,skrivebordsterning-effekt,effek for animert skrivebordsterning,effekt for skrivebordsruter,effekt for flipp-bytte,omriss-effekt,effekt for vinduer tilstede,effekt for vinduer som endrer størrelse X-KDE-Keywords[nl]=kwin,venster,beheerder,compositing,effect,3D effecten,2D effecten,OpenGL,XRender,video-instellingen,grafische effecten,bureaubladeffecten,animaties,verrschillende animaties,vensterbeheereffecten,vensteromschakeleffect, bureaublad-omschakeleffect,animaties,animatiesnelheid,bureaubladanimaties,stuurprogramma's,stuurprogramma-instellingen,rendering,render,inversieeffect,vergrootglaseffect,vergrotingseffect,snaphelpereffect,trackmuiseffect,zoomeffect,vervagingseffect,dashboardeffect,explosie-effect,uitvaageffect,uitvaagbureaubladeffect,uiteenvaleffect,glijeffect,vebsteraccentueringseffect,aanmeldeffect,afmeldeffect,magische lampeffect,animatie-effect minimaliseren,muismarkeringseffect,inschaaleffect,schermafdrukeffect,bladeneffect,diaeffect,glijdende pop-upseffect,taakbalkminiatuureffect,miniatuur-opzijeffect,doorzichtigheid,doorzichtigheidseffect,transparantie,vensterafmetingeneffect,wiebelende vensterseffect,opstartterugkoppeleffect,dialoogoudereffect,dim bij inactiviteitseffect,dim het schermeffect,schuif terugeffect,oogstrelend,snoepgoed,FPS toneneffect,verf toneneffect,vak omschakeleffect,deksel schakelaareffect,bureaublad kubuseffect,bureaublad kubus animatie-effect,bureaubladrastereffect,omschakeleffect,omrandingeffect,huidig venstereffect, wijzig grootte van venstereffect X-KDE-Keywords[pl]=kwin,okno,menadżer,kompozycje,efekt,efekty 3D,efekty 2D,OpenGL,XRender, ustawienia wideo,efekty graficzne,efekty pulpitu,animacje,różne animacje,efekty zarządzania oknami,efekty przełączania okien,efekty przełączania pulpitów,animacje, szybkość animacji,animacje pulpitu,sterowniki,ustawienia sterowników,renderowania, efekt odwrócenia,szkło powiększające,efekt powiększenia,efekt pomocnika przyciągania, efekt śledzenia myszy,efekt przybliżenia,efekt rozmycia,efekt tablicy,efekt eksplozji,efekt zanikania,efekt zanikania pulpitu,efekt rozpadania,efekt slajdu,efekt podświetlania okna, efekt logowania,efekt wylogowywania,efekt magicznej lampy,efekt animacji minimalizacji, efekt znacznika myszy,efekt skalowania,efekt zrzutu ekranu,efekt arkusza,efekt slajdu,efekt wysuwających się elementów wyskakujących,efekt prześwitywania,przezroczystość,efekt geometrii okna,efekt chwiejnych okien,efekt odczuć przy starcie,efekt okna rodzica,efekt przyciemniania nieaktywnych,efekt przyciemniania ekranu,efekt przesuwania do tył,efekt pokazania ilości klatek na sekundę X-KDE-Keywords[pt]=kwin,janela,gestor,composição,efeito,efeitos 3D,efeitos 2D,OpenGL,XRender,configuração do vídeo,efeitos gráficos,efeitos do ecrã,animações,diversas animações,~efeitos de gestão das janelas,efeito de mudança da janela,efeito de mudança de ecrã,animações,velocidade da animação,animações do ecrã,controladores,configuração do controlador,desenho,efeito de inversão,efeito de lupa,efeito de lente,efeito de ajuste,efeito de seguimento do rato,efeito de ampliação,efeito de borrão,efeito de quadro,efeito de explosão,efeito de desvanecimento,efeito de desvanecimento do ecrã,efeito de queda,efeito de deslizamento,efeito de realce da janela,efeito de autenticação,efeito de encerramento da sessão,efeito de lâmpada mágica,efeito de animação da minimização,efeito de marcação do rato,efeito de ampliação,efeito de captura do ecrã,efeito de folha,efeito de deslizamento,efeito de janelas deslizantes,efeito de miniaturas das tarefas,efeito de miniatura ao lado,translucidez,efeito de translucidez,transparência,efeito de geometria da janela,efeito de janelas ondulantes,efeito da reacção ao arranque,efeito da janela-mãe,efeito de escurecimento da janela inactiva,efeito de escurecimento do ecrã,efeito de deslize para trás,efeitos visuais,visuais,efeito para mostrar FPS,efeito de pintura,efeito de mudança em caixa,efeito de mudança em capas,efeito de cubo do ecrã,efeito de animação do cubo do ecrã,efeito da grelha do ecrã,efeito de viragem de página,efeito de realce,efeito de apresentação das janelas,feito de dimensionamento das janelas diff --git a/kcmkwin/kwinoptions/kwinoptions.desktop b/kcmkwin/kwinoptions/kwinoptions.desktop index 46e17d617f..e9c088e441 100644 --- a/kcmkwin/kwinoptions/kwinoptions.desktop +++ b/kcmkwin/kwinoptions/kwinoptions.desktop @@ -208,7 +208,7 @@ X-KDE-Keywords[it]=fuoco,posizionamento,comportamento della finestra,animazione, X-KDE-Keywords[kk]=focus,placement,window behavior,animation,raise,auto raise,windows,frame,titlebar,doubleclick X-KDE-Keywords[km]=focus,placement,window behavior,animation,raise,auto raise,windows,frame,titlebar,doubleclick X-KDE-Keywords[ko]=focus,placement,window behavior,animation,raise,auto raise,windows,frame,titlebar,doubleclick,초점,위치,창 행동,애니메이션,올리기,창,프레임,제목 표시줄 -X-KDE-Keywords[nb]=fokus,plassering,vindusppførsel,animering,hev,autohev,vinduer,ramme,tittellinje,dobbeltklikk +X-KDE-Keywords[nb]=fokus,plassering,vindusoppførsel,animering,hev,autohev,vinduer,ramme,tittellinje,dobbeltklikk X-KDE-Keywords[nl]=focus,plaatsing,venstegedrag,animatie,omhoog,automatisch omhoog,vensters,frame,titelbalk,dubbelklik X-KDE-Keywords[pl]=uaktywnienie,umieszczenie,zachowanie okna,animacja,wzniesienie,auto-wzniesienie, okna,ramka,pasek tytułu,podwójne kliknięcie X-KDE-Keywords[pt]=foco,colocação,comportamento da janela,animação,elevar,elevar automaticamente,janelas,contorno,barra de título,duplo-click diff --git a/kwin.notifyrc b/kwin.notifyrc index 1259669e6b..0f0b9334b0 100644 --- a/kwin.notifyrc +++ b/kwin.notifyrc @@ -212,6 +212,7 @@ Name[it]=Azzeramento grafica Name[kk]=Графиканы ысыру Name[ko]=그래픽 초기화 Name[lt]=Grafikos atstatymas +Name[nb]=Grafikk tilbakestilt Name[nl]=Grafische reset Name[pa]=ਗਰਾਫਿਕਸ ਮੁੜ-ਸੈੱਟ Name[pl]=Reset grafiki @@ -244,6 +245,7 @@ Comment[ia]=Il necessita un evento de reinitiar le graphic Comment[it]=Si è verificato un evento di azzeramento della grafica Comment[kk]=Графиканы ысыру оқиғасы болды Comment[ko]=그래픽 초기화 이벤트가 발생함 +Comment[nb]=Det har foregått en grafikk-tilbakestilling Comment[nl]=Een gebeurtenis van een grafische reset deed zich voor Comment[pl]=Nastąpiło zdarzenie resetu grafiki Comment[pt]=Ocorreu um evento de reinício gráfico From 48057b33a8278636a4f33bc95d0f269a0ce2653b Mon Sep 17 00:00:00 2001 From: Antonio Larrosa Date: Tue, 17 Sep 2013 18:07:17 +0200 Subject: [PATCH 29/39] Make kwin not crash under qemu due to failing glx call This fixes a kwin crash that happened under qemu when running kwin for the first time (subsequent runs had glx already disabled) --- glxbackend.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/glxbackend.cpp b/glxbackend.cpp index 545dedf6cf..9e3064c092 100644 --- a/glxbackend.cpp +++ b/glxbackend.cpp @@ -222,6 +222,10 @@ bool GlxBackend::initBuffer() if (overlayWindow()->create()) { // Try to create double-buffered window in the overlay XVisualInfo* visual = glXGetVisualFromFBConfig(display(), fbconfig); + if (!visual) { + kError(1212) << "Failed to get visual from fbconfig"; + return false; + } XSetWindowAttributes attrs; attrs.colormap = XCreateColormap(display(), rootWindow(), visual->visual, AllocNone); window = XCreateWindow(display(), overlayWindow()->window(), 0, 0, displayWidth(), displayHeight(), From f9109a3d4b3606d158d48e18146eb5e587d488db Mon Sep 17 00:00:00 2001 From: Antonio Larrosa Date: Tue, 17 Sep 2013 18:07:17 +0200 Subject: [PATCH 30/39] Make kwin not crash under qemu due to failing glx call This fixes a kwin crash that happened under qemu when running kwin for the first time (subsequent runs had glx already disabled) --- glxbackend.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/glxbackend.cpp b/glxbackend.cpp index 545dedf6cf..9e3064c092 100644 --- a/glxbackend.cpp +++ b/glxbackend.cpp @@ -222,6 +222,10 @@ bool GlxBackend::initBuffer() if (overlayWindow()->create()) { // Try to create double-buffered window in the overlay XVisualInfo* visual = glXGetVisualFromFBConfig(display(), fbconfig); + if (!visual) { + kError(1212) << "Failed to get visual from fbconfig"; + return false; + } XSetWindowAttributes attrs; attrs.colormap = XCreateColormap(display(), rootWindow(), visual->visual, AllocNone); window = XCreateWindow(display(), overlayWindow()->window(), 0, 0, displayWidth(), displayHeight(), From 68995c9ba5255b8a1c997eb82432fbbb8097d805 Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Sat, 21 Sep 2013 04:07:24 +0000 Subject: [PATCH 31/39] SVN_SILENT made messages (.desktop file) --- tabbox/kwindesktopswitcher.desktop | 1 + 1 file changed, 1 insertion(+) diff --git a/tabbox/kwindesktopswitcher.desktop b/tabbox/kwindesktopswitcher.desktop index 42cc455d96..c1c2a57bc1 100644 --- a/tabbox/kwindesktopswitcher.desktop +++ b/tabbox/kwindesktopswitcher.desktop @@ -6,6 +6,7 @@ Comment=KWin Desktop Switcher Layout Comment[bs]=Izgled KWin prebacivača radnih površina Comment[ca]=Disposició del commutador d'escriptoris del KWin Comment[da]=Layout til KWins skrivebordsskifter +Comment[de]=Arbeitsflächenwechsler-Layout Comment[es]=Esquema del cambiador de escritorios de KWin Comment[fi]=KWinin työpöydänvalitsimen asettelu Comment[fr]=Une disposition du sélecteur de bureaux KWin From 7c09fb5af2ebd303d954add98927f6890744ae2b Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Sat, 21 Sep 2013 06:50:39 +0000 Subject: [PATCH 32/39] SVN_SILENT made messages (.desktop file) --- tabbox/kwindesktopswitcher.desktop | 1 + 1 file changed, 1 insertion(+) diff --git a/tabbox/kwindesktopswitcher.desktop b/tabbox/kwindesktopswitcher.desktop index 42cc455d96..c1c2a57bc1 100644 --- a/tabbox/kwindesktopswitcher.desktop +++ b/tabbox/kwindesktopswitcher.desktop @@ -6,6 +6,7 @@ Comment=KWin Desktop Switcher Layout Comment[bs]=Izgled KWin prebacivača radnih površina Comment[ca]=Disposició del commutador d'escriptoris del KWin Comment[da]=Layout til KWins skrivebordsskifter +Comment[de]=Arbeitsflächenwechsler-Layout Comment[es]=Esquema del cambiador de escritorios de KWin Comment[fi]=KWinin työpöydänvalitsimen asettelu Comment[fr]=Une disposition du sélecteur de bureaux KWin From a0be69adde297481cfa681098b6fda2ada63ea5d Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Mon, 23 Sep 2013 04:08:07 +0000 Subject: [PATCH 33/39] SVN_SILENT made messages (.desktop file) --- effects/kscreen/kscreen.desktop | 2 ++ 1 file changed, 2 insertions(+) diff --git a/effects/kscreen/kscreen.desktop b/effects/kscreen/kscreen.desktop index 564ecc37e3..53c34675b2 100644 --- a/effects/kscreen/kscreen.desktop +++ b/effects/kscreen/kscreen.desktop @@ -19,6 +19,7 @@ Name[ko]=Kscreen Name[nb]=Kscreen Name[nl]=Kscreen Name[pa]=ਕੇਸਕਰੀਨ +Name[pl]=Kscreen Name[pt]=Kscreen Name[pt_BR]=KScreen Name[ru]=Kscreen @@ -54,6 +55,7 @@ Comment[ko]=KScreen 도우미 효과 Comment[nb]=Hjelpereffekt for KScreen Comment[nl]=Effect van hulp voor KScreen Comment[pa]=ਕੇਸਕਰੀਨ ਲਈ ਮੱਦਦ ਪ੍ਰਭਾਵ +Comment[pl]=Efekt pomocniczy dla KScreen Comment[pt]=Efeito auxiliar do KScreen Comment[pt_BR]=Efeito auxiliar do KScreen Comment[ru]=Вспомогательный эффект для KScreen From 66ffd9f0f66c1fbdfe9123a3f711e9a2bd2abdcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Mon, 9 Sep 2013 19:38:30 +0200 Subject: [PATCH 34/39] input window: ensure input shaping is supported BUG: 320459 FIXED-IN: 4.11.2 REVIEW: 112623 --- client.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client.cpp b/client.cpp index 5a76c25185..e8e20d5ba2 100644 --- a/client.cpp +++ b/client.cpp @@ -371,6 +371,9 @@ void Client::updateInputWindow() if (brokenQtInputHandling) return; + if (!Xcb::Extensions::self()->isShapeInputAvailable()) + return; + QRegion region; if (!noBorder()) { From 149e97fcb9e3cf98bda8b6561cc05b9240a149ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sun, 22 Sep 2013 00:36:47 +0200 Subject: [PATCH 35/39] reset invert shader on viewport resize General problem known from bug #325154 BUG: 325154 FXED-IN: 4.11.2 REVIEW: 112877 --- effects/invert/invert.cpp | 6 ++++++ effects/invert/invert.h | 3 +++ 2 files changed, 9 insertions(+) diff --git a/effects/invert/invert.cpp b/effects/invert/invert.cpp index c412e31644..291aa6b017 100644 --- a/effects/invert/invert.cpp +++ b/effects/invert/invert.cpp @@ -56,6 +56,7 @@ InvertEffect::InvertEffect() b->setGlobalShortcut(KShortcut(Qt::CTRL + Qt::META + Qt::Key_U)); connect(b, SIGNAL(triggered(bool)), this, SLOT(toggleWindow())); connect(effects, SIGNAL(windowClosed(KWin::EffectWindow*)), this, SLOT(slotWindowClosed(KWin::EffectWindow*))); + connect(effects, SIGNAL(screenGeometryChanged(const QSize&)), this, SLOT(resetShader())); } InvertEffect::~InvertEffect() @@ -175,6 +176,11 @@ bool InvertEffect::provides(Feature f) return f == ScreenInversion; } +void InvertEffect::resetShader() +{ + ShaderManager::instance()->resetShader(m_shader, ShaderManager::GenericShader); +} + } // namespace #include "invert.moc" diff --git a/effects/invert/invert.h b/effects/invert/invert.h index 908eef4aff..ef6cd91424 100644 --- a/effects/invert/invert.h +++ b/effects/invert/invert.h @@ -54,6 +54,9 @@ public slots: void toggleWindow(); void slotWindowClosed(KWin::EffectWindow *w); +private Q_SLOTS: + void resetShader(); + protected: bool loadData(); From 67cb571f86579784c777940c216f31ae939ae6c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Wed, 11 Sep 2013 23:27:30 +0200 Subject: [PATCH 36/39] fix two damage artifact causes 1. when adding a full damange, that must not replace existing (larger) repaints 2. emit geometryChanged before invoking and to update shadowGeometry through addRepaintFull BUG: 324560 FIXED-IN: 4.11.2 --- composite.cpp | 2 +- events.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/composite.cpp b/composite.cpp index 097d08500f..de674b6c91 100644 --- a/composite.cpp +++ b/composite.cpp @@ -989,7 +989,7 @@ void Toplevel::addDamageFull() return; damage_region = rect(); - repaints_region = rect(); + repaints_region |= rect(); emit damaged(this, rect()); } diff --git a/events.cpp b/events.cpp index 904811864b..1e8ba5008f 100644 --- a/events.cpp +++ b/events.cpp @@ -1521,6 +1521,7 @@ void Unmanaged::configureNotifyEvent(XConfigureEvent* e) addWorkspaceRepaint(visibleRect()); // damage old area QRect old = geom; geom = newgeom; + emit geometryChanged(); // update shadow region addRepaintFull(); if (old.size() != geom.size()) discardWindowPixmap(); From 4fd554a2e22aa2c7a6d5cf208a96c987d63d86c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sun, 8 Sep 2013 22:56:27 +0200 Subject: [PATCH 37/39] fix xcb CurrentInput implementation broke on interim Wrapper() constructor change The Constructor needs to explicitly pass XCB_WINDOW_NONE to the inherited Constructor to trigger a request Thanks to Alex Leach for finding this CCBUG: 256242 FIXED-IN: 4.11.2 REVIEW: 112595 --- xcbutils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xcbutils.h b/xcbutils.h index 1a4befd751..fca15f849d 100644 --- a/xcbutils.h +++ b/xcbutils.h @@ -197,7 +197,7 @@ inline xcb_get_input_focus_cookie_t get_input_focus(xcb_connection_t *c, xcb_win class CurrentInput : public Wrapper { public: - CurrentInput() : Wrapper() {} + CurrentInput() : Wrapper(XCB_WINDOW_NONE) {} inline xcb_window_t window() { if (isNull()) From 3f5ef10c8efbf8d5223013bd821768116429cfe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Thu, 5 Sep 2013 21:10:13 +0200 Subject: [PATCH 38/39] introduce GLTexture::clear and use it from paintredirector also work around broken fbo texture clearing on fglrx so far supports FBO/glClear and resorts to glTexSubImage2D if the fbo cannot be created or is (in case of fglrx) known to break, resort to glTexImage2D loading of an argb array of zeros BUG: 323065 FIXED-IN: 4.11.2 REVIEW: 112526 --- libkwineffects/kwingltexture.cpp | 72 ++++++++++++++++++++++---------- libkwineffects/kwingltexture.h | 5 +++ libkwineffects/kwingltexture_p.h | 4 +- paintredirector.cpp | 34 +-------------- paintredirector.h | 3 -- 5 files changed, 59 insertions(+), 59 deletions(-) diff --git a/libkwineffects/kwingltexture.cpp b/libkwineffects/kwingltexture.cpp index f6082d88f8..7423ed4a74 100644 --- a/libkwineffects/kwingltexture.cpp +++ b/libkwineffects/kwingltexture.cpp @@ -46,7 +46,10 @@ namespace KWin bool GLTexturePrivate::sNPOTTextureSupported = false; bool GLTexturePrivate::sFramebufferObjectSupported = false; bool GLTexturePrivate::sSaturationSupported = false; -bool GLTexturePrivate::sTextureFormatBGRA = false; +GLenum GLTexturePrivate::sTextureFormat = GL_RGBA; // custom dummy, GL_BGRA is not present on GLES +uint GLTexturePrivate::s_textureObjectCounter = 0; +uint GLTexturePrivate::s_fbo = 0; + GLTexture::GLTexture() : d_ptr(new GLTexturePrivate()) @@ -97,11 +100,8 @@ GLTexture::GLTexture(int width, int height) glGenTextures(1, &d->m_texture); bind(); #ifdef KWIN_HAVE_OPENGLES - if (GLTexturePrivate::sTextureFormatBGRA) { - glTexImage2D(d->m_target, 0, GL_BGRA_EXT, width, height, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, 0); - } else { - glTexImage2D(d->m_target, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0); - } + glTexImage2D(d->m_target, 0, GLTexturePrivate::sTextureFormat, width, height, + 0, GLTexturePrivate::sTextureFormat, GL_UNSIGNED_BYTE, 0); #else glTexImage2D(d->m_target, 0, GL_RGBA8, width, height, 0, GL_BGRA, GL_UNSIGNED_BYTE, 0); #endif @@ -133,6 +133,7 @@ GLTexturePrivate::GLTexturePrivate() m_vbo = 0; m_filterChanged = true; m_wrapModeChanged = false; + ++s_textureObjectCounter; } GLTexturePrivate::~GLTexturePrivate() @@ -143,6 +144,11 @@ GLTexturePrivate::~GLTexturePrivate() if (m_texture != 0) { glDeleteTextures(1, &m_texture); } + // Delete the FBO if this is the last Texture + if (--s_textureObjectCounter == 0 && s_fbo) { + glDeleteFramebuffers(1, &s_fbo); + s_fbo = 0; + } } void GLTexturePrivate::initStatic() @@ -151,14 +157,17 @@ void GLTexturePrivate::initStatic() sNPOTTextureSupported = true; sFramebufferObjectSupported = true; sSaturationSupported = true; - sTextureFormatBGRA = hasGLExtension("GL_EXT_texture_format_BGRA8888"); + if (hasGLExtension("GL_EXT_texture_format_BGRA8888")) + sTextureFormat = GL_BGRA_EXT; + else + sTextureFormat = GL_RGBA; #else sNPOTTextureSupported = hasGLExtension("GL_ARB_texture_non_power_of_two"); sFramebufferObjectSupported = hasGLExtension("GL_EXT_framebuffer_object"); sSaturationSupported = ((hasGLExtension("GL_ARB_texture_env_crossbar") && hasGLExtension("GL_ARB_texture_env_dot3")) || hasGLVersion(1, 4)) && (glTextureUnitsCount >= 4) && glActiveTexture != NULL; - sTextureFormatBGRA = true; + sTextureFormat = GL_BGRA; #endif } @@ -215,11 +224,8 @@ bool GLTexture::load(const QImage& image, GLenum target) } bind(); #ifdef KWIN_HAVE_OPENGLES - if (GLTexturePrivate::sTextureFormatBGRA) { - glTexImage2D(d->m_target, 0, GL_BGRA_EXT, img.width(), img.height(), 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, img.bits()); - } else { - glTexImage2D(d->m_target, 0, GL_RGBA, img.width(), img.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, img.bits()); - } + glTexImage2D(d->m_target, 0, GLTexturePrivate::sTextureFormat, img.width(), img.height(), + 0, GLTexturePrivate::sTextureFormat, GL_UNSIGNED_BYTE, img.bits()); #else glTexImage2D(d->m_target, 0, GL_RGBA8, img.width(), img.height(), 0, GL_BGRA, GL_UNSIGNED_BYTE, img.bits()); @@ -258,15 +264,8 @@ void GLTexture::update(const QImage &image, const QPoint &offset, const QRect &s const QImage &img = d->convertToGLFormat(tmpImage.isNull() ? image : tmpImage); bind(); -#ifdef KWIN_HAVE_OPENGLES - if (GLTexturePrivate::sTextureFormatBGRA) { - glTexSubImage2D(d->m_target, 0, offset.x(), offset.y(), width, height, GL_BGRA_EXT, GL_UNSIGNED_BYTE, img.bits()); - } else { - glTexSubImage2D(d->m_target, 0, offset.x(), offset.y(), width, height, GL_RGBA, GL_UNSIGNED_BYTE, img.bits()); - } -#else - glTexSubImage2D(d->m_target, 0, offset.x(), offset.y(), width, height, GL_BGRA, GL_UNSIGNED_BYTE, img.bits()); -#endif + glTexSubImage2D(d->m_target, 0, offset.x(), offset.y(), width, height, + GLTexturePrivate::sTextureFormat, GL_UNSIGNED_BYTE, img.bits()); checkGLError("update texture"); unbind(); setDirty(); @@ -428,6 +427,33 @@ GLenum GLTexture::filter() const return d->m_filter; } +void GLTexture::clear() +{ + Q_D(GLTexture); + if (!GLTexturePrivate::s_fbo && GLRenderTarget::supported() && + GLPlatform::instance()->driver() != Driver_Catalyst) // fail. -> bug #323065 + glGenFramebuffers(1, &GLTexturePrivate::s_fbo); + + if (GLTexturePrivate::s_fbo) { + // Clear the texture + glBindFramebuffer(GL_FRAMEBUFFER, GLTexturePrivate::s_fbo); + glClearColor(0, 0, 0, 0); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, d->m_texture, 0); + glClear(GL_COLOR_BUFFER_BIT); + glBindFramebuffer(GL_FRAMEBUFFER, 0); + } else { + if (const int size = width()*height()) { + uint32_t *buffer = new uint32_t[size]; + memset(buffer, 0, size*sizeof(uint32_t)); + bind(); + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width(), height(), + GLTexturePrivate::sTextureFormat, GL_UNSIGNED_BYTE, buffer); + unbind(); + delete[] buffer; + } + } +} + bool GLTexture::isDirty() const { Q_D(const GLTexture); @@ -470,7 +496,7 @@ QImage GLTexturePrivate::convertToGLFormat(const QImage& img) const // Copied from Qt's QGLWidget::convertToGLFormat() QImage res; - if (sTextureFormatBGRA) { + if (sTextureFormat != GL_RGBA) { if (QSysInfo::ByteOrder == QSysInfo::BigEndian) { res = QImage(img.size(), QImage::Format_ARGB32); QImage imgARGB32 = img.convertToFormat(QImage::Format_ARGB32_Premultiplied); diff --git a/libkwineffects/kwingltexture.h b/libkwineffects/kwingltexture.h index 18e0a80081..200d24f322 100644 --- a/libkwineffects/kwingltexture.h +++ b/libkwineffects/kwingltexture.h @@ -93,6 +93,11 @@ public: GLuint texture() const; GLenum target() const; GLenum filter() const; + /** @short + * Make the texture fully transparent + * Warning: this clobbers the current framebuffer binding except on fglrx + */ + void clear(); bool isDirty() const; void setFilter(GLenum filter); void setWrapMode(GLenum mode); diff --git a/libkwineffects/kwingltexture_p.h b/libkwineffects/kwingltexture_p.h index 2afc9aa7a4..0b57d9742b 100644 --- a/libkwineffects/kwingltexture_p.h +++ b/libkwineffects/kwingltexture_p.h @@ -73,7 +73,9 @@ public: static bool sNPOTTextureSupported; static bool sFramebufferObjectSupported; static bool sSaturationSupported; - static bool sTextureFormatBGRA; + static GLenum sTextureFormat; + static uint s_fbo; + static uint s_textureObjectCounter; private: Q_DISABLE_COPY(GLTexturePrivate) }; diff --git a/paintredirector.cpp b/paintredirector.cpp index 982ab6f58b..528827ea53 100644 --- a/paintredirector.cpp +++ b/paintredirector.cpp @@ -28,6 +28,7 @@ DEALINGS IN THE SOFTWARE. #include "client.h" #include "deleted.h" #include "effects.h" +#include #include #include #include @@ -310,21 +311,12 @@ void ImageBasedPaintRedirector::discardScratch() // ------------------------------------------------------------------ - -unsigned int OpenGLPaintRedirector::s_count = 0; -unsigned int OpenGLPaintRedirector::s_fbo = 0; - OpenGLPaintRedirector::OpenGLPaintRedirector(Client *c, QWidget *widget) : ImageBasedPaintRedirector(c, widget) { - s_count++; - for (int i = 0; i < TextureCount; ++i) m_textures[i] = NULL; - if (!s_fbo && GLRenderTarget::supported()) - glGenFramebuffers(1, &s_fbo); - PaintRedirector::resizePixmaps(); } @@ -332,12 +324,6 @@ OpenGLPaintRedirector::~OpenGLPaintRedirector() { for (int i = 0; i < TextureCount; ++i) delete m_textures[i]; - - // Delete the FBO if this is the last OpenGLPaintRedirector - if (--s_count == 0 && s_fbo) { - glDeleteFramebuffers(1, &s_fbo); - s_fbo = 0; - } } void OpenGLPaintRedirector::resizePixmaps(const QRect *rects) @@ -355,8 +341,6 @@ void OpenGLPaintRedirector::resizePixmaps(const QRect *rects) } } - bool fbo_bound = false; - for (int i = 0; i < 2; i++) { if (m_textures[i] && m_textures[i]->size() == size[i]) continue; @@ -370,22 +354,8 @@ void OpenGLPaintRedirector::resizePixmaps(const QRect *rects) m_textures[i] = new GLTexture(size[i].width(), size[i].height()); m_textures[i]->setYInverted(true); m_textures[i]->setWrapMode(GL_CLAMP_TO_EDGE); - - if (s_fbo) { - // Clear the texture - if (!fbo_bound) { - glBindFramebuffer(GL_FRAMEBUFFER, s_fbo); - glClearColor(0, 0, 0, 0); - fbo_bound = true; - } - - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_textures[i]->texture(), 0); - glClear(GL_COLOR_BUFFER_BIT); - } + m_textures[i]->clear(); } - - if (fbo_bound) - glBindFramebuffer(GL_FRAMEBUFFER, 0); } void OpenGLPaintRedirector::preparePaint(const QPixmap &pending) diff --git a/paintredirector.h b/paintredirector.h index fbc53042c5..be96f051e6 100644 --- a/paintredirector.h +++ b/paintredirector.h @@ -157,9 +157,6 @@ protected: private: QImage m_tempImage; GLTexture *m_textures[2]; - - static unsigned int s_fbo; - static unsigned int s_count; }; class NativeXRenderPaintRedirector : public PaintRedirector From 3eb0b27d00fc292413734b5701e423e2b29f7749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sat, 21 Sep 2013 00:42:21 +0200 Subject: [PATCH 39/39] windowgeometry effect, keep hint inside screen and use passed geometry parameter to position the labels (required with resize effect because the actual geometry is not updated) REVIEW: 112849 --- effects/windowgeometry/windowgeometry.cpp | 24 +++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/effects/windowgeometry/windowgeometry.cpp b/effects/windowgeometry/windowgeometry.cpp index fca5bda351..5f3176f1eb 100644 --- a/effects/windowgeometry/windowgeometry.cpp +++ b/effects/windowgeometry/windowgeometry.cpp @@ -150,8 +150,15 @@ void WindowGeometry::slotWindowStepUserMovedResized(EffectWindow *w, const QRect myExtraDirtyArea = QRect(); myCurrentGeometry = geometry; + QPoint center = geometry.center(); const QRect &r = geometry; const QRect &r2 = myOriginalGeometry; + const QRect screen = effects->clientArea(ScreenArea, center, w->desktop()); + QRect expandedGeometry = w->expandedGeometry(); + expandedGeometry = geometry.adjusted(expandedGeometry.x() - w->x(), + expandedGeometry.y() - w->y(), + expandedGeometry.right() - w->geometry().right(), + expandedGeometry.bottom() - w->geometry().bottom()); // sufficient for moves, resizes calculated otherwise int dx = r.x() - r2.x(); @@ -162,7 +169,9 @@ void WindowGeometry::slotWindowStepUserMovedResized(EffectWindow *w, const QRect myMeasure[0]->setText( i18nc(myCoordString_1, r.x(), r.y(), number(dx), number(dy) ) ); else myMeasure[0]->setText( i18nc(myCoordString_0, r.x(), r.y() ) ); - myMeasure[0]->setPosition(w->expandedGeometry().topLeft() + QPoint(6,6)); // "6" is magic number because the unstyled effectframe has 5px padding + QPoint pos = expandedGeometry.topLeft(); + pos = QPoint(qMax(pos.x(), screen.x()), qMax(pos.y(), screen.y())); + myMeasure[0]->setPosition(pos + QPoint(6,6)); // "6" is magic number because the unstyled effectframe has 5px padding // center ---------------------- if (w->isUserResize()) { @@ -183,15 +192,22 @@ void WindowGeometry::slotWindowStepUserMovedResized(EffectWindow *w, const QRect dy = r.bottom() - r2.bottom(); } else myMeasure[1]->setText( i18nc(myCoordString_0, number(dx), number(dy) ) ); - - myMeasure[1]->setPosition(geometry.center()); + const int cdx = myMeasure[1]->geometry().width() / 2 + 3; // "3" = 6/2 is magic number because + const int cdy = myMeasure[1]->geometry().height() / 2 + 3; // the unstyled effectframe has 5px padding + center = QPoint(qMax(center.x(), screen.x() + cdx), + qMax(center.y(), screen.y() + cdy)); + center = QPoint(qMin(center.x(), screen.right() - cdx), + qMin(center.y(), screen.bottom() - cdy)); + myMeasure[1]->setPosition(center); // lower right ---------------------- if (w->isUserResize()) myMeasure[2]->setText( i18nc(myCoordString_1, r.right(), r.bottom(), number(dx), number(dy) ) ); else myMeasure[2]->setText( i18nc(myCoordString_0, r.right(), r.bottom() ) ); - myMeasure[2]->setPosition(w->expandedGeometry().bottomRight() - QPoint(6,6)); // "6" is magic number because the unstyled effectframe has 5px padding + pos = expandedGeometry.bottomRight(); + pos = QPoint(qMin(pos.x(), screen.right()), qMin(pos.y(), screen.bottom())); + myMeasure[2]->setPosition(pos - QPoint(6,6)); // "6" is magic number because the unstyled effectframe has 5px padding myExtraDirtyArea |= myMeasure[0]->geometry(); myExtraDirtyArea |= myMeasure[1]->geometry();