/**
     * Used by the drawing routine; edited to reduce weirdness.
     *
     * <p>(Don't move the bottom with the size of the screen).
     */
    @Override
    protected void overlayBackground(int y1, int y2, int alpha1, int alpha2) {
      if (y1 == 0) {
        super.overlayBackground(y1, y2, alpha1, alpha2);
        return;
      } else {
        GlStateManager.translate(0, -bottomLocation, 0);

        super.overlayBackground(y1 + bottomLocation, y2 + bottomLocation, alpha1, alpha2);

        GlStateManager.translate(0, bottomLocation, 0);
      }
    }
    @Override
    public void func_178039_p() {
      mouseY -= bottomLocation;

      if (mouseY > 0) {
        super.func_178039_p();
      }

      mouseY += bottomLocation;
    }
    @Override
    public void drawScreen(int mouseX, int mouseY, float partialTicks) {
      GlStateManager.translate(0, bottomLocation, 0);

      this.height = GuiWDLExtensions.this.height - bottomLocation;
      this.bottom = this.height - 32;

      super.drawScreen(mouseX, mouseY, partialTicks);

      drawCenteredString(
          fontRendererObj, "Details (resizable)", GuiWDLExtensions.this.width / 2, 5, 0xFFFFFF);

      GlStateManager.translate(0, -bottomLocation, 0);
    }
 @Override
 public void func_178039_p() {
   if (mouseY < bottomLocation) {
     super.func_178039_p();
   }
 }
    @Override
    public void drawScreen(int mouseX, int mouseY, float partialTicks) {
      this.height = this.bottom = bottomLocation;

      super.drawScreen(mouseX, mouseY, partialTicks);
    }