Jesus Ruiz de Infante wrote:
> Denis Oliver Kropp wrote:
>> Jesus Ruiz de Infante wrote:
>>> Denis Oliver Kropp wrote:
>>>> Jesus Ruiz de Infante wrote:
>>>>> So it seems that, with respect to the window stacking, pop up windows 
>>>>> are not in the same class
>>>> Correct.
>>>>
>>>>> as dialogs. How can that be changed?
>>>>>
>>>>> I have found only a reference to DWSC_UPPER in  
>>>>> gdk_window_set_modal_hint()
>>>>> (in gdk/directfb/gdkwindow-directfb.c), which is only called by
>>>>> gtk_window_set_modal() and gtk_window_realize() (in gtk/gtkwindow.c)
>>>> That's not good. As a hotfix you can comment out the change to DWSC_UPPER,
>>>> but to fix it properly, gdk_window_new() should detect that a popup is 
>>>> opened
>>>> for a dialog and that it should be in DWSC_UPPER, too.
>>>>
>>> Actually gdk_window_set_modal_hint() is called once on the dialog window
>>> and, later, once on the popup window, when they are created, but it seems 
>>> that this is not enough to
>>> raise the popup when the combo box is clicked. Is there a way to shuffle 
>>> windows
>>> in the DWSC_UPPER class?
>> A call to IDirectFBWindow::RaiseToTop() should do it.
>>
>>> Also, if both the popup and the dialog are in the DWSC_UPPER stacking 
>>> class, why don't
>>> <Meta>-X or <Meta>-S bring the popup to the front?
>> That's indeed a good question. If you're running the multi app core you can 
>> try dfbdump to
>> verify the stacking classes.
>>
> 
> Many thanks for your response.

Thanks for your investigations!

> I have added an inconditional call to gdk_window_set_modal_hint() in 
> gdk_directfb_window_new()
> to put the created window in the DWSC_UPPER class.

But only the dialog is ever set to modal?

> Here is the dfbdump output. Window ID 1 is a dbfterm. Window ID 3 is the 
> dialog.
> Window 5 is the popup drop down list, but it is not in the DWSC_UPPER class 
> (no '^' adjacent to the ID).
> No idea what id 4 is. It is out of the display (x = -100, y = -100)
> and it does belong to the DWSC_UPPER class.
> 

> -----------------------------------[ Windows of Layer 0 
> ]-----------------------------------------
> Reference   FID  . Refs     X     Y   Width Height Opacity   ID     
> Capabilities   State & Options
> --------------------------------------------------------------------------------------------------
> 0x00000021 [  2] :   3      0,    0     75 x   45    0xff     3  ^  
> alphachannel
> 0x0000001f [  2] :   2      0,    0    640 x  480    0x00     2  -  
> alphachannel
> 0x00000011 [  1] :   6     12,   10    616 x  460    0xff     1  -  
> alphachannel   FOCUSED
> 
> -----------------------------------[ Windows of Layer 0 
> ]-----------------------------------------
> Reference   FID  . Refs     X     Y   Width Height Opacity   ID     
> Capabilities   State & Options
> --------------------------------------------------------------------------------------------------
> 0x00000024 [  2] :   2   -100, -100     10 x   10    0x00     4  ^  input only
> 0x00000021 [  2] :   3      0,    0     75 x   45    0xff     3  ^  
> alphachannel   FOCUSED
> 0x00000025 [  2] :   6      2,    2     71 x   81    0xff     5  -  
> alphachannel
> 0x0000001f [  2] :   2      0,    0    640 x  480    0x00     2  -  
> alphachannel
> 0x00000011 [  1] :   6     12,   10    616 x  460    0xff     1  -  
> alphachannel
> 
> Also, a new input window is created each time the drop down list pops up. 
> Isn't this a leak?

Yep :-/

> 
> -----------------------------------[ Windows of Layer 0 
> ]-----------------------------------------
> Reference   FID  . Refs     X     Y   Width Height Opacity   ID     
> Capabilities   State & Options
> --------------------------------------------------------------------------------------------------
> 0x00000028 [  2] :   1   -100, -100     10 x   10    0x00     7  ^  input only
> 0x00000027 [  2] :   1   -100, -100     10 x   10    0x00     6  ^  input only
> 0x00000024 [  2] :   1   -100, -100     10 x   10    0x00     4  ^  input only
> 0x00000021 [  2] :   3      0,    0     75 x   45    0xff     3  ^  
> alphachannel
> 0x00000025 [  2] :   6      2,    0     71 x   81    0x00     5  -  
> alphachannel
> 0x0000001f [  2] :   2      0,    0    640 x  480    0x00     2  -  
> alphachannel
> 0x00000011 [  1] :   6     12,   10    616 x  460    0xff     1  -  
> alphachannel   FOCUSED

Not *too* bad, it's not allocating a surface at least, but it shows once more 
that GdkDirectFB
is having a problem with popup windows, or maybe input only windows created in 
addition.

Oh, looks like the input only is properly moved up a class, but not the 
"original" popup.

Who's creating this extra GdkWindow just for input and why?

-- 
Best regards,
   Denis Oliver Kropp

.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/                 |
"------------------------------------------"

_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to