FreeEMS Issues - OLV
View Issue Details
0000507OLVUser Interfacepublic2012-01-18 11:122012-01-18 21:14
Apple MacOS X10.6
0000507: When Returning From Fullscreen UI Is Drawn Twice
Once small, then big as the resize back to normal occurs. Change the order of restoring state to before the initial draw occurs to avoid this double up and associated flicker on machines heavily loaded enough to see it.
No tags attached.

2012-01-18 15:41   
Fixed in git hash: 9e3e39de91c9263270aed35c10c86269bf8645a9

The problem was that pack() was being called. The restoreScreenState() function couldn't be moved before it as pack() would undo the changes. pack() had to go.
2012-01-18 20:38   
Totally broken on mac now, didn't try linux. Pack was required to restructure the window correctly otherwise the play button and company end up not visible. In fact it was worse this time as the graph itself was not visible until i fudged around and zoomed and clicked and found some dots. In the mean time, the console filled with HUNDREDS of these:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 403
    at org.diyefi.openlogviewer.graphing.GraphPositionPanel.getBestSnappingPosition(
    at org.diyefi.openlogviewer.graphing.InfoPanel.paint(
    at javax.swing.JComponent.paintChildren(
    at javax.swing.JComponent.paint(
    at javax.swing.JLayeredPane.paint(
    at javax.swing.JComponent._paintImmediately(
    at javax.swing.JComponent.paintImmediately(
    at javax.swing.RepaintManager.paintDirtyRegions(
    at javax.swing.RepaintManager.paintDirtyRegions(
    at javax.swing.RepaintManager.seqPaintDirtyRegions(
    at javax.swing.SystemEventQueueUtilities$
    at java.awt.event.InvocationEvent.dispatch(
    at java.awt.EventQueue.dispatchEventImpl(
    at java.awt.EventQueue.access$000(
    at java.awt.EventQueue$
    at java.awt.EventQueue$
    at Method)
    at java.awt.EventQueue.dispatchEvent(
    at java.awt.EventDispatchThread.pumpOneEventForFilters(
    at java.awt.EventDispatchThread.pumpEventsForFilter(
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(
    at java.awt.EventDispatchThread.pumpEvents(
    at java.awt.EventDispatchThread.pumpEvents(

pack() may not have been the right solution, the right solution was likely getting the functions that do the layout behaving correctly for different events and being called in an appropriate and efficient hierarchy. In any case, it's not good at all right now with the graph in the wrong place and no controls post full screen. I told you it was finicky and to be careful fucking with it ;-) There's a reason that it took me more than 5 mins to add the feature.
2012-01-18 20:39   
See above comment.
2012-01-18 20:56   
(edited on: 2012-01-18 20:58)
From the description of what pack() does, it sounded like it simply reset the size (width/height) of the window and that's it.

Obviously there's more at play here, but to avoid this issue I think I need to duplicate the functionality of pack() but using different dimensions. I'll figure it out.

2012-01-18 21:08   
Okay going for more simple (get'r-done) fixes here before pulling out the big guns. Hopefully I don't have to.

Fixed for real? Git hash: 2db713bf1c5c58afc71f24a26542319b7f21e81d
2012-01-18 21:14   
Good enough, I guess! :-p I'm sure this will improve naturally as the drawing functionality gets totally reworked in future :-)