diff options
Diffstat (limited to 'src/jarabe/controlpanel/gui.py')
-rw-r--r-- | src/jarabe/controlpanel/gui.py | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/jarabe/controlpanel/gui.py b/src/jarabe/controlpanel/gui.py index f28b248..c61fb4e 100644 --- a/src/jarabe/controlpanel/gui.py +++ b/src/jarabe/controlpanel/gui.py @@ -42,14 +42,8 @@ class ControlPanel(Gtk.Window): def __init__(self): Gtk.Window.__init__(self) - self._max_columns = int(0.285 * (float(Gdk.Screen.width()) / - style.GRID_CELL_SIZE - 3)) - + self._calculate_max_columns() self.set_border_width(style.LINE_WIDTH) - offset = style.GRID_CELL_SIZE - width = Gdk.Screen.width() - offset * 2 - height = Gdk.Screen.height() - offset * 2 - self.set_size_request(width, height) self.set_position(Gtk.WindowPosition.CENTER_ALWAYS) self.set_decorated(False) self.set_resizable(False) @@ -88,15 +82,31 @@ class ControlPanel(Gtk.Window): self._setup_main() self._setup_section() self._show_main_view() + Gdk.Screen.get_default().connect('size-changed', self.__size_changed_cb) def __realize_cb(self, widget): self.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.get_window().set_accept_focus(True) + def __size_changed_cb(self, event): + self._calculate_max_columns() + def grab_focus(self): # overwrite grab focus in order to grab focus on the view self._main_view.get_child().grab_focus() + def _calculate_max_columns(self): + self._max_columns = int(0.285 * (float(Gdk.Screen.width()) / + style.GRID_CELL_SIZE - 3)) + offset = style.GRID_CELL_SIZE + width = Gdk.Screen.width() - offset * 2 + height = Gdk.Screen.height() - offset * 2 + self.set_size_request(width, height) + if hasattr(self, '_table'): + for child in self._table.get_children(): + child.destroy() + self._setup_options() + def _set_canvas(self, canvas): if self._canvas: self._main_view.remove(self._canvas) |