summaryrefslogtreecommitdiff
path: root/atari/gemtk
diff options
context:
space:
mode:
authorOle Loots <ole@monochrom.net>2013-01-16 03:21:35 +0100
committerOle Loots <ole@monochrom.net>2013-01-16 03:21:35 +0100
commit4f0ae4e12868ddf26e7018e0a3dec4badaa1b1b6 (patch)
tree4e9c63a447215553179dd4fe89e5c1cc7788442b /atari/gemtk
parent6a32f94cc22f26afa43bfb58688688ae704e5514 (diff)
downloadnetsurf-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.h4
-rw-r--r--atari/gemtk/guiwin.c46
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) {