示例#1
0
    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
示例#2
0
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)