From 3e614f2c1e0005f34af4f216ad315b662623fcf2 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Thu, 31 Mar 2022 17:25:23 +0200 Subject: Draw the drag icon --- src/render/Renderer.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/render/Renderer.cpp') diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 7eda6296..a7babdd9 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -78,6 +78,8 @@ void CHyprRenderer::renderWorkspaceWithFullscreenWindow(SMonitor* pMonitor, SWor renderWindow(&w, pMonitor, time, true); } + + renderDragIcon(pMonitor, time); } void CHyprRenderer::renderWindow(CWindow* pWindow, SMonitor* pMonitor, timespec* time, bool decorate) { @@ -167,6 +169,8 @@ void CHyprRenderer::renderAllClientsForMonitor(const int& ID, timespec* time) { SRenderData renderdata = {PMONITOR->output, time, ls->geometry.x, ls->geometry.y}; wlr_surface_for_each_surface(ls->layerSurface->surface, renderSurface, &renderdata); } + + renderDragIcon(PMONITOR, time); } void CHyprRenderer::outputMgrApplyTest(wlr_output_configuration_v1* config, bool test) { @@ -461,4 +465,16 @@ void CHyprRenderer::damageSurface(SMonitor* pMonitor, double x, double y, wlr_su }; wlr_surface_for_each_surface(pSurface, damageSurfaceIter, &renderData); +} + +void CHyprRenderer::renderDragIcon(SMonitor* pMonitor, timespec* time) { + if (!(g_pInputManager->m_sDrag.dragIcon && g_pInputManager->m_sDrag.iconMapped && g_pInputManager->m_sDrag.dragIcon->surface)) + return; + + SRenderData renderdata = {pMonitor->output, time, g_pInputManager->m_sDrag.pos.x, g_pInputManager->m_sDrag.pos.y}; + renderdata.surface = g_pInputManager->m_sDrag.dragIcon->surface; + renderdata.w = g_pInputManager->m_sDrag.dragIcon->surface->current.width; + renderdata.h = g_pInputManager->m_sDrag.dragIcon->surface->current.height; + + wlr_surface_for_each_surface(g_pInputManager->m_sDrag.dragIcon->surface, renderSurface, &renderdata); } \ No newline at end of file -- cgit v1.2.3