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