Как получить размер экрана без учета боковой панели Unity в GDK

Я пытаюсь заставить терминал Guake корректно работать в Unity. Его окно имеет ширину, равную ширине экрана. Но из-за Unity правая граница окна левой панели становится невидимой. Итак, я хочу установить правильную ширину окна. Он должен быть меньше фактического размера окна. И код должен корректно работать с Unity или без него.

Так Guake определяет позицию и размер своего окна:

def get_final_window_rect(self):

    """Gets the final size of the main window of guake. The height
    is the window_height property, width is window_width and the
    horizontal alignment is given by window_alignment.
    """
    screen = self.window.get_screen()
    height = self.client.get_int(KEY('/general/window_height'))
    width = 100
    halignment = self.client.get_int(KEY('/general/window_halignment'))

    # get the rectangle just from the first/default monitor in the
    # future we might create a field to select which monitor you
    # wanna use
    window_rect = screen.get_monitor_geometry(0)
    total_width = window_rect.width
    window_rect.height = window_rect.height * height / 100
    window_rect.width = window_rect.width * width / 100

    if width < total_width:
        if halignment == ALIGN_CENTER:
            window_rect.x = (total_width - window_rect.width) / 2
        elif halignment == ALIGN_LEFT:
            window_rect.x = 0
        elif halignment == ALIGN_RIGHT:
            window_rect.x = total_width - window_rect.width
    window_rect.y = 0
    window_rect.width = 250
    return window_rect
9
задан Pavel Strakhov 6 May 2012 в 16:24
поделиться