/
WorkaroundForIssue2745.java
104 lines (87 loc) · 2.95 KB
/
WorkaroundForIssue2745.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/*********************************************************************************************
*
* 'WorkaroundForIssue2476.java, in plugin ummisco.gama.java2d, is part of the source code of the GAMA modeling and
* simulation platform. (v. 1.8.1)
*
* (c) 2007-2020 UMI 209 UMMISCO IRD/UPMC & Partners
*
* Visit https://github.com/gama-platform/gama for license information and developers contact.
*
*
**********************************************************************************************/
package ummisco.gama.java2d;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.IPartListener2;
import org.eclipse.ui.IWorkbenchPartReference;
import ummisco.gama.dev.utils.DEBUG;
import ummisco.gama.ui.utils.PlatformHelper;
import ummisco.gama.ui.utils.WorkbenchHelper;
public class WorkaroundForIssue2745 {
static {
DEBUG.OFF();
}
public static void installOn(final AWTDisplayView view) {
// Only installs on macOS
if (!PlatformHelper.isMac()) { return; }
final IPartListener2 pl = new IPartListener2() {
void forceLayout() {
final Control c = view.controlToSetFullScreen();
if (c == null || c.getParent() == null) { return; }
c.setVisible(false);
c.getParent().layout(true, true);
c.setVisible(true);
}
@Override
public void partActivated(final IWorkbenchPartReference partRef) {
if (partRef.getPart(false).equals(view)) {
DEBUG.OUT("Part becomes activated ");
forceLayout();
}
}
@Override
public void partClosed(final IWorkbenchPartReference partRef) {
// if (partRef.getPart(false).equals(view)) {
// // DEBUG.OUT("Part becomes closed ");
// }
}
@Override
public void partDeactivated(final IWorkbenchPartReference partRef) {
// if (partRef.getPart(false).equals(view)) {
// // DEBUG.OUT("Part becomes deactivated ");
// }
}
@Override
public void partOpened(final IWorkbenchPartReference partRef) {
// if (partRef.getPart(false).equals(view)) {
// DEBUG.OUT("Part becomes opened ");
// }
}
@Override
public void partBroughtToTop(final IWorkbenchPartReference part) {
// if (part.getPart(false).equals(view)) {
// DEBUG.OUT("Part becomes brought to top ");
// // view.forceLayout();
// }
}
@Override
public void partHidden(final IWorkbenchPartReference partRef) {
// if (partRef.getPart(false).equals(view)) {
// // DEBUG.OUT("Part becomes hidden ");
// }
}
@Override
public void partVisible(final IWorkbenchPartReference partRef) {
// if (partRef.getPart(false).equals(view)) {
// DEBUG.OUT("Part becomes visible ");
// }
}
@Override
public void partInputChanged(final IWorkbenchPartReference partRef) {
// if (partRef.getPart(false).equals(view)) {
// // DEBUG.OUT("Part has its input changed ");
// }
}
};
WorkbenchHelper.getPage().addPartListener(pl);
}
}