diff options
author | Ole Loots <ole@monochrom.net> | 2012-06-03 21:37:18 +0000 |
---|---|---|
committer | Ole Loots <ole@monochrom.net> | 2012-06-03 21:37:18 +0000 |
commit | 2051bf1cc4715ed5b4f0c3d926263cfee9ffde45 (patch) | |
tree | c344456d7c78eb341b0ba4042665fc4728a95bfe /atari | |
parent | 95ccb75d9fb9d3e06f9f2b2083f2d0dc0718c0e5 (diff) | |
download | netsurf-2051bf1cc4715ed5b4f0c3d926263cfee9ffde45.tar.gz netsurf-2051bf1cc4715ed5b4f0c3d926263cfee9ffde45.tar.bz2 |
Fixed redraw of embedded toolbar icons ( enabled / disabled state was incorrectly handled ).
svn path=/trunk/netsurf/; revision=13942
Diffstat (limited to 'atari')
-rwxr-xr-x | atari/toolbar.c | 64 |
1 files changed, 16 insertions, 48 deletions
diff --git a/atari/toolbar.c b/atari/toolbar.c index e68522394..285b66b8d 100755 --- a/atari/toolbar.c +++ b/atari/toolbar.c @@ -226,26 +226,27 @@ static void __CDECL button_redraw( COMPONENT *c, long buff[8], void * data ) int bmpx=0, bmpy=0, bmpw=0, bmph = 0, drawstate=0; struct rect icon_clip; struct bitmap * icon = NULL; - bool draw_bitmap = false; mt_CompGetLGrect(&app, c, WF_WORKXYWH, &work); work.g_h = work.g_h - 1;
- clip = work;
+ clip = work; +
/* return if component and redraw region does not intersect: */
if ( !rc_lintersect( (LGRECT*)&buff[4], &clip ) ) {
return;
} - if( img_toolbar && toolbar_image != NULL ){ + drawstate = bt->state; + if( img_toolbar ){ + if( toolbar_image_ready == false ){ return; } + icon = content_get_bitmap( toolbar_image ); if( icon == NULL ){ return;
- }
- draw_bitmap = true; - drawstate = bt->state; + } bmpw = bitmap_get_width(icon); bmph = bitmap_get_height(icon); @@ -263,15 +264,18 @@ static void __CDECL button_redraw( COMPONENT *c, long buff[8], void * data ) icon_clip.x1 = icon_clip.x0+toolbar_styles[tb->style].icon_width; icon_clip.y1 = icon_clip.y0+toolbar_styles[tb->style].icon_height; plot_clip( &icon_clip ); - } - - if( draw_bitmap == false ){ + } else { /* Place the CICON into workarea: */ tree = bt->aes_object; if( tree == NULL ) return; tree->ob_x = work.g_x;
tree->ob_y = work.g_y + (work.g_h - tree->ob_height) / 2; + if( drawstate == button_off ) {
+ bt->aes_object->ob_state |= OS_DISABLED;
+ } else {
+ bt->aes_object->ob_state &= ~OS_DISABLED;
+ } } /* Setup draw mode: */
@@ -297,7 +301,7 @@ static void __CDECL button_redraw( COMPONENT *c, long buff[8], void * data ) vs_clip( vdih, 1, (short*)&pxy ); v_bar( vdih, (short*)&pxy ); - if( draw_bitmap ){ + if( img_toolbar == true ){ atari_plotters.bitmap( bmpx, bmpy, bmpw, bmph, icon, toolbar_styles[tb->style].icon_bgcolor, BITMAPF_BUFFER_NATIVE ); @@ -403,7 +407,7 @@ void __CDECL evnt_throbber_redraw( COMPONENT *c, long buff[8]) v_bar( vdih, (short*)&pxy ); vs_clip( vdih, 1, (short*)&pxy );
- if( img_toolbar && throbber_image != NULL ){ + if( img_toolbar ){ int bmpx=0, bmpy=0, bmpw=0, bmph = 0, drawstate=0; struct rect icon_clip; @@ -804,7 +808,7 @@ CMP_TOOLBAR tb_create( struct gui_window * gw ) toolbar_styles[t->style].icon_width + \ (2*toolbar_styles[t->style].button_vmargin );
t->throbber.comp->bounds.max_height = toolbar_styles[t->style].height; - if( img_toolbar ){ + if( img_toolbar == true ){ t->throbber.index = 0;
t->throbber.max_index = 8; } else { @@ -866,15 +870,6 @@ void tb_update_buttons( struct gui_window * gw, short button ) } else {
bt->state = button_off;
} - if( bt->aes_object ){ - if( enable ) {
- bt->aes_object->ob_state |= OS_DISABLED;
- } else {
- bt->aes_object->ob_state &= ~OS_DISABLED;
- } - } else { - // TODOs - } mt_CompEvntRedraw( &app, bt->comp ); } @@ -891,15 +886,6 @@ void tb_update_buttons( struct gui_window * gw, short button ) } else {
bt->state = button_off;
} - if( bt->aes_object ){ - if( enable ) {
- bt->aes_object->ob_state |= OS_DISABLED;
- } else {
- bt->aes_object->ob_state &= ~OS_DISABLED;
- } - } else { - // TODOs - }
mt_CompEvntRedraw( &app, bt->comp );
}
@@ -911,15 +897,6 @@ void tb_update_buttons( struct gui_window * gw, short button ) } else {
bt->state = button_off;
} - if( bt->aes_object ){ - if( enable ) {
- bt->aes_object->ob_state |= OS_DISABLED;
- } else {
- bt->aes_object->ob_state &= ~OS_DISABLED;
- } - } else { - // TODOs - }
mt_CompEvntRedraw( &app, bt->comp ); }
@@ -931,15 +908,6 @@ void tb_update_buttons( struct gui_window * gw, short button ) } else {
bt->state = button_off;
} - if( bt->aes_object ){ - if( enable ) {
- bt->aes_object->ob_state |= OS_DISABLED;
- } else {
- bt->aes_object->ob_state &= ~OS_DISABLED;
- } - } else { - // TODOs - }
mt_CompEvntRedraw( &app, bt->comp ); } |