|
From: Crossfire C. r. messages.
<cro...@li...> - 2009-10-24 14:49:52
|
Revision: 12216
http://crossfire.svn.sourceforge.net/crossfire/?rev=12216&view=rev
Author: akirschbaum
Date: 2009-10-24 14:49:39 +0000 (Sat, 24 Oct 2009)
Log Message:
-----------
Stop repaints if the main window is iconified.
Modified Paths:
--------------
jxclient/trunk/ChangeLog
jxclient/trunk/src/jxclient/com/realtime/crossfire/jxclient/window/JXCWindow.java
jxclient/trunk/src/jxclient/com/realtime/crossfire/jxclient/window/JXCWindowRenderer.java
Modified: jxclient/trunk/ChangeLog
===================================================================
--- jxclient/trunk/ChangeLog 2009-10-24 14:29:00 UTC (rev 12215)
+++ jxclient/trunk/ChangeLog 2009-10-24 14:49:39 UTC (rev 12216)
@@ -1,3 +1,7 @@
+2009-10-24 Andreas Kirschbaum
+
+ * Stop repaints if the main window is iconified.
+
2009-08-27 Andreas Kirschbaum
* Actually fix the crash when updating the ground or inventory
Modified: jxclient/trunk/src/jxclient/com/realtime/crossfire/jxclient/window/JXCWindow.java
===================================================================
--- jxclient/trunk/src/jxclient/com/realtime/crossfire/jxclient/window/JXCWindow.java 2009-10-24 14:29:00 UTC (rev 12215)
+++ jxclient/trunk/src/jxclient/com/realtime/crossfire/jxclient/window/JXCWindow.java 2009-10-24 14:49:39 UTC (rev 12216)
@@ -419,6 +419,20 @@
{
quitApplication();
}
+
+ /** {@inheritDoc} */
+ @Override
+ public void windowIconified(@NotNull final WindowEvent e)
+ {
+ windowRenderer.setInhibitPaintIconified(true);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void windowDeiconified(@NotNull final WindowEvent e)
+ {
+ windowRenderer.setInhibitPaintIconified(false);
+ }
};
/**
Modified: jxclient/trunk/src/jxclient/com/realtime/crossfire/jxclient/window/JXCWindowRenderer.java
===================================================================
--- jxclient/trunk/src/jxclient/com/realtime/crossfire/jxclient/window/JXCWindowRenderer.java 2009-10-24 14:29:00 UTC (rev 12215)
+++ jxclient/trunk/src/jxclient/com/realtime/crossfire/jxclient/window/JXCWindowRenderer.java 2009-10-24 14:49:39 UTC (rev 12216)
@@ -118,8 +118,15 @@
private volatile boolean inhibitPaintMapUpdate = false;
/**
+ * If set, do not repaint anything. It it set while the main widnow is
+ * iconified.
+ */
+ private volatile boolean inhibitPaintIconified = false;
+
+ /**
* If set, at least one call to {@link #redrawGUI()} has been dropped while
- * {@link #inhibitPaintMapUpdate} was set.
+ * {@link #inhibitPaintMapUpdate} or {@link #inhibitPaintIconified} was
+ * set.
*/
private volatile boolean skippedPaint = false;
@@ -363,7 +370,7 @@
public void redrawGUI()
{
- if (inhibitPaintMapUpdate)
+ if (inhibitPaintMapUpdate || inhibitPaintIconified)
{
skippedPaint = true;
return;
@@ -913,4 +920,13 @@
throw new UnsupportedOperationException();
}
}
+
+ /**
+ * Inhibits or allows painting while the main window is iconified.
+ * @param inhibitPaintIconified whether the main window is iconified
+ */
+ public void setInhibitPaintIconified(final boolean inhibitPaintIconified)
+ {
+ this.inhibitPaintIconified = inhibitPaintIconified;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|