So apparently, this bug only exists on some systems (doesn't happen to me :S). It MIGHT be something to do with multiple monitors but I doubt it.
Wine has a problem on some systems trying to display components. It's basically acting like in WinAPI where you setup your components first THEN set it visible. That would make sense since we're emulating Windows (even though this doesn't seem to be a problem on Windows natively).
For that reason, the fix which took about 2.5 hrs to debug (first we built smart natively to test if its his graphics card or monitor then built it for wine and debugged from there). Patch is to change the visibility to happen AFTER frame.pack (another layout bug just like in Linux
Bug ID 25 but harder to find):
This:
Main.debug("Client INIT");
clientApplet.init();
Main.debug("Client START");
clientApplet.setVisible(true);
clientApplet.start();
Main.debug("Client WAITING");
//setup canvas, validate canvas, get class loader..
clientFrame.pack();
clientFrame.setResizable(false);
//blah blah..
Was changed to:
Main.debug("Client INIT");
clientApplet.init();
Main.debug("Client START");
clientApplet.start();
Main.debug("Client WAITING");
//setup canvas, validate canvas, get class loader..
clientFrame.pack();
clientFrame.setResizable(false);
clientApplet.setVisible(true); //THIS LINE was moved here..
//blah blah..
That took FOREVER to find because SMART works on his comp perfectly fine NATIVELY (for both OSRS and RS3) and Virtually (only for RS3) lol. So the problem was only with OSRS and took longer than expected to pin-point. Even the browser in Wine had this problem.
Submitted as a bug on the github:
https://github.com/BenLand100/SMART/issues/26 Thanks
@hoodz; for letting me debug for so long.