diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-03-31 17:25:23 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-03-31 17:25:23 +0200 |
| commit | 3e614f2c1e0005f34af4f216ad315b662623fcf2 (patch) | |
| tree | f518cd5b6d807e641d9aeb0f08776e9d709f79ec /src/render/Renderer.cpp | |
| parent | 2ca834479ffbd6f2162f535b1548360e837d073e (diff) | |
Draw the drag icon
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
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 |
