allow mouse input for scrolling, don't update text area model when nothing has changed default tip
authorMatthias Mann
Sat Feb 11 13:27:12 2012 +0100 (3 months ago)
changeset 262f896aec65113
parent 261 6b3fcd74dffb
allow mouse input for scrolling, don't update text area model when nothing has changed
src/keyevents/ListKeyEvents.java
src/keyevents/ListKeyEvents.xml
     1.1 --- a/src/keyevents/ListKeyEvents.java	Sat Feb 11 13:15:22 2012 +0100
     1.2 +++ b/src/keyevents/ListKeyEvents.java	Sat Feb 11 13:27:12 2012 +0100
     1.3 @@ -58,7 +58,7 @@
     1.4  
     1.5              LWJGLRenderer renderer = new LWJGLRenderer();
     1.6              ListKeyEvents demo = new ListKeyEvents();
     1.7 -            GUI gui = new GUI(demo, renderer, null);
     1.8 +            GUI gui = new GUI(demo, renderer);
     1.9  
    1.10              ThemeManager theme = ThemeManager.createThemeManager(
    1.11                      ListKeyEvents.class.getResource("ListKeyEvents.xml"), renderer);
    1.12 @@ -100,6 +100,7 @@
    1.13      }
    1.14      
    1.15      public void listKeyEvents() {
    1.16 +        boolean hadEvents = false;
    1.17          while(Keyboard.next()) {
    1.18              if(Keyboard.getEventCharacter() != Keyboard.CHAR_NONE) {
    1.19                  sb.append(String.format("%s %s (code %d) char %c (%d)\n",
    1.20 @@ -114,8 +115,16 @@
    1.21                          Keyboard.getKeyName(Keyboard.getEventKey()),
    1.22                          Keyboard.getEventKey()));
    1.23              }
    1.24 +            hadEvents = true;
    1.25          }
    1.26 -        textAreaModel.setText(sb.toString());
    1.27 +        if(hadEvents) {
    1.28 +            boolean atEnd = scrollPane.getScrollPositionY() == scrollPane.getMaxScrollPosY();
    1.29 +            textAreaModel.setText(sb.toString());
    1.30 +            if(atEnd) {
    1.31 +                scrollPane.validateLayout();
    1.32 +                scrollPane.setScrollPositionY(scrollPane.getMaxScrollPosY());
    1.33 +            }
    1.34 +        }
    1.35      }
    1.36      
    1.37  }
     2.1 --- a/src/keyevents/ListKeyEvents.xml	Sat Feb 11 13:15:22 2012 +0100
     2.2 +++ b/src/keyevents/ListKeyEvents.xml	Sat Feb 11 13:27:12 2012 +0100
     2.3 @@ -6,18 +6,15 @@
     2.4          <area name="tooltip.background" border="3" xywh="1,24,7,7" splitx="L3,R3" splity="T3,B3"/>
     2.5          <select name="vscrollbar.upbutton.background" center="true">
     2.6              <area tint="#FF0000" if="pressed" xywh="16,7,7,4"/>
     2.7 -            <area tint="#5A5A5A" if="hover" xywh="16,7,7,4"/>
     2.8 -            <area tint="#000000" xywh="16,7,7,4"/>
     2.9 +            <area tint="#5A5A5A" xywh="16,7,7,4"/>
    2.10          </select>
    2.11          <select name="vscrollbar.downbutton.background" center="true">
    2.12              <area tint="#FF0000" if="pressed" xywh="16,12,7,4"/>
    2.13 -            <area tint="#5A5A5A" if="hover" xywh="16,12,7,4"/>
    2.14 -            <area tint="#000000" xywh="16,12,7,4"/>
    2.15 +            <area tint="#5A5A5A" xywh="16,12,7,4"/>
    2.16          </select>
    2.17          <select name="vscrollbar.thumb.background">
    2.18              <area splity="4,5" tint="#FF0000" if="pressed" xywh="16,17,7,10"/>
    2.19 -            <area splity="4,5" tint="#5A5A5A" if="hover" xywh="16,17,7,10"/>
    2.20 -            <area splity="4,5" tint="#000000" xywh="16,17,7,10"/>
    2.21 +            <area splity="4,5" tint="#5A5A5A" xywh="16,17,7,10"/>
    2.22          </select>
    2.23          <area name="innerframe.background" splitx="2,3" splity="2,3" border="2" xywh="17,1,5,5"/>
    2.24      </images>