[Mono-winforms-list] RFC on winforms / XIM clientWindow fixage

Atsushi Eno atsushi at ximian.com
Thu May 8 08:50:59 EDT 2008


Ok, I know am becoming a spammer ;-)

I dug in depth and found a fix for the MDI issue; MapWindow() has almost the
same inconsistent WM_SHOWWINDOW handling issue as UnmapWindow() has.

Though this fix exposed another issue that ApplicationContext could send
WM_QUIT inappropriately from ExitThreadCore(). When there is no application
loop, there is nothing to quit.

Though they are needed for XIM changes, the changes above are not about XIM.

The entire XIM patch is here: http://monoport.com/10928
(It includes this patch. Also note that this patch is dirty!)

When this patch and patch for bugs I wrote earlier are applied, I could
finally checkin this XIM change.

Atsushi Eno


Atsushi Eno wrote:
> Hello,
>
> After fixing couple of issues, I found a fix for this 
> WaitForHwndMessage()
> issue. The situation is that (in some cases?) WM_SHOWWINDOW could be 
> processed
> synchronously inside SendMessage() and when we reach 
> WaitForHwndMessage(),
> the MSG is already consumed and hence never shows up.
>
> The attached patch fixes this issue. I'm still not sure why this does not
> happen when we don't create XIM context for each client window, but
> the sample repro in my last mail[*1] gets fixed with this patch.
>
> If it looks okay, I'll commit this small change. I'm still not going 
> to commit
> my XIM changes, as there are still pending fixes on bugzilla[*2] and 
> there
> seems another MDI issue that needs fix too.
>
> Atsushi Eno
>
> *1 http://monoport.com/9806
> *2 #325033 and #387693
>
>
> Atsushi Eno wrote:
>> Hi,
>>
>> I'm posting it as I've been stuck with this issue for couple of days and
>> I still don't have a fix.
>>
>> Now I'm trying to fix XIM stuff to show up IM engine UI. Currently only
>> scim works (I tried scim-anthy). Everything else (as far as I tried,
>> iiimx/atokx3 and kinput2) do not work.
>>
>> It is (to my understanding) due to incorrect use of "client window" 
>> of the
>> input context (XIC). I fixed this issue with the patch [*1] but
>> it caused (or exposed) some regressions [*2][*3].
>>
>> My guess is that there are some issues around X event filtering (as
>> XplatUIX11.WaitForHwndMessage does not finish) but I don't know how it
>> could be fixed.
>>
>> I'll continue working on this issue but any help would be appreciated.
>>
>> *1 http://monoport.com/9842
>> *2 Timer or Form.Close() causes infinite loop http://monoport.com/9804
>> ... and it is not always reproducible.
>> *3 Form.set_Visible() causes infinite loop http://monoport.com/9806
>>
>> Atsushi Eno
>>
>> _______________________________________________
>> Mono-winforms-list maillist  -  Mono-winforms-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-winforms-list
>>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Mono-winforms-list maillist  -  Mono-winforms-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-winforms-list

-------------- next part --------------
A non-text attachment was scrubbed...
Name: x11-map-unmap-wmshowwindow-appctx.patch
Type: text/x-patch
Size: 4977 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-winforms-list/attachments/20080508/e19e31c2/attachment.bin 


More information about the Mono-winforms-list mailing list