+ /* steal escape, tabs from GTK */
+
+ switch (ev->keyval) {
+ case GDK_Escape:
+ case GDK_ISO_Left_Tab:
+ case GDK_Tab:
+ return true;
+ }
+ return false;
+}
+
+bool
+FloatingTextEntry::key_release (GdkEventKey* ev)
+{
+ switch (ev->keyval) {
+ case GDK_Escape:
+ /* cancel edit */
+ delete_when_idle (this);
+ return true;
+
+ case GDK_ISO_Left_Tab:
+ /* Shift+Tab Keys Pressed. Note that for Shift+Tab, GDK actually
+ * generates a different ev->keyval, rather than setting
+ * ev->state.
+ */
+ use_text (entry.get_text(), -1); // EMIT SIGNAL, move to prev
+ delete_when_idle (this);
+ return true;
+
+ case GDK_Tab:
+ use_text (entry.get_text(), 1); // EMIT SIGNAL, move to next
+ delete_when_idle (this);
+ return true;
+ default:
+ break;
+ }
+
+ return false;