OSDN Git Service

fix text box menu event handling mistake.
authorornse01 <ornse01@users.sourceforge.jp>
Sun, 6 May 2012 13:13:59 +0000 (13:13 +0000)
committerornse01 <ornse01@users.sourceforge.jp>
Sun, 6 May 2012 13:13:59 +0000 (13:13 +0000)
git-svn-id: http://svn.sourceforge.jp/svnroot/bchan/bchanf/trunk@478 20a0b8eb-f62a-4a12-8fe1-b598822500fb

src/tools/hmi_generator.rb

index b50e7a1..b4ee6e0 100644 (file)
@@ -443,8 +443,22 @@ LOCAL VOID <%= window_name %>_action<%= self.name() %>(<%= window_name %>_t *win
        i = cact_par(window-><%= self.name() %>.id, wev);
        if (i & 0x2000) {
                window-><%= self.name() %>.nextaction = True;
-               <%= window_name %>_setflag(window, <%= window_name.upcase %>_FLAG_PARTS_OTHEREVENT);
-               wugt_evt(wev);
+               switch (i) {
+               case    P_MENU:
+                       if ((wev->s.type == EV_KEYDWN)&&(wev->s.stat & ES_CMD)) {
+                               evt->type = <%= main_name.upcase %>EVENT_TYPE_<%= window_name.upcase %>_PARTS_<%= self.name().upcase %>_KEYMENU;
+                               evt->data.<%= window_name %>_<%= self.name() %>_keymenu.keycode = wev->e.data.key.code;
+                       } else {
+                               evt->type = <%= main_name.upcase %>EVENT_TYPE_<%= window_name.upcase %>_PARTS_<%= self.name().upcase %>_MENU;
+                               evt->data.<%= window_name %>_<%= self.name() %>_menu.pos = wev->s.pos;
+                       }
+                       <%= window_name %>_setflag(window, <%= window_name.upcase %>_FLAG_PARTS_NEXTACTION);
+                       break;
+               default:
+                       wugt_evt(wev);
+                       <%= window_name %>_setflag(window, <%= window_name.upcase %>_FLAG_PARTS_OTHEREVENT);
+                       break;
+               }
                return;
        }
        window-><%= self.name() %>.nextaction = False;
@@ -478,18 +492,6 @@ LOCAL VOID <%= window_name %>_action<%= self.name() %>(<%= window_name %>_t *win
                evt->data.<%= window_name %>_<%= self.name() %>_copy.rel_wid = wev->s.wid;
                evt->data.<%= window_name %>_<%= self.name() %>_copy.pos = wev->s.pos;
                break;
-       case    P_MENU:
-               if ((wev->s.type == EV_KEYDWN)&&(wev->s.stat & ES_CMD)) {
-                       evt->type = <%= main_name.upcase %>EVENT_TYPE_<%= window_name.upcase %>_PARTS_<%= self.name().upcase %>_KEYMENU;
-                       evt->data.<%= window_name %>_<%= self.name() %>_keymenu.keycode = wev->e.data.key.code;
-               } else {
-                       evt->type = <%= main_name.upcase %>EVENT_TYPE_<%= window_name.upcase %>_PARTS_<%= self.name().upcase %>_MENU;
-                       evt->data.<%= window_name %>_<%= self.name() %>_menu.pos = wev->s.pos;
-               }
-               window-><%= self.name() %>.nextaction = True;
-               <%= window_name %>_setflag(window, <%= window_name.upcase %>_FLAG_PARTS_NEXTACTION);
-               wugt_evt(wev);
-               break;
        }
 }