Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--intern/ghost/intern/GHOST_SystemWayland.cpp2
-rw-r--r--intern/ghost/intern/GHOST_WindowWayland.cpp9
2 files changed, 9 insertions, 2 deletions
diff --git a/intern/ghost/intern/GHOST_SystemWayland.cpp b/intern/ghost/intern/GHOST_SystemWayland.cpp
index 57b1a9bb434..13357a3d31a 100644
--- a/intern/ghost/intern/GHOST_SystemWayland.cpp
+++ b/intern/ghost/intern/GHOST_SystemWayland.cpp
@@ -2727,8 +2727,6 @@ static void output_handle_scale(void *data, struct wl_output * /*wl_output*/, co
for (GHOST_IWindow *iwin : window_manager->getWindows()) {
GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(iwin);
win->outputs_changed_update_scale();
- /* TODO(@campbellbarton): support refreshing the UI when the DPI changes.
- * There are glitches when resizing the monitor which would be nice to solve. */
}
}
}
diff --git a/intern/ghost/intern/GHOST_WindowWayland.cpp b/intern/ghost/intern/GHOST_WindowWayland.cpp
index e303bd5b6aa..d06ec872eca 100644
--- a/intern/ghost/intern/GHOST_WindowWayland.cpp
+++ b/intern/ghost/intern/GHOST_WindowWayland.cpp
@@ -935,6 +935,9 @@ GHOST_TSuccess GHOST_WindowWayland::notify_size()
* Functionality only used for the WAYLAND implementation.
* \{ */
+/**
+ * Return true when the windows scale or DPI changes.
+ */
bool GHOST_WindowWayland::outputs_changed_update_scale()
{
uint32_t dpi_next;
@@ -963,6 +966,12 @@ bool GHOST_WindowWayland::outputs_changed_update_scale()
* use a multiplier for the default DPI as workaround. */
win->dpi = dpi_next;
changed = true;
+
+ /* As this is a low-level function, we might want adding this event to be optional,
+ * always add the event unless it causes issues. */
+ GHOST_System *system = (GHOST_System *)GHOST_ISystem::getSystem();
+ system->pushEvent(
+ new GHOST_Event(system->getMilliSeconds(), GHOST_kEventWindowDPIHintChanged, this));
}
return changed;