Merge branch 'hotfix/3.5.6'
This commit is contained in:
commit
c65f6857e1
11
CHANGELOG.md
11
CHANGELOG.md
@ -1,4 +1,5 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
Each release should have the following subsections, if entries exist, in the
|
||||
given order: `Breaking`, `Build`, `Deprecated`, `Removed`, `Added`, `Changed`,
|
||||
@ -121,6 +122,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- `internal/backlight`: With amdgpu backlights, the brightness indicator was slightly behind.
|
||||
([`#2367](https://github.com/polybar/polybar/issues/2367))
|
||||
|
||||
## [3.5.6] - 2021-05-24
|
||||
### Build
|
||||
- Support building documentation on sphinx 4.0 ([`#2424`](https://github.com/polybar/polybar/issues/2424))
|
||||
### Fixed
|
||||
- Tray icons sometimes appears outside of bar ([`#2430`](https://github.com/polybar/polybar/issues/2430), [`#1679`](https://github.com/polybar/polybar/issues/1679))
|
||||
- Crash in the i3 module ([`#2416`](https://github.com/polybar/polybar/issues/2416))
|
||||
|
||||
## [3.5.5] - 2021-03-01
|
||||
### Build
|
||||
- Support older python sphinx versions again ([`#2356`](https://github.com/polybar/polybar/issues/2356))
|
||||
@ -135,7 +143,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
### Fixed
|
||||
- Empty color values are no longer treated as invalid and no longer produce an error.
|
||||
|
||||
[Unreleased]: https://github.com/polybar/polybar/compare/3.5.5...HEAD
|
||||
[Unreleased]: https://github.com/polybar/polybar/compare/3.5.6...HEAD
|
||||
[3.5.6]: https://github.com/polybar/polybar/releases/tag/3.5.6
|
||||
[3.5.5]: https://github.com/polybar/polybar/releases/tag/3.5.5
|
||||
[3.5.4]: https://github.com/polybar/polybar/releases/tag/3.5.4
|
||||
[3.5.3]: https://github.com/polybar/polybar/releases/tag/3.5.3
|
||||
|
@ -185,6 +185,9 @@ man_pages = [
|
||||
('man/polybar.5', 'polybar', 'configuration file for polybar(1)', [], 5)
|
||||
]
|
||||
|
||||
man_make_section_directory = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output ----------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
|
@ -1,9 +1,10 @@
|
||||
#include "x11/tray_client.hpp"
|
||||
|
||||
#include <xcb/xcb.h>
|
||||
#include <xcb/xcb_aux.h>
|
||||
|
||||
#include "utils/memory.hpp"
|
||||
#include "x11/connection.hpp"
|
||||
#include "x11/tray_client.hpp"
|
||||
#include "x11/xembed.hpp"
|
||||
|
||||
POLYBAR_NS
|
||||
@ -28,11 +29,7 @@ unsigned int tray_client::height() const {
|
||||
}
|
||||
|
||||
void tray_client::clear_window() const {
|
||||
try {
|
||||
m_connection.clear_area_checked(1, window(), 0, 0, width(), height());
|
||||
} catch (const xpp::x::error::window& err) {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -427,14 +427,22 @@ void tray_manager::refresh_window() {
|
||||
m_connection.poly_fill_rectangle(m_pixmap, m_gc, 1, &rect);
|
||||
}
|
||||
|
||||
if (m_surface)
|
||||
if (m_surface) {
|
||||
m_surface->flush();
|
||||
}
|
||||
|
||||
m_connection.clear_area(0, m_tray, 0, 0, width, height);
|
||||
|
||||
for (auto&& client : m_clients) {
|
||||
try {
|
||||
if (client->mapped()) {
|
||||
client->clear_window();
|
||||
}
|
||||
} catch (const std::exception& e) {
|
||||
m_log.err("Failed to clear tray client %s '%s' (%s)", m_connection.id(client->window()),
|
||||
ewmh_util::get_wm_name(client->window()), e.what());
|
||||
}
|
||||
}
|
||||
|
||||
m_connection.flush();
|
||||
|
||||
@ -726,7 +734,7 @@ void tray_manager::track_selection_owner(xcb_window_t owner) {
|
||||
* Process client docking request
|
||||
*/
|
||||
void tray_manager::process_docking_request(xcb_window_t win) {
|
||||
m_log.info("Processing docking request from %s", m_connection.id(win));
|
||||
m_log.info("Processing docking request from '%s' (%s)", ewmh_util::get_wm_name(win), m_connection.id(win));
|
||||
|
||||
m_clients.emplace_back(factory_util::shared<tray_client>(m_connection, win, m_opts.width, m_opts.height));
|
||||
auto& client = m_clients.back();
|
||||
@ -734,18 +742,15 @@ void tray_manager::process_docking_request(xcb_window_t win) {
|
||||
try {
|
||||
m_log.trace("tray: Get client _XEMBED_INFO");
|
||||
xembed::query(m_connection, win, client->xembed());
|
||||
} catch (const application_error& err) {
|
||||
m_log.err(err.what());
|
||||
} catch (const xpp::x::error::window& err) {
|
||||
} catch (const std::exception& err) {
|
||||
m_log.err("Failed to query _XEMBED_INFO, removing client... (%s)", err.what());
|
||||
remove_client(win, true);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const unsigned int mask{XCB_CW_BACK_PIXMAP | XCB_CW_EVENT_MASK};
|
||||
const unsigned int values[]{
|
||||
XCB_BACK_PIXMAP_PARENT_RELATIVE, XCB_EVENT_MASK_PROPERTY_CHANGE | XCB_EVENT_MASK_STRUCTURE_NOTIFY};
|
||||
const unsigned int mask = XCB_CW_EVENT_MASK;
|
||||
const unsigned int values[]{XCB_EVENT_MASK_PROPERTY_CHANGE | XCB_EVENT_MASK_STRUCTURE_NOTIFY};
|
||||
|
||||
m_log.trace("tray: Update client window");
|
||||
m_connection.change_window_attributes_checked(client->window(), mask, values);
|
||||
@ -767,8 +772,9 @@ void tray_manager::process_docking_request(xcb_window_t win) {
|
||||
m_log.trace("tray: Map client");
|
||||
m_connection.map_window_checked(client->window());
|
||||
}
|
||||
} catch (const xpp::x::error::window& err) {
|
||||
m_log.err("Failed to setup tray client, removing... (%s)", err.what());
|
||||
|
||||
} catch (const std::exception& err) {
|
||||
m_log.err("Failed to setup tray client removing... (%s)", err.what());
|
||||
remove_client(win, false);
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Polybar version information
|
||||
# Update this on every release
|
||||
# This is used to create the version string if a git repo is not available
|
||||
3.5.5
|
||||
3.5.6
|
||||
|
Loading…
Reference in New Issue
Block a user