10000 Fix für Fehler beim Repaint des Window-Icons nach Größenänderung (Mac… · Silent-Fred/iTrySQL@1fc8034 · GitHub
[go: up one dir, main page]

Skip to content

Commit 1fc8034

Browse files
committed
Fix für Fehler beim Repaint des Window-Icons nach Größenänderung (Mac OS only?)
1 parent 07e4f5c commit 1fc8034

File tree

3 files changed

+63
-0
lines changed

3 files changed

+63
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/*
2+
* Copyright (c) 2016, Michael Kühweg
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions are met:
7+
*
8+
* * Redistributions of source code must retain the above copyright notice, this
9+
* list of conditions and the following disclaimer.
10+
* * Redistributions in binary form must reproduce the above copyright notice,
11+
* this list of conditions and the following disclaimer in the documentation
12+
* and/or other materials provided with the distribution.
13+
*
14+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
18+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24+
* POSSIBILITY OF SUCH DAMAGE.
25+
*/
26+
27+
package de.kuehweg.sqltool.dialog.util;
28+
29+
import java.util.ArrayList;
30+
import java.util.Collection;
31+
32+
import javafx.beans.value.ChangeListener;
33+
import javafx.scene.image.Image;
34+
import javafx.stage.Stage;
35+
36+
/**
37+
* @author Michael Kühweg
38+
*/
39+
public class WindowIconRepaintIssueOnResizeFix {
40+
41+
public static void fix(final Stage stage) {
42+
stage.widthProperty().addListener((ChangeListener<Number>) (observable, oldValue, newValue) -> {
43+
final Collection<Image> images = new ArrayList<>(stage.getIcons());
44+
stage.getIcons().clear();
45+
stage.getIcons().addAll(images);
46+
});
47+
stage.heightProperty().addListener((ChangeListener<Number>) (observable, oldValue, newValue) -> {
48+
final Collection<Image> images = new ArrayList<>(stage.getIcons());
49+
stage.getIcons().clear();
50+
stage.getIcons().addAll(images);
51+
});
52+
}
53+
}

src/de/kuehweg/sqltool/itrysql/ITrySQL.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import de.kuehweg.sqltool.common.achievement.DefaultRankingPoints;
3939
import de.kuehweg.sqltool.dialog.images.ImagePack;
4040
import de.kuehweg.sqltool.dialog.util.StageSizerUtil;
41+
import de.kuehweg.sqltool.dialog.util.WindowIconRepaintIssueOnResizeFix;
4142
import javafx.application.Application;
4243
import javafx.fxml.FXMLLoader;
4344
import javafx.geometry.Rectangle2D;
@@ -143,6 +144,10 @@ public final void start(final Stage primaryStage) throws Exception {
143144
ev.consume();
144145
}
145146
});
147+
148+
// FIXME
149+
WindowIconRepaintIssueOnResizeFix.fix(primaryStage);
150+
146151
primaryStage.show();
147152
}
148153

src/de/kuehweg/sqltool/itrysql/ITrySQLStage.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import de.kuehweg.sqltool.common.DialogDictionary;
3434
import de.kuehweg.sqltool.dialog.images.ImagePack;
3535
import de.kuehweg.sqltool.dialog.util.StageSizerUtil;
36+
import de.kuehweg.sqltool.dialog.util.WindowIconRepaintIssueOnResizeFix;
3637
import javafx.fxml.FXMLLoader;
3738
import javafx.geometry.Rectangle2D;
3839
import javafx.scene.Parent;
@@ -93,6 +94,10 @@ public ITrySQLStage(final Stage callerStage, final String title) {
9394
setOnHiding(controller);
9495
setOnCloseRequest(controller);
9596
controller.setApplicationWindow(scene.getWindow());
97+
98+
// FIXME
99+
WindowIconRepaintIssueOnResizeFix.fix(callerStage);
100+
96101
} catch (final IOException ex) {
97102
Logger.getLogger(ITrySQLStage.class.getName()).log(Level.SEVERE, null, ex);
98103
}

0 commit comments

Comments
 (0)
0