setROI updates the constant variable SCREEN

Asked by Will P

Calling setROI(smaller_region) changes the global variable SCREEN, which I assume is meant to be constant. The __str__ function of SCREEN also isn't updated to reflect the change.

print SCREEN
print SCREEN.getW()
setROI(Region(0,0,100,100)
print SCREEN
print SCREEN.getW()
setROI(SCREEN)

This prints out the following, and at the end the ROI is not updated to the entire screen:
Screen(0)[0,0 1440x900] E:Y, T:3.0
1440
Screen(0)[0,0 1440x900] E:Y, T:3.0
100

We can save the original parameters of SCREEN to a variable to get around this, but it took a while to figure out what was happening.

1. X 1.0 rc2
2. 64 bit Mac OSX 10.6

Question information

Language:
English Edit question
Status:
Solved
For:
SikuliX Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
RaiMan (raimund-hocke) said :
#1

SCREEN is a CONSTANT REFERENCE a Screen object Screen(0) and not its contents (it is a convenience).

So per definition setROI() changes the region of interest of the SCREEN object.

If you do not want this, you have to qualify your Screen/Region methods with the Screen/Region object or use with:

Revision history for this message
RaiMan (raimund-hocke) said :
#2

not a bug

Revision history for this message
RaiMan (raimund-hocke) said :
#3

invalid bug