diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml
index dbfd571b..06eede2d 100644
--- a/diylc/diylc-core/src/org/diylc/presenter/update.xml
+++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml
@@ -3461,5 +3461,21 @@
https://github.com/bancika/diy-layout-creator/releases
+
+
+ 4
+ 15
+ 1
+
+ 2021-01-04 00:00:00.000 CET
+
+
+
+ BUG_FIX
+ macOS: issues with scrollable toolbar that prevent it from starting on mac machines
+
+
+ https://github.com/bancika/diy-layout-creator/releases
+
diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar
index 4a1a658e..abb5df61 100644
Binary files a/diylc/diylc-library/lib/diylc-core.jar and b/diylc/diylc-library/lib/diylc-core.jar differ
diff --git a/diylc/diylc-swing/build.xml b/diylc/diylc-swing/build.xml
index 5fbe27e3..809ac49e 100644
--- a/diylc/diylc-swing/build.xml
+++ b/diylc/diylc-swing/build.xml
@@ -10,7 +10,7 @@
-
+
diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar
index 4a1a658e..abb5df61 100644
Binary files a/diylc/diylc-swing/lib/diylc-core.jar and b/diylc/diylc-swing/lib/diylc-core.jar differ
diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar
index cb5330da..ae1af875 100644
Binary files a/diylc/diylc-swing/library/main.jar and b/diylc/diylc-swing/library/main.jar differ
diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolbarScrollPane.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolbarScrollPane.java
index cbd9ca1f..8366677f 100644
--- a/diylc/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolbarScrollPane.java
+++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolbarScrollPane.java
@@ -29,9 +29,13 @@ import javax.swing.JScrollPane;
import javax.swing.UIManager;
import javax.swing.plaf.basic.BasicArrowButton;
+import org.apache.log4j.Logger;
+
public class ToolbarScrollPane extends JPanel {
private static final long serialVersionUID = 1L;
+
+ private static final Logger LOG = Logger.getLogger(ToolbarScrollPane.class);
private Component view;
private BasicArrowButton west;
@@ -43,30 +47,37 @@ public class ToolbarScrollPane extends JPanel {
setLayout(new BorderLayout());
setBorder(BorderFactory.createEmptyBorder());
- JScrollPane scrollPane = new JScrollPane(view);
- scrollPane.setBorder(BorderFactory.createEmptyBorder());
- scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
- scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
- add(scrollPane);
-
- JScrollBar horizontal = scrollPane.getHorizontalScrollBar();
-
- west = new BasicArrowButton(BasicArrowButton.WEST);
- west.setAction(new ActionMapAction("", horizontal, "negativeUnitIncrement", 120));
- west.setBorder(BorderFactory.createLineBorder(UIManager.getColor("Button.shadow")));
- add(west, BorderLayout.WEST);
-
- east = new BasicArrowButton(BasicArrowButton.EAST);
- east.setAction(new ActionMapAction("", horizontal, "positiveUnitIncrement", 120));
- east.setBorder(BorderFactory.createLineBorder(UIManager.getColor("Button.shadow")));
- add(east, BorderLayout.EAST);
-
- addComponentListener(new ComponentAdapter() {
- @Override
- public void componentResized(ComponentEvent e) {
- refreshScrollButtonVisibility();
- }
- });
+ try {
+ JScrollPane scrollPane = new JScrollPane(view);
+ scrollPane.setBorder(BorderFactory.createEmptyBorder());
+ scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+ scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
+
+ JScrollBar horizontal = scrollPane.getHorizontalScrollBar();
+
+ west = new BasicArrowButton(BasicArrowButton.WEST);
+ west.setAction(new ActionMapAction("", horizontal, "negativeUnitIncrement", 120));
+ west.setBorder(BorderFactory.createLineBorder(UIManager.getColor("Button.shadow")));
+ add(west, BorderLayout.WEST);
+
+ east = new BasicArrowButton(BasicArrowButton.EAST);
+ east.setAction(new ActionMapAction("", horizontal, "positiveUnitIncrement", 120));
+ east.setBorder(BorderFactory.createLineBorder(UIManager.getColor("Button.shadow")));
+ add(east, BorderLayout.EAST);
+
+ addComponentListener(new ComponentAdapter() {
+ @Override
+ public void componentResized(ComponentEvent e) {
+ refreshScrollButtonVisibility();
+ }
+ });
+
+ LOG.info("Creating scrollable toolbar");
+ add(scrollPane);
+ } catch (Exception e) {
+ LOG.info("Creating non-scrollable toolbar, since scroll bar initialization failed");
+ add(view);
+ }
}
private void refreshScrollButtonVisibility() {