Explorar el Código

Stop BackBuffer being so lazy.

We now need it to exist independently of anything requesting it,
otherwise we miss lines being added.
pull/358/head
Chris Smith hace 9 años
padre
commit
eb67b89a04

+ 1
- 0
src/com/dmdirc/Channel.java Ver fichero

@@ -143,6 +143,7 @@ public class Channel extends MessageTarget implements GroupChat {
143 143
 
144 144
         eventHandler = new ChannelEventHandler(this, getEventBus(), groupChatUserManager);
145 145
 
146
+        initBackBuffer();
146 147
         registerCallbacks();
147 148
         updateTitle();
148 149
         selfJoin();

+ 2
- 0
src/com/dmdirc/CustomWindow.java Ver fichero

@@ -48,6 +48,7 @@ public class CustomWindow extends FrameContainer {
48 48
         super(parent, "custom", name, title, parent.getConfigManager(), backBufferFactory,
49 49
                 urlBuilder, parent.getEventBus(),
50 50
                 Collections.singletonList(WindowComponent.TEXTAREA.getIdentifier()));
51
+        initBackBuffer();
51 52
     }
52 53
 
53 54
     /**
@@ -62,6 +63,7 @@ public class CustomWindow extends FrameContainer {
62 63
             final BackBufferFactory backBufferFactory) {
63 64
         super(null, "custom", name, title, configProvider, backBufferFactory, urlBuilder,
64 65
                 eventBus, Collections.singletonList(WindowComponent.TEXTAREA.getIdentifier()));
66
+        initBackBuffer();
65 67
     }
66 68
 
67 69
     @Override

+ 5
- 9
src/com/dmdirc/FrameContainer.java Ver fichero

@@ -100,8 +100,6 @@ public abstract class FrameContainer {
100 100
     private final BackBufferFactory backBufferFactory;
101 101
     /** The back buffer for this container. */
102 102
     private BackBuffer backBuffer;
103
-    /** Lock for access to {@link #backBuffer}. */
104
-    private final Object backBufferLock = new Object();
105 103
 
106 104
     /**
107 105
      * The command parser used for commands in this container.
@@ -196,6 +194,11 @@ public abstract class FrameContainer {
196 194
         setIcon(icon);
197 195
     }
198 196
 
197
+    protected void initBackBuffer() {
198
+        backBuffer = backBufferFactory.getBackBuffer(this);
199
+        backBuffer.startAddingEvents();
200
+    }
201
+
199 202
     public Optional<FrameContainer> getParent() {
200 203
         return parent;
201 204
     }
@@ -391,13 +394,6 @@ public abstract class FrameContainer {
391 394
      * @return This container's back buffer.
392 395
      */
393 396
     public BackBuffer getBackBuffer() {
394
-        synchronized (backBufferLock) {
395
-            if (backBuffer == null) {
396
-                backBuffer = backBufferFactory.getBackBuffer(this);
397
-                backBuffer.startAddingEvents();
398
-            }
399
-        }
400
-
401 397
         return backBuffer;
402 398
     }
403 399
 

+ 1
- 0
src/com/dmdirc/GlobalWindow.java Ver fichero

@@ -61,6 +61,7 @@ public class GlobalWindow extends FrameContainer {
61 61
                 messageSinkManager, eventBus,
62 62
                 Arrays.asList(WindowComponent.TEXTAREA.getIdentifier(),
63 63
                         WindowComponent.INPUTFIELD.getIdentifier()));
64
+        initBackBuffer();
64 65
     }
65 66
 
66 67
     @Override

+ 1
- 0
src/com/dmdirc/Query.java Ver fichero

@@ -101,6 +101,7 @@ public class Query extends MessageTarget implements PrivateActionListener,
101 101
         this.server = newServer;
102 102
         this.user = user;
103 103
         updateTitle();
104
+        initBackBuffer();
104 105
     }
105 106
 
106 107
     @Override

+ 1
- 0
src/com/dmdirc/Server.java Ver fichero

@@ -240,6 +240,7 @@ public class Server extends FrameContainer implements Connection {
240 240
         getConfigManager().addChangeListener("formatter", "serverName", configListener);
241 241
         getConfigManager().addChangeListener("formatter", "serverTitle", configListener);
242 242
 
243
+        initBackBuffer();
243 244
         this.highlightManager = new HighlightManager(getConfigManager(),
244 245
                 new ColourManager(getConfigManager(), getEventBus()));
245 246
         highlightManager.init();

Loading…
Cancelar
Guardar