def find(self, win, direction, sticky=False, insideout=False, vertical_first=True): """Return new geometry for the window.""" #TODO: add limit? and use limit geometry instead of workarea? current = win.geometry wm = WindowManager() workarea = wm.workarea_geometry windows = [window.geometry for window in wm.windows(self.__main_filter) if window.id != win.id and \ window.desktop == win.desktop] order = {True: [self.__vertical, self.__horizontal], False: [self.__horizontal, self.__vertical]} for method in order[vertical_first]: method(win, current, workarea, windows, direction, sticky, insideout) return current
import time import sys from core import Gravity, Size, Geometry, Window, WindowManager from events import KeyPressHandler, PropertyNotifyHandler from config import Config from reposition import reposition_resize, shrink_window from pymouse import PyMouse global m m = PyMouse() __author__ = "Wojciech 'KosciaK' Pietrzok <*****@*****.**>" __version__ = "0.2" WM = WindowManager() CONFIG = Config() GRIDED = {} def expand(win, direction): """Expand window in given direction.""" border = reposition_resize( win, direction, sticky=(not direction.is_middle), vertical_first=CONFIG.settings['vertical_first']) logging.debug(border) win.move_resize(border, direction)