This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch feature/rootless-mode in repository x2gokdriveclient. from 5120c07 Cursor, icon handling, min size new 9d1e363 Handling WM_DELETE_WINDOW The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: client.cpp | 14 +++++++++++++- client.h | 2 ++ displayarea.cpp | 3 ++- extwin.cpp | 16 +++++++++++++++- extwin.h | 1 + 5 files changed, 33 insertions(+), 3 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2gokdriveclient.git
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 9d1e3636e771304325a3e272b587d36be2f6ce4c Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Wed Feb 9 10:40:24 2022 -0600 Handling WM_DELETE_WINDOW --- client.cpp | 14 +++++++++++++- client.h | 2 ++ displayarea.cpp | 3 ++- extwin.cpp | 16 +++++++++++++++- extwin.h | 1 + 5 files changed, 33 insertions(+), 3 deletions(-) diff --git a/client.cpp b/client.cpp index 798bd14..0d447b2 100644 --- a/client.cpp +++ b/client.cpp @@ -1919,7 +1919,19 @@ void Client::changeWindow(ExtWin* win) memcpy(evmsg+18,(char*)&h,2); memcpy(evmsg+20,(char*)&focus,1); sendEvent(evmsg); -// QTimer::singleShot(1,win,SLOT(update())); + // QTimer::singleShot(1,win,SLOT(update())); +} + +//request window closing +void Client::closeWindow(ExtWin* win) +{ + char evmsg[EVLENGTH]{}; + uint32_t etype; + uint32_t extWinId=win->getExtWinId(); + etype=WINCLOSE; + memcpy(evmsg,(char*)&etype,4); + memcpy(evmsg+4,(char*)&extWinId,4); + sendEvent(evmsg); } //requesting on demand selection diff --git a/client.h b/client.h index 9e98cc0..976c815 100644 --- a/client.h +++ b/client.h @@ -62,6 +62,7 @@ enum OS_VERSION{OS_LINUX, OS_WINDOWS, OS_DARWIN}; #define KEEPALIVE 12 #define CACHEREBUILD 13 #define WINCHANGE 14 +#define WINCLOSE 15 #define ShiftMask (1<<0) #define LockMask (1<<1) @@ -195,6 +196,7 @@ public: static QString QRectToStr(const QRect& rec); static QString QSizeToStr(const QSizeF& sz); void changeWindow(ExtWin* win); + void closeWindow(ExtWin* win); bool isRootless(){return rootless;} const QList<ExtWin*> getExtWindows(){return extWindows;} const QList<ExtWin*> getSiblings(ExtWin* win); diff --git a/displayarea.cpp b/displayarea.cpp index de09197..444a758 100644 --- a/displayarea.cpp +++ b/displayarea.cpp @@ -91,7 +91,8 @@ DisplayArea::DisplayArea(Client* client, QWidget* parentWidget):QFrame(parentWid this->parentWidget=parentWidget; setMouseTracking(true); setFocusPolicy(Qt::StrongFocus); - grabKeyboard(); + if(!client->isRootless()) + grabKeyboard(); } diff --git a/extwin.cpp b/extwin.cpp index 14230f3..5d99b66 100644 --- a/extwin.cpp +++ b/extwin.cpp @@ -22,6 +22,8 @@ #include "client.h" #include <QApplication> #include <QTimer> +#include <QCloseEvent> + ExtWin::ExtWin(uint32_t extWinId, Client *client, QWidget* parent, Qt::WindowFlags flags): QMainWindow(parent, flags) { displayArea=new DisplayArea((Client*)client,this); @@ -69,6 +71,15 @@ void ExtWin::moveEvent(QMoveEvent* ev) QMainWindow::moveEvent(ev); } +void ExtWin::closeEvent(QCloseEvent* ev) +{ + if((windowType == WINDOW_TYPE_NORMAL)||(windowType == WINDOW_TYPE_DIALOG)) + { + Client::KDRStdErr()<<"Request window close "; + client->closeWindow(this); + ev->ignore(); + } +} void ExtWin::resizeEvent(QResizeEvent* ev) { @@ -88,8 +99,11 @@ void ExtWin::showEvent(QShowEvent *ev) void ExtWin::hideEvent(QHideEvent *ev) { - Client::KDRStdErr()<<"Hide "<<Client::QRectToStr(geometry())<<KDR_ENDL; QMainWindow::hideEvent(ev); + if(isMinimized()) + { + Client::KDRStdErr()<<"Minimized "<<Client::QRectToStr(geometry())<<KDR_ENDL; + } } void ExtWin::focusInEvent(QFocusEvent *ev) diff --git a/extwin.h b/extwin.h index 74047f2..f13279a 100644 --- a/extwin.h +++ b/extwin.h @@ -72,6 +72,7 @@ private slots: void slotCheckStackOrder(); protected: + void closeEvent(QCloseEvent*); void resizeEvent(QResizeEvent*); void moveEvent(QMoveEvent*); void showEvent(QShowEvent *event); -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2gokdriveclient.git