Mantis Bug Tracker

View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000507OLVUser Interfacepublic2012-01-18 11:122012-01-18 21:14
ReporterFred 
Assigned ToFred 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformApple MacOSOS XOS Version10.6
Product Version0.0.3-SNAPSHOT 
Target Version0.0.3Fixed in Version0.0.3 
Summary0000507: When Returning From Fullscreen UI Is Drawn Twice
DescriptionOnce 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.
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
User avatar (0001130)
BenFenner (developer)
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.
User avatar (0001134)
Fred (administrator)
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(GraphPositionPanel.java:255)
    at org.diyefi.openlogviewer.graphing.InfoPanel.paint(InfoPanel.java:116)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
    at javax.swing.JComponent._paintImmediately(JComponent.java:5098)
    at javax.swing.JComponent.paintImmediately(JComponent.java:4882)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:811)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:713)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:693)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:125)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:678)
    at java.awt.EventQueue.access$000(EventQueue.java:86)
    at java.awt.EventQueue$1.run(EventQueue.java:639)
    at java.awt.EventQueue$1.run(EventQueue.java:637)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:648)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


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.
User avatar (0001135)
Fred (administrator)
2012-01-18 20:39

See above comment.
User avatar (0001136)
BenFenner (developer)
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.

User avatar (0001138)
BenFenner (developer)
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
User avatar (0001139)
Fred (administrator)
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 :-)


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker