forked from quickshell/quickshell
i3/ipc: provide default sorting for workspaces
This commit is contained in:
parent
d6a4ebc742
commit
2028766e61
2 changed files with 8 additions and 2 deletions
|
@ -247,7 +247,7 @@ void I3Ipc::handleGetWorkspacesEvent(I3IpcEvent* event) {
|
||||||
workspace->updateFromObject(object);
|
workspace->updateFromObject(object);
|
||||||
|
|
||||||
if (!existed) {
|
if (!existed) {
|
||||||
this->mWorkspaces.insertObject(workspace);
|
this->mWorkspaces.insertObjectSorted(workspace, &I3Ipc::compareWorkspaces);
|
||||||
}
|
}
|
||||||
|
|
||||||
names.push_back(name);
|
names.push_back(name);
|
||||||
|
@ -379,7 +379,7 @@ void I3Ipc::handleWorkspaceEvent(I3IpcEvent* event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!existed) {
|
if (!existed) {
|
||||||
this->mWorkspaces.insertObject(workspace);
|
this->mWorkspaces.insertObjectSorted(workspace, &I3Ipc::compareWorkspaces);
|
||||||
qCInfo(logI3Ipc) << "Added workspace" << workspace->bindableName().value() << "to list";
|
qCInfo(logI3Ipc) << "Added workspace" << workspace->bindableName().value() << "to list";
|
||||||
}
|
}
|
||||||
} else if (change == "focus") {
|
} else if (change == "focus") {
|
||||||
|
@ -478,6 +478,10 @@ I3Monitor* I3Ipc::findMonitorByName(const QString& name) {
|
||||||
ObjectModel<I3Monitor>* I3Ipc::monitors() { return &this->mMonitors; }
|
ObjectModel<I3Monitor>* I3Ipc::monitors() { return &this->mMonitors; }
|
||||||
ObjectModel<I3Workspace>* I3Ipc::workspaces() { return &this->mWorkspaces; }
|
ObjectModel<I3Workspace>* I3Ipc::workspaces() { return &this->mWorkspaces; }
|
||||||
|
|
||||||
|
bool I3Ipc::compareWorkspaces(I3Workspace* a, I3Workspace* b) {
|
||||||
|
return a->bindableNumber().value() > b->bindableNumber().value();
|
||||||
|
}
|
||||||
|
|
||||||
QString I3IpcEvent::type() const { return I3IpcEvent::eventToString(this->mCode); }
|
QString I3IpcEvent::type() const { return I3IpcEvent::eventToString(this->mCode); }
|
||||||
QString I3IpcEvent::data() const { return QString::fromUtf8(this->mData.toJson()); }
|
QString I3IpcEvent::data() const { return QString::fromUtf8(this->mData.toJson()); }
|
||||||
|
|
||||||
|
|
|
@ -109,6 +109,7 @@ public:
|
||||||
|
|
||||||
[[nodiscard]] ObjectModel<I3Monitor>* monitors();
|
[[nodiscard]] ObjectModel<I3Monitor>* monitors();
|
||||||
[[nodiscard]] ObjectModel<I3Workspace>* workspaces();
|
[[nodiscard]] ObjectModel<I3Workspace>* workspaces();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void connected();
|
void connected();
|
||||||
void rawEvent(I3IpcEvent* event);
|
void rawEvent(I3IpcEvent* event);
|
||||||
|
@ -132,6 +133,7 @@ private:
|
||||||
void handleGetWorkspacesEvent(I3IpcEvent* event);
|
void handleGetWorkspacesEvent(I3IpcEvent* event);
|
||||||
void handleGetOutputsEvent(I3IpcEvent* event);
|
void handleGetOutputsEvent(I3IpcEvent* event);
|
||||||
static void handleRunCommand(I3IpcEvent* event);
|
static void handleRunCommand(I3IpcEvent* event);
|
||||||
|
static bool compareWorkspaces(I3Workspace* a, I3Workspace* b);
|
||||||
|
|
||||||
void reconnectIPC();
|
void reconnectIPC();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue