You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2009/06/23 20:27:44 UTC
svn commit: r787778 - in
/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk: MenuPopup.java
skin/CalendarButtonSkin.java skin/ListButtonSkin.java
skin/MenuButtonSkin.java skin/terra/TerraMenuButtonSkin.java
Author: gbrown
Date: Tue Jun 23 18:27:44 2009
New Revision: 787778
URL: http://svn.apache.org/viewvc?rev=787778&view=rev
Log:
Various minor focus-related fixes and updates; allow toolbar menu buttons to gain focus (like toolbar push buttons).
Modified:
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/MenuPopup.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ListButtonSkin.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuButtonSkin.java
incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraMenuButtonSkin.java
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/MenuPopup.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/MenuPopup.java?rev=787778&r1=787777&r2=787778&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/MenuPopup.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/MenuPopup.java Tue Jun 23 18:27:44 2009
@@ -134,6 +134,7 @@
super.close();
if (isClosed()) {
+ setFocusDescendant(null);
affiliate = null;
}
}
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java?rev=787778&r1=787777&r2=787778&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java Tue Jun 23 18:27:44 2009
@@ -83,9 +83,7 @@
switch (keyCode) {
case Keyboard.KeyCode.ESCAPE: {
calendarPopup.close();
- if (calendarButton.isShowing()) {
- calendarButton.requestFocus();
- }
+ calendarButton.requestFocus();
break;
}
@@ -102,7 +100,7 @@
Direction direction = (Keyboard.isPressed(Keyboard.Modifier.SHIFT)) ?
Direction.BACKWARD : Direction.FORWARD;
calendarButton.transferFocus(direction);
- } else if (calendarButton.isShowing()) {
+ } else {
calendarButton.requestFocus();
}
@@ -274,10 +272,6 @@
calendarButton.requestFocus();
calendarButton.press();
- if (calendar.isShowing()) {
- calendar.requestFocus();
- }
-
return consumed;
}
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ListButtonSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ListButtonSkin.java?rev=787778&r1=787777&r2=787778&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ListButtonSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ListButtonSkin.java Tue Jun 23 18:27:44 2009
@@ -82,9 +82,7 @@
switch (keyCode) {
case Keyboard.KeyCode.ESCAPE: {
listViewPopup.close();
- if (listButton.isShowing()) {
- listButton.requestFocus();
- }
+ listButton.requestFocus();
break;
}
@@ -102,7 +100,7 @@
Direction direction = (Keyboard.isPressed(Keyboard.Modifier.SHIFT)) ?
Direction.BACKWARD : Direction.FORWARD;
listButton.transferFocus(direction);
- } else if (listButton.isShowing()) {
+ } else {
listButton.requestFocus();
}
@@ -277,10 +275,6 @@
listButton.requestFocus();
listButton.press();
- if (listView.isShowing()) {
- listView.requestFocus();
- }
-
return consumed;
}
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuButtonSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuButtonSkin.java?rev=787778&r1=787777&r2=787778&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuButtonSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/MenuButtonSkin.java Tue Jun 23 18:27:44 2009
@@ -28,7 +28,6 @@
import org.apache.pivot.wtk.Mouse;
import org.apache.pivot.wtk.Point;
import org.apache.pivot.wtk.Window;
-import org.apache.pivot.wtk.WindowStateListener;
/**
* Abstract base class for menu button skins.
@@ -40,19 +39,6 @@
protected boolean pressed = false;
protected MenuPopup menuPopup = new MenuPopup();
- private WindowStateListener menuPopupWindowStateListener = new WindowStateListener.Adapter() {
- public void windowClosed(Window window, Display display) {
- MenuButton menuButton = (MenuButton)getComponent();
- menuButton.requestFocus();
-
- repaintComponent();
- }
- };
-
- public MenuButtonSkin() {
- menuPopup.getWindowStateListeners().add(menuPopupWindowStateListener);
- }
-
@Override
public void install(Component component) {
super.install(component);
@@ -130,17 +116,8 @@
@Override
public boolean mouseClick(Component component, Mouse.Button button, int x, int y, int count) {
MenuButton menuButton = (MenuButton)getComponent();
-
- if (menuButton.isFocusable()) {
- menuButton.requestFocus();
- }
-
menuButton.press();
- if (menuPopup.isShowing()) {
- menuPopup.requestFocus();
- }
-
return true;
}
@@ -178,6 +155,7 @@
}
// Button events
+ @Override
public void buttonPressed(Button button) {
if (menuPopup.isOpen()) {
menuPopup.close();
Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraMenuButtonSkin.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraMenuButtonSkin.java?rev=787778&r1=787777&r2=787778&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraMenuButtonSkin.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/terra/TerraMenuButtonSkin.java Tue Jun 23 18:27:44 2009
@@ -30,10 +30,14 @@
import org.apache.pivot.wtk.Button;
import org.apache.pivot.wtk.Component;
import org.apache.pivot.wtk.Dimensions;
+import org.apache.pivot.wtk.Display;
import org.apache.pivot.wtk.GraphicsUtilities;
import org.apache.pivot.wtk.Insets;
import org.apache.pivot.wtk.MenuButton;
+import org.apache.pivot.wtk.Mouse;
import org.apache.pivot.wtk.Theme;
+import org.apache.pivot.wtk.Window;
+import org.apache.pivot.wtk.WindowStateListener;
import org.apache.pivot.wtk.skin.MenuButtonSkin;
@@ -59,6 +63,17 @@
private Color pressedBevelColor;
private Color disabledBevelColor;
+ private WindowStateListener menuPopupWindowStateListener = new WindowStateListener.Adapter() {
+ public void windowClosed(Window window, Display display) {
+ if (toolbar) {
+ repaintComponent();
+ } else {
+ MenuButton menuButton = (MenuButton)getComponent();
+ menuButton.requestFocus();
+ }
+ }
+ };
+
private static final int TRIGGER_WIDTH = 10;
public TerraMenuButtonSkin() {
@@ -79,6 +94,8 @@
bevelColor = TerraTheme.brighten(backgroundColor);
pressedBevelColor = TerraTheme.darken(backgroundColor);
disabledBevelColor = disabledBackgroundColor;
+
+ menuPopup.getWindowStateListeners().add(menuPopupWindowStateListener);
}
public int getPreferredWidth(int height) {
@@ -130,6 +147,7 @@
if (!toolbar
|| highlighted
+ || menuButton.isFocused()
|| menuPopup.isOpen()) {
if (menuButton.isEnabled()) {
backgroundColor = this.backgroundColor;
@@ -195,7 +213,8 @@
triggerGraphics.dispose();
// Paint the focus state
- if (menuButton.isFocused()) {
+ if (menuButton.isFocused()
+ && !toolbar) {
BasicStroke dashStroke = new BasicStroke(1.0f, BasicStroke.CAP_ROUND,
BasicStroke.JOIN_ROUND, 1.0f, new float[] {0.0f, 2.0f}, 0.0f);
@@ -212,7 +231,8 @@
@Override
public boolean isFocusable() {
- return !toolbar;
+ return !toolbar
+ || menuPopup.isClosed();
}
public Font getFont() {
@@ -430,4 +450,23 @@
repaintComponent();
}
+
+ @Override
+ public void mouseOut(Component component) {
+ super.mouseOut(component);
+
+ if (toolbar
+ && component.isFocused()) {
+ Component.clearFocus();
+ }
+ }
+
+ @Override
+ public boolean mouseClick(Component component, Mouse.Button button, int x, int y, int count) {
+ if (!toolbar) {
+ component.requestFocus();
+ }
+
+ return super.mouseClick(component, button, x, y, count);
+ }
}