Bugzilla – Bug 492770
ContextMenu: MenuItem Position is wrong
Last modified: 2009-07-02 03:48:49 UTC
Created attachment 284435 [details] at-spi sample. PROBLEM STATEMENT: The position of menu item is wrong, so mouseClick action couldn't be correctly invoked at proper widget. The attached sample codes are as follows: #!/usr/bin/env python import pyatspi import time reg = pyatspi.Registry find = pyatspi.findDescendant findAll = pyatspi.findAllDescendants desktop = reg.getDesktop(0) ipy = find(desktop, lambda x: x.name == 'ipy' and x.getRoleName() == 'application') frame = find(ipy, lambda x: x.getRoleName() == 'frame') label = find(frame, lambda x: x.getRoleName() == 'label') extents = label.queryComponent().getExtents(pyatspi.DESKTOP_COORDS) x = extents.x + (extents.width / 2) y = extents.y + (extents.height / 2) # open context menu strip reg.generateMouseEvent(x, y, pyatspi.MOUSE_B3C) time.sleep(1) context_menu = find(ipy, lambda x: x.getRoleName() == 'window') menu_item = find(context_menu, lambda x: x.name == 'Item 1') extents = menu_item.queryComponent().getExtents(pyatspi.DESKTOP_COORDS) x = extents.x + (extents.width / 2) y = extents.y + (extents.height / 2) print x, y REPRO: 1. Run uia2atk/test/sample/contextmenu_menuitem.py. 2. Run attached pyatspi sample. RESULTS: -3221225472 -3221225472 EXPECTED RESULTS: They should be positive integers, like 50 50.
Updating summary and hours. If it is possible to fix this bug, it will require patches to MWF. However, based on initial investigation while implementing providers for MenuItem and ContextMenu, it may be a very large effort to fix correctly. Recommend focusing on ContextMenuStrip and the rest of the *Strip* API.