--- rxvt-unicode/src/main.C 2006/02/02 18:04:46 1.218 +++ rxvt-unicode/src/main.C 2006/02/11 10:53:37 1.220 @@ -706,9 +706,9 @@ window_vt_x += sb_w; } - szHint.width_inc = fwidth; + szHint.width_inc = fwidth; szHint.height_inc = fheight; - szHint.min_width = szHint.base_width + szHint.width_inc; + szHint.min_width = szHint.base_width + szHint.width_inc; szHint.min_height = szHint.base_height + szHint.height_inc; if (newwidth && newwidth - szHint.base_width < max_width) @@ -1035,7 +1035,9 @@ int old_height = szHint.height; window_calc (newwidth, newheight); - XSetWMNormalHints (dpy, parent[0], &szHint); + + if (!HOOK_INVOKE ((this, HOOK_RESIZE_ALL_WINDOWS, DT_INT, newwidth, DT_INT, newheight, DT_END))) + XSetWMNormalHints (dpy, parent[0], &szHint); if (!ignoreparent) { @@ -1119,7 +1121,7 @@ #endif #ifdef USE_XIM - IMSetStatusPosition (); + IMSetPosition (); #endif } @@ -1526,8 +1528,8 @@ status_attr, NULL); if (preedit_attr) XFree (preedit_attr); - if (status_attr) XFree (status_attr); - if (fs) XFreeFontSet (dpy, fs); + if (status_attr) XFree (status_attr); + if (fs) XFreeFontSet (dpy, fs); if (Input_Context == NULL) { @@ -1542,8 +1544,7 @@ vt_select_input (); #endif - if (input_style & XIMPreeditArea) - IMSetStatusPosition (); + IMSetPosition (); return true; } @@ -1611,14 +1612,14 @@ } void -rxvt_term::IMSetStatusPosition () +rxvt_term::IMSetPosition () { XRectangle preedit_rect, status_rect, *needed_rect; XVaNestedList preedit_attr, status_attr; if (!Input_Context || !focus - || !(input_style & XIMPreeditArea) + || !(input_style & (XIMPreeditArea | XIMPreeditPosition)) || !IMisRunning ()) return; @@ -1631,11 +1632,12 @@ XFree (needed_rect); preedit_attr = XVaCreateNestedList (0, XNArea, &preedit_rect, NULL); - status_attr = XVaCreateNestedList (0, XNArea, &status_rect, NULL); + status_attr = XVaCreateNestedList (0, XNArea, &status_rect, NULL); XSetICValues (Input_Context, XNPreeditAttributes, preedit_attr, - XNStatusAttributes, status_attr, NULL); + XNStatusAttributes, status_attr, + NULL); XFree (preedit_attr); XFree (status_attr);