//##############################################################################################################
struct graphics
{
+ struct graphics* parent;
struct graphics_priv *priv;
struct graphics_methods meth;
char *default_font;
int colormgmt;
int font_size;
GList *selection;
+ int disabled;
};
struct display_context
return NULL;
this_=g_new0(struct graphics, 1);
this_->priv=parent->meth.overlay_new(parent->priv, &this_->meth, p, w, h, alpha, wraparound);
+ this_->parent = parent;
pr.lu.x=0;
pr.lu.y=0;
pr.rl.x=w;
*/
void graphics_overlay_disable(struct graphics *this_, int disable)
{
+ this_->disabled = disable;
if (this_->meth.overlay_disable)
this_->meth.overlay_disable(this_->priv, disable);
}
+int graphics_is_disabled(struct graphics *this_)
+{
+ return this_->disabled || (this_->parent && this_->parent->disabled);
+}
+
/**
* FIXME
* @param <>
void graphics_draw_text(struct graphics *this_, struct graphics_gc *gc1, struct graphics_gc *gc2, struct graphics_font *font, char *text, struct point *p, int dx, int dy);
void graphics_get_text_bbox(struct graphics *this_, struct graphics_font *font, char *text, int dx, int dy, struct point *ret, int estimate);
void graphics_overlay_disable(struct graphics *this_, int disable);
+int graphics_is_disabled(struct graphics *this_);
void graphics_draw_image(struct graphics *this_, struct graphics_gc *gc, struct point *p, struct graphics_image *img);
int graphics_draw_drag(struct graphics *this_, struct point *p);
void graphics_background_gc(struct graphics *this_, struct graphics_gc *gc);
osd->osd_attrs=attr_generic_set_attr(osd->osd_attrs,attr);
if(osd && osd->meth.set_attr) {
osd->meth.set_attr(osd->priv, attr);
+ return 1;
}
return 0;
}
dbg(0,"accesskey:0x%02x\n",item->accesskey[i]);
}
#endif
- if (item->accesskey && key && !strcmp(key, item->accesskey))
+ if ( ! graphics_is_disabled(item->gr) && item->accesskey && key && !strcmp(key, item->accesskey))
osd_evaluate_command(item, nav);
}