diff options
author | Ole Loots <ole@monochrom.net> | 2013-01-16 03:21:35 +0100 |
---|---|---|
committer | Ole Loots <ole@monochrom.net> | 2013-01-16 03:21:35 +0100 |
commit | 4f0ae4e12868ddf26e7018e0a3dec4badaa1b1b6 (patch) | |
tree | 4e9c63a447215553179dd4fe89e5c1cc7788442b /atari/gemtk | |
parent | 6a32f94cc22f26afa43bfb58688688ae704e5514 (diff) | |
download | netsurf-4f0ae4e12868ddf26e7018e0a3dec4badaa1b1b6.tar.gz netsurf-4f0ae4e12868ddf26e7018e0a3dec4badaa1b1b6.tar.bz2 |
Search form inside browser windows starts to work.
Diffstat (limited to 'atari/gemtk')
-rw-r--r-- | atari/gemtk/gemtk.h | 4 | ||||
-rw-r--r-- | atari/gemtk/guiwin.c | 46 |
2 files changed, 47 insertions, 3 deletions
diff --git a/atari/gemtk/gemtk.h b/atari/gemtk/gemtk.h index 42b9342bc..8361a1488 100644 --- a/atari/gemtk/gemtk.h +++ b/atari/gemtk/gemtk.h @@ -102,7 +102,6 @@ short msg_box_show(short type, const char * msg); #define GW_FLAG_RECV_PREPROC_WM 0x02 // get notified even when pre-processed #define GW_FLAG_HAS_VTOOLBAR 0x04 // the attached toolbar is vertical #define GW_FLAG_CUSTOM_TOOLBAR 0x08 // no internal toolbar handling -//#define GW_FLAG_TOOLBAR_REDRAW 0x10 // enable internal toolbar redraw #define GW_FLAG_CUSTOM_SCROLLING 0x20 // no internal scroller handling #define GW_FLAG_DEFAULTS (GW_FLAG_PREPROC_WM | GW_FLAG_RECV_PREPROC_WM) @@ -110,8 +109,7 @@ short msg_box_show(short type, const char * msg); #define GW_STATUS_ICONIFIED 0x01 #define GW_STATUS_SHADED 0x02 -#define GW_XTYPE_CHECKBOX (101 << 8) -#define GW_CB_SELECTED (OS_SELECTED | OS_CROSSED) +#define GW_CB_SELECTED (OS_SELECTED) #define GUIWIN_VSLIDER 0x01 #define GUIWIN_HSLIDER 0x02 diff --git a/atari/gemtk/guiwin.c b/atari/gemtk/guiwin.c index d79d48bb1..93bc1bfdd 100644 --- a/atari/gemtk/guiwin.c +++ b/atari/gemtk/guiwin.c @@ -382,6 +382,10 @@ static short preproc_mu_button(GUIWIN * gw, EVMULT_OUT *ev_out, short msg[8]) gw->handler_func(gw, ev_out, msg_out); ev_out->emo_events = oldevents; retval = 1; + } else { + if (gw->toolbar_edit_obj != -1) { + gw->toolbar_edit_obj = -1; + } } } @@ -443,6 +447,10 @@ static short preproc_mu_button(GUIWIN * gw, EVMULT_OUT *ev_out, short msg[8]) evnt_timer(150); } } + else { + gw->form_edit_obj = -1; + + } } return(retval); @@ -453,6 +461,40 @@ static short preproc_mu_button(GUIWIN * gw, EVMULT_OUT *ev_out, short msg[8]) */ static short preproc_mu_keybd(GUIWIN * gw, EVMULT_OUT *ev_out, short msg[8]) { + short retval = 0; + + if((gw->toolbar != NULL) && (gw->toolbar_edit_obj > -1) ) { + + short next_edit_obj = gw->toolbar_edit_obj; + short next_char = -1; + short edit_idx; + short r; + + r = form_wkeybd(gw->toolbar, gw->toolbar_edit_obj, next_edit_obj, + ev_out->emo_kreturn, + &next_edit_obj, &next_char, gw->handle); + + if (next_edit_obj != gw->toolbar_edit_obj) { + + if(gw->toolbar_edit_obj != -1) { + objc_wedit(gw->toolbar, gw->toolbar_edit_obj, + ev_out->emo_kreturn, &edit_idx, + EDEND, gw->handle); + } + + gw->toolbar_edit_obj = next_edit_obj; + + objc_wedit(gw->toolbar, gw->toolbar_edit_obj, + ev_out->emo_kreturn, &edit_idx, + EDINIT, gw->handle); + } else { + if(next_char > 13) + r = objc_wedit(gw->toolbar, gw->toolbar_edit_obj, + ev_out->emo_kreturn, &edit_idx, + EDCHAR, gw->handle); + } + retval = 1; + } if((gw->form != NULL) && (gw->form_edit_obj > -1) ) { @@ -485,6 +527,7 @@ static short preproc_mu_keybd(GUIWIN * gw, EVMULT_OUT *ev_out, short msg[8]) EDCHAR, gw->handle); } } + return(retval); } /** @@ -563,6 +606,9 @@ short guiwin_dispatch_event(EVMULT_IN *ev_in, EVMULT_OUT *ev_out, short msg[8]) if ((ev_out->emo_events & MU_KEYBD)) { retval = preproc_mu_keybd(dest, ev_out, msg); + if(retval != 0) { + handler_called = true; + } } if (handler_called==false) { |