Mercurial > libervia-desktop-kivy
diff src/libs/garden/garden.contextmenu/context_menu.py @ 84:2caee196d19a
garden: context menu fixes:
- fixed size so menus are displayed correclty on different screen resolutions
- fixed position of ContextMenu on show
these fixes haven been proposed upstream
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 24 Dec 2016 14:20:40 +0100 |
parents | 741a7d6d8c28 |
children |
line wrap: on
line diff
--- a/src/libs/garden/garden.contextmenu/context_menu.py Sat Dec 24 14:16:58 2016 +0100 +++ b/src/libs/garden/garden.contextmenu/context_menu.py Sat Dec 24 14:20:40 2016 +0100 @@ -5,7 +5,6 @@ from kivy.lang import Builder from kivy.clock import Clock from functools import partial -import traceback import kivy.properties as kp import os @@ -93,11 +92,11 @@ # Choose the best position to open the menu if x is not None and y is not None: if point_relative_to_root[0] + self.width < root_parent.width: - pox_x = x + pos_x = x else: - pox_x = x - self.width + pos_x = x - self.width if issubclass(self.parent.__class__, AbstractMenuItem): - pox_x -= self.parent.width + pos_x -= self.parent.width if point_relative_to_root[1] - self.height < 0: pos_y = y @@ -106,10 +105,7 @@ else: pos_y = y - self.height - parent_pos = root_parent.pos - pos = (pox_x + parent_pos[0], pos_y + parent_pos[1]) - - self.pos = pos + self.pos = pos_x, pos_y def self_or_submenu_collide_with_point(self, x, y): queue = self.menu_item_widgets @@ -253,7 +249,6 @@ def _on_hovered(self, new_hovered): if new_hovered: spacer_height = self.parent.spacer.height if self.parent.spacer else 0 - point = self.right, self.top + spacer_height self.show_submenu(self.width, self.height + spacer_height) else: self.hide_submenu()