X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fbackend%2FSwingSessionInfo.java;h=2f74d7012130e0eeda1f44c4721396d645493b35;hb=12b90437b5f22c2ae6e9b9b14c3b62b60f6143e5;hp=b4c0b59d9f3c6868518dc470a39a7f06fc192401;hpb=d6ee0801333ff93dffd851f4c1a44519c96c371d;p=nikiroo-utils.git diff --git a/src/jexer/backend/SwingSessionInfo.java b/src/jexer/backend/SwingSessionInfo.java index b4c0b59..2f74d70 100644 --- a/src/jexer/backend/SwingSessionInfo.java +++ b/src/jexer/backend/SwingSessionInfo.java @@ -3,7 +3,7 @@ * * The MIT License (MIT) * - * Copyright (C) 2017 Kevin Lamonte + * Copyright (C) 2019 Kevin Lamonte * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -35,7 +35,7 @@ import java.awt.Insets; * Swing to support queryWindowSize(). The username is blank, language is * "en_US", with a 80x25 text window. */ -public final class SwingSessionInfo implements SessionInfo { +public class SwingSessionInfo implements SessionInfo { // ------------------------------------------------------------------------ // Variables -------------------------------------------------------------- @@ -179,6 +179,14 @@ public final class SwingSessionInfo implements SessionInfo { Insets insets = swing.getInsets(); int width = swing.getWidth() - insets.left - insets.right; int height = swing.getHeight() - insets.top - insets.bottom; + // In theory, if Java reported pixel-perfect dimensions, the + // expressions above would precisely line up with the requested + // window size from SwingComponent.setDimensions(). In practice, + // there appears to be a small difference. Add half a text cell in + // both directions before the division to hopefully reach the same + // result as setDimensions() was supposed to give us. + width += (textWidth / 2); + height += (textHeight / 2); windowWidth = width / textWidth; windowHeight = height / textHeight; @@ -187,7 +195,6 @@ public final class SwingSessionInfo implements SessionInfo { swing.getWidth(), swing.getHeight(), windowWidth, windowHeight); */ - } // ------------------------------------------------------------------------ @@ -207,4 +214,13 @@ public final class SwingSessionInfo implements SessionInfo { this.textHeight = textHeight; } + /** + * Getter for the underlying Swing component. + * + * @return the SwingComponent + */ + public SwingComponent getSwingComponent() { + return swing; + } + }