Re: [directfb-dev] GtkComboBox drop down list covered by GtkDialogs
- From: Denis Oliver Kropp <dok directfb org>
- To: Jesus Ruiz de Infante <jesus ruizdeinfante hale at>
- Cc: gtk-devel-list gnome org, directfb-dev directfb org
- Subject: Re: [directfb-dev] GtkComboBox drop down list covered by GtkDialogs
- Date: Thu, 28 Feb 2008 11:42:28 +0100
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/ |
"------------------------------------------"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]