Implement "reverse-direction"

This commit is contained in:
Pol Rivero
2025-08-18 20:46:02 +02:00
parent 83f16a2092
commit 691b7d427b
4 changed files with 21 additions and 2 deletions

View File

@@ -259,9 +259,9 @@ void Workspace::updateTaskbar(const std::string &workspace_icon) {
}
bool isFirst = true;
for (const auto &window_repr : m_windowMap) {
auto processWindow = [&](const WindowRepr &window_repr) {
if (shouldSkipWindow(window_repr)) {
continue;
return; // skip
}
if (isFirst) {
isFirst = false;
@@ -270,6 +270,7 @@ void Workspace::updateTaskbar(const std::string &workspace_icon) {
m_content.pack_start(*windowSeparator, false, false);
windowSeparator->show();
}
auto window_box = Gtk::make_managed<Gtk::Box>(Gtk::ORIENTATION_HORIZONTAL);
window_box->set_tooltip_text(window_repr.window_title);
window_box->get_style_context()->add_class("taskbar-window");
@@ -307,6 +308,16 @@ void Workspace::updateTaskbar(const std::string &workspace_icon) {
m_content.pack_start(*event_box, true, false);
event_box->show_all();
};
if (m_workspaceManager.taskbarReverseDirection()) {
for (auto it = m_windowMap.rbegin(); it != m_windowMap.rend(); ++it) {
processWindow(*it);
}
} else {
for (const auto &window_repr : m_windowMap) {
processWindow(window_repr);
}
}
auto formatAfter = m_workspaceManager.formatAfter();