diff --git a/share/ui/statusbar.ui b/share/ui/statusbar.ui
index 19e23db1395badc6008879f93a31c4feac48cdf1..524a6d693a5bd42fc6384f1d435f59b7fc2e212a 100644
--- a/share/ui/statusbar.ui
+++ b/share/ui/statusbar.ui
@@ -59,16 +59,30 @@
-
diff --git a/src/desktop.cpp b/src/desktop.cpp
index a51218a275cdd70bf776b5826c67f1378bb54feb..7508bc7c74b6070203f01112e1c61ed5b170bd03 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -111,7 +111,10 @@ SPDesktop::SPDesktop()
_tips_message_context = std::make_unique(_message_stack);
_message_changed_connection = _message_stack->connectChanged([this](auto const type, auto const message) {
- onStatusMessage(type, message);
+ _message_idle_connection = Glib::signal_idle().connect([=, this](){
+ onStatusMessage(type, message);
+ return false;
+ }, Glib::PRIORITY_HIGH);
});
}
diff --git a/src/desktop.h b/src/desktop.h
index 807785d64608536d66c7b019f9993120f0474f39..6ab2e24af6691070f9f63bbfe65e675aaab31dac 100644
--- a/src/desktop.h
+++ b/src/desktop.h
@@ -170,6 +170,7 @@ private:
std::unique_ptr _tips_message_context;
Inkscape::auto_connection _message_changed_connection;
+ Inkscape::auto_connection _message_idle_connection;
Inkscape::auto_connection _document_uri_set_connection;
// End Formerly in View::View ^^^^^^^^^^^^^^^^^^
diff --git a/src/ui/widget/status-bar.cpp b/src/ui/widget/status-bar.cpp
index 2980fdd5aefb83122f2df24886140b69b551af9c..ca46b060964d04f09e3bad5a092921f1db0f3b4d 100644
--- a/src/ui/widget/status-bar.cpp
+++ b/src/ui/widget/status-bar.cpp
@@ -171,20 +171,18 @@ StatusBar::set_desktop(SPDesktop* desktop_in)
void
StatusBar::set_message(const Inkscape::MessageType type, const char* message)
{
+Glib::ustring msg = message ? message : "";
+#ifndef _WIN32
#if PANGO_VERSION_CHECK(1,50,0)
- auto const msg = Glib::ustring::compose("%1", message ? message : "");
- selection->set_markup(msg.c_str());
-#else
- selection->set_markup(message ? message : "");
+ // line height give delays on windows so better uset, also is not necesary label is well placed without
+ msg = Glib::ustring("") + msg + "";
#endif
-
- // Display important messages immediately!
- if (type == Inkscape::IMMEDIATE_MESSAGE && selection->is_drawable()) {
- selection->queue_draw();
- }
-
+#endif
+
+ selection->set_markup(msg);
// Allow user to view the entire message even if it doesn't fit into label (after removing markup).
selection->set_tooltip_text(selection->get_text());
+
}
void