From e44f1b2355c61c2c8c7930f5c4b879bf55ec31a3 Mon Sep 17 00:00:00 2001 From: kitty piapiac Date: Fri, 31 Jul 2020 04:39:41 -0700 Subject: =?UTF-8?q?(/=E3=83=BB=E3=83=BB)=E3=83=8E=20=20closes=20windows?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - small bugfix - updated readme.md to include config section - updated .gitignore to ignore config.nim - added config.def.nim --- src/windowmanager.nim | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/windowmanager.nim') diff --git a/src/windowmanager.nim b/src/windowmanager.nim index 4e5ca26..6053aa0 100644 --- a/src/windowmanager.nim +++ b/src/windowmanager.nim @@ -64,7 +64,7 @@ proc createWindowManager*: WindowManager = root: display.DefaultRootWindow(), clients: @[], - focused: -1, + focused: 0, keys: initTable[cuint, keys.Key](1)) # Run window manager @@ -138,7 +138,11 @@ proc initCommands (wm: WindowManager) = for cmd in config.init: discard execShellCmd cmd -proc λcloseWindow (wm: WindowManager) = return +proc λcloseWindow (wm: WindowManager) = + var n = wm.clients.len + if n > 0: + discard wm.display.XDestroyWindow wm.clients[wm.focused] + proc λnextWindow (wm: WindowManager) = var n = wm.clients.high if n > 0: @@ -230,7 +234,8 @@ proc onReparentNotify (wm: WindowManager, e: PXReparentEvent) = return proc onMapNotify (wm: WindowManager, e: PXMapEvent) = return proc onUnmapNotify (wm: WindowManager, e: PXUnmapEvent) = if wm.focused == wm.clients.high: wm.focused -= 1 - wm.clients.delete wm.clients.find(e.window) + let index = wm.clients.find(e.window) + if index > -1: wm.clients.delete index wm.tileWindows() proc onConfigureNotify (wm: WindowManager, e: PXConfigureEvent) = return -- cgit v1.2.3