From 9e5de2954c908a2672b9bf2bc58838c74cf33ded Mon Sep 17 00:00:00 2001 From: Mavridis Philippe Date: Sun, 17 Apr 2022 18:02:16 +0300 Subject: [PATCH] Konsole: real transparency switch Signed-off-by: Mavridis Philippe (cherry picked from commit ee161dcf9e675d5103c2f43dec492f4e7190aca8) --- kcontrol/konsole/kcmkonsole.cpp | 11 +++++++++++ kcontrol/konsole/kcmkonsole.h | 1 + kcontrol/konsole/kcmkonsoledialog.ui | 22 +++++++++++++++------- konsole/konsole/konsole.cpp | 20 +++++++++++++++----- konsole/konsole/konsole.h | 1 + 5 files changed, 43 insertions(+), 12 deletions(-) diff --git a/kcontrol/konsole/kcmkonsole.cpp b/kcontrol/konsole/kcmkonsole.cpp index ace7409a7..7dfb77dae 100644 --- a/kcontrol/konsole/kcmkonsole.cpp +++ b/kcontrol/konsole/kcmkonsole.cpp @@ -74,6 +74,7 @@ KCMKonsole::KCMKonsole(TQWidget * parent, const char *name, const TQStringList&) connect(dialog->tabsCycleWheelCB,TQT_SIGNAL(toggled(bool)), TQT_SLOT( changed() )); connect(dialog->menuAcceleratorsCB,TQT_SIGNAL(toggled(bool)), TQT_SLOT( changed() )); connect(dialog->metaAsAltModeCB,TQT_SIGNAL(toggled(bool)), TQT_SLOT( changed() )); + connect(dialog->realTransparency,TQT_SIGNAL(toggled(bool)), TQT_SLOT( changed() )); connect(dialog->silence_secondsSB,TQT_SIGNAL(valueChanged(int)), TQT_SLOT( changed() )); connect(dialog->word_connectorLE,TQT_SIGNAL(textChanged(const TQString &)), TQT_SLOT( changed() )); connect(dialog->SchemaEditor1, TQT_SIGNAL(changed()), TQT_SLOT( changed() )); @@ -112,6 +113,8 @@ void KCMKonsole::load(bool useDefaults) dialog->silence_secondsSB->setValue(config.readUnsignedNumEntry( "SilenceSeconds", 10 )); dialog->word_connectorLE->setText(config.readEntry("wordseps",":@-./_~")); dialog->metaAsAltModeCB->setChecked(config.readBoolEntry("metaAsAltMode",false)); + realTransparencyOrig = config.readBoolEntry("RealTransparency",false); + dialog->realTransparency->setChecked(realTransparencyOrig); dialog->SchemaEditor1->setSchema(config.readEntry("schema")); @@ -153,6 +156,8 @@ void KCMKonsole::save() config.writeEntry("SilenceSeconds" , dialog->silence_secondsSB->value()); config.writeEntry("wordseps", dialog->word_connectorLE->text()); config.writeEntry("metaAsAltMode", dialog->metaAsAltModeCB->isChecked()); + bool realTransparencyNew = dialog->realTransparency->isChecked(); + config.writeEntry("RealTransparency", realTransparencyNew); config.writeEntry("schema", dialog->SchemaEditor1->schema()); @@ -174,6 +179,12 @@ void KCMKonsole::save() "settings of existing Konsole sessions.")); } + if (realTransparencyOrig != realTransparencyNew) + { + KMessageBox::information(this, i18n("The real transparency setting will only affect " + "newly started Konsole sessions.\n")); + } + if (bidiNew && !bidiOrig) { KMessageBox::information(this, i18n("You have chosen to enable " diff --git a/kcontrol/konsole/kcmkonsole.h b/kcontrol/konsole/kcmkonsole.h index 561cb4502..abdd4cc76 100644 --- a/kcontrol/konsole/kcmkonsole.h +++ b/kcontrol/konsole/kcmkonsole.h @@ -40,6 +40,7 @@ public: private: KCMKonsoleDialog *dialog; bool xonXoffOrig; + bool realTransparencyOrig; bool bidiOrig; }; diff --git a/kcontrol/konsole/kcmkonsoledialog.ui b/kcontrol/konsole/kcmkonsoledialog.ui index fea9ad139..a94a1b48b 100644 --- a/kcontrol/konsole/kcmkonsoledialog.ui +++ b/kcontrol/konsole/kcmkonsoledialog.ui @@ -174,7 +174,15 @@ Handle Meta &key as Alt Key - + + + realTransparency + + + Use &real transparency + + + TextLabel1_4 @@ -193,7 +201,7 @@ line_spacingSB - + Spacer3 @@ -210,7 +218,7 @@ - + line_spacingSB @@ -246,7 +254,7 @@ - + SilenceLabel @@ -265,7 +273,7 @@ silence_secondsSB - + silence_secondsSB @@ -284,7 +292,7 @@ unnamed - + TextLabel1_3 @@ -295,7 +303,7 @@ word_connectorLE - + word_connectorLE diff --git a/konsole/konsole/konsole.cpp b/konsole/konsole/konsole.cpp index b6d5e1c69..4faef5239 100644 --- a/konsole/konsole/konsole.cpp +++ b/konsole/konsole/konsole.cpp @@ -266,6 +266,7 @@ Konsole::Konsole(const char* name, int histon, bool menubaron, bool tabbaron, bo ,b_installBitmapFonts(false) ,b_framevis(true) ,b_metaAsAlt(false) +,b_realTransparency(false) ,b_fullscreen(false) ,m_menuCreated(false) ,b_warnQuit(false) @@ -361,11 +362,6 @@ Konsole::Konsole(const char* name, int histon, bool menubaron, bool tabbaron, bo // connect(kapp, TQT_SIGNAL(tdedisplayFontChanged()), this, TQT_SLOT(slotFontChanged())); kapp->dcopClient()->setDefaultObject( "konsole" ); - - // Signal that we want to be transparent to the desktop, not to windows behind us... - Atom kde_wm_transparent_to_desktop; - kde_wm_transparent_to_desktop = XInternAtom(tqt_xdisplay(), "_TDE_TRANSPARENT_TO_DESKTOP", False); - XChangeProperty(tqt_xdisplay(), winId(), kde_wm_transparent_to_desktop, XA_INTEGER, 32, PropModeReplace, (unsigned char *) "TRUE", 1L); } @@ -1616,6 +1612,20 @@ void Konsole::readProperties(TDEConfig* config, const TQString &schema, bool glo s_word_seps= config->readEntry("wordseps",":@-./_~"); b_framevis = config->readBoolEntry("has frame",true); b_metaAsAlt = config->readBoolEntry("metaAsAltMode",false); + b_realTransparency = config->readBoolEntry("RealTransparency",false); + + Atom kde_wm_transparent_to_desktop; + kde_wm_transparent_to_desktop = XInternAtom(tqt_xdisplay(), "_TDE_TRANSPARENT_TO_DESKTOP", False); + if (b_realTransparency) + { + XDeleteProperty(tqt_xdisplay(), winId(), kde_wm_transparent_to_desktop); + } + else + { + // Signal that we want to be transparent to the desktop, not to windows behind us... + XChangeProperty(tqt_xdisplay(), winId(), kde_wm_transparent_to_desktop, XA_INTEGER, 32, PropModeReplace, (unsigned char *) "TRUE", 1L); + } + TQPtrList tes = activeTEs(); for (TEWidget *_te = tes.first(); _te; _te = tes.next()) { _te->setWordCharacters(s_word_seps); diff --git a/konsole/konsole/konsole.h b/konsole/konsole/konsole.h index 30ca6e5a1..fff364eb7 100644 --- a/konsole/konsole/konsole.h +++ b/konsole/konsole/konsole.h @@ -428,6 +428,7 @@ private: bool b_framevis:1; bool b_metaAsAlt:1; + bool b_realTransparency:1; bool b_fullscreen:1; bool m_menuCreated:1; bool b_warnQuit:1;