module Hob.Command.CloseCurrentTab (closeCurrentEditorTab) where import Control.Monad.Trans (liftIO) import Graphics.UI.Gtk import Hob.Context import Hob.Context.UiContext closeCurrentEditorTab :: CommandHandler closeCurrentEditorTab = CommandHandler Nothing closeCurrentEditorTabHandler closeCurrentEditorTabHandler :: App() closeCurrentEditorTabHandler = do ui <- fromContext uiContext let tabbed = mainNotebook ui currentPage <- liftIO $ notebookGetCurrentPage tabbed nthPage <- liftIO $ notebookGetNthPage tabbed currentPage case nthPage of Just pageContents -> do liftIO $ notebookRemovePage tabbed currentPage liftIO $ widgetDestroy pageContents Nothing -> return ()