[X2Go-Commits] [x2gokdriveclient] 01/01: Show in Windows taskbar only normal and dialog windows.

git-admin at x2go.org git-admin at x2go.org
Wed Feb 16 21:11:36 CET 2022


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch feature/rootless-mode
in repository x2gokdriveclient.

commit 7146a6f77a3df917693adfe8fee645bd97b9a3fd
Author: Oleksandr Shneyder <o.shneyder at phoca-gmbh.de>
Date:   Wed Feb 16 14:11:29 2022 -0600

    Show in Windows taskbar only normal and dialog windows.
---
 client.cpp |  5 ++---
 extwin.cpp | 22 ++++++++++++++++++++--
 extwin.h   |  6 ++++--
 3 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/client.cpp b/client.cpp
index b19b3fd..40bdbc7 100644
--- a/client.cpp
+++ b/client.cpp
@@ -1252,7 +1252,7 @@ void Client::getWinUpdateBuffer()
                 if(parId==0)
                 {
 //                     KDRStdErr()<<"win is top window: "<<KDR_HEX<<parId;
-                    win=new ExtWin(extWinId,this, 0, flags);
+                    win=new ExtWin(extWinId,this, 0, winType, flags);
                     win->setParent(0);
                 }
                 else
@@ -1264,7 +1264,7 @@ void Client::getWinUpdateBuffer()
                         KDRStdErr()<<"parent Win not found in list: "<<KDR_HEX<<parId;
                         parentWin=(ExtWin*) this;
                     }
-                    win=new ExtWin(extWinId,this, 0,flags);
+                    win=new ExtWin(extWinId,this, 0, winType, flags);
                     win->setParent(0);
                 }
                 if(transWinId)
@@ -1288,7 +1288,6 @@ void Client::getWinUpdateBuffer()
                 }
 //                 KDRStdErr()<<"my Geometry: "<<KDR_HEX<<QRectToStr(win->geometry());
 
-                win->setWindowType(winType);
 
                 win->setParentId(parId);
 //                 KDRStdErr()<<"Place above"<<KDR_HEX<<nextSibPtr;
diff --git a/extwin.cpp b/extwin.cpp
index dab59d6..14c3e24 100644
--- a/extwin.cpp
+++ b/extwin.cpp
@@ -26,7 +26,7 @@
 #include <QScreen>
 
 
-ExtWin::ExtWin(uint32_t extWinId, Client *client, QWidget* parent, Qt::WindowFlags flags): QMainWindow(parent, flags)
+ExtWin::ExtWin(uint32_t extWinId, Client *client, QWidget* parent, uint8_t wt, Qt::WindowFlags flags): QMainWindow(parent, flags)
 {
     displayArea=new DisplayArea((Client*)client,this);
     displayArea->setObjectName("DisplayArea");
@@ -36,7 +36,11 @@ ExtWin::ExtWin(uint32_t extWinId, Client *client, QWidget* parent, Qt::WindowFla
     setWindowIcon(QIcon(":res/x2goclient.png"));
     this->extWinId=extWinId;
     this->client=client;
-//     QTimer::singleShot(10,this,SLOT(update()));
+    windowType=wt;
+#ifdef Q_OS_WIN
+    if((windowType!=WINDOW_TYPE_NORMAL) && (windowType!=WINDOW_TYPE_DIALOG))
+        QTimer::singleShot(10,this,SLOT(slotSetTaskbar()));
+#endif
 #ifdef Q_OS_LINUX
     switch(windowType)
     {
@@ -60,6 +64,20 @@ ExtWin::ExtWin(uint32_t extWinId, Client *client, QWidget* parent, Qt::WindowFla
     setFocusPolicy(Qt::NoFocus);
 }
 
+#ifdef Q_OS_WIN
+void ExtWin::slotSetTaskbar()
+{
+    HWND hWnd=(HWND)winId();
+//     Client::KDRStdErr()<<"HWND "<<hWnd<<KDR_ENDL;
+    if(hWnd)
+    {
+        long style= GetWindowLong(hWnd, GWL_EXSTYLE);
+        style |= WS_EX_TOOLWINDOW;
+        SetWindowLong(hWnd, GWL_EXSTYLE, style);
+    }
+}
+#endif
+
 void ExtWin::setWinSize(int w, int h)
 {
     displayArea->resize(w,h);
diff --git a/extwin.h b/extwin.h
index 7bf6c4f..c87b982 100644
--- a/extwin.h
+++ b/extwin.h
@@ -34,7 +34,7 @@ class ExtWin : public QMainWindow
     Q_OBJECT
 public:
     enum {MOD_NONE,MOD_SINGLE, MOD_GROUP};
-    ExtWin(uint32_t extWinId, Client *client, QWidget* parent, Qt::WindowFlags flags = Qt::WindowFlags());
+    ExtWin(uint32_t extWinId, Client *client, QWidget* parent, uint8_t wt, Qt::WindowFlags flags = Qt::WindowFlags());
     uint32_t getPtr(){return extWinId;}
     void setWinSize(int w, int h);
     void setParentId(uint32_t id){parentId=id;}
@@ -78,7 +78,9 @@ private:
 
 private slots:
     void slotCheckStackOrder();
-
+#ifdef Q_OS_WIN
+    void slotSetTaskbar();
+#endif
 protected:
     void closeEvent(QCloseEvent*);
     void resizeEvent(QResizeEvent*);

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2gokdriveclient.git


More information about the x2go-commits mailing list