X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=mod_query%2Finput.c;h=de81c770a15fcbd53a7798270a7f7053bc95eb17;hb=bab1a29cb81b48fe5f1f79349db31363e52143c1;hp=ee190265f237494c2374a3bb04ed9510e2d0bae7;hpb=8366314611bf30a0f31d25bf5f5023186fa87692;p=ion3.git diff --git a/mod_query/input.c b/mod_query/input.c index ee19026..de81c77 100644 --- a/mod_query/input.c +++ b/mod_query/input.c @@ -1,12 +1,9 @@ /* * ion/mod_query/input.c * - * Copyright (c) Tuomo Valkonen 1999-2006. + * Copyright (c) Tuomo Valkonen 1999-2009. * - * Ion is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 2.1 of the License, or - * (at your option) any later version. + * See the included file LICENSE for details. */ #include @@ -79,10 +76,14 @@ void input_refit(WInput *input) } -void input_fitrep(WInput *input, WWindow *par, const WFitParams *fp) +bool input_fitrep(WInput *input, WWindow *par, const WFitParams *fp) { + if(par!=NULL && !region_same_rootwin((WRegion*)input, (WRegion*)par)) + return FALSE; input->last_fp=*fp; input_do_refit(input, par); + + return TRUE; } @@ -161,8 +162,7 @@ void input_deinit(WInput *input) EXTL_EXPORT_MEMBER void input_cancel(WInput *input) { - if(region_manager_allows_destroying((WRegion*)input)) - mainloop_defer_destroy((Obj*)input); + region_defer_rqdispose((WRegion*)input); } @@ -187,6 +187,29 @@ static void input_activated(WInput *input) /*}}}*/ +/*{{{{ Misc */ + + +void mod_query_get_minimum_extents(GrBrush *brush, bool with_spacing, + int *w, int *h) +{ + GrBorderWidths bdw; + GrFontExtents fnte; + int spc; + + grbrush_get_border_widths(brush, &bdw); + grbrush_get_font_extents(brush, &fnte); + + spc=(with_spacing ? bdw.spacing : 0); + + *h=(fnte.max_height+bdw.top+bdw.bottom+spc); + *w=(bdw.left+bdw.right+spc); +} + + +/*}}}*/ + + /*{{{ Dynamic function table and class implementation */