|
|||||||
![]() |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Tır
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
|
As I understand it:
I invoke a https://developer.gnome.org/gtk2/2.2...lorButton.html GtkColorButton clicking this creates for me a GtkColorSelection dialog Which automatically sets the gtk_window_set_transient_for () as the parent that invoked the dialog. this works great when there is only ONE window in the mix. But... invoke two windows: one from the other... then put the button on the second page... and the gtk_window_set_transient_for () will always put the dialog BEHIND the second window... test.c Code:
#include <gtk/gtk.h>
static gboolean delete_event( GtkWidget *widget,
GdkEvent *event,
gpointer data )
{ g_print ("delete event occurred\n");
return TRUE;
}
/* Another callback */
static void destroy( GtkWidget *widget,
gpointer data )
{
gtk_main_quit ();
}
/* return us a window */
GtkWidget* create_simple_window (GtkWidget *thewindow)
{
GtkWidget *window;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "L:A_N:application_ID:twobob.second.layer_PC:N");
gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER_ON_PARENT);
gtk_window_set_modal (GTK_WINDOW (window), TRUE);
gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (thewindow));
return window;
}
int main( int argc,
char *argv[] )
{
GtkWidget *window;
GtkWidget *window2;
GtkWidget *button;
gtk_init (&argc, &argv);
/* create a new window on the application layer */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "L:A_N:application_ID:twobob.osmo_PC:N");
g_signal_connect (window, "delete-event",
G_CALLBACK (delete_event), NULL);
g_signal_connect (window, "destroy",
G_CALLBACK (destroy), NULL);
/* Sets the border width of the window. */
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
button = gtk_color_button_new();
gtk_color_button_set_title(GTK_COLOR_BUTTON(button), "L:D_ID:twobob.color");
/* create a new window ALSO on the application layer */
window2 = create_simple_window(window);
gtk_container_add (GTK_CONTAINER (window2), button);
gtk_widget_show (window);
gtk_widget_show (button);
/* and the second window - WITH THE BUTTON */
gtk_widget_show (window2);
gtk_main ();
return 0;
}
(well it does but on the wrong layer) swap gtk_container_add (GTK_CONTAINER (window2), button); for gtk_container_add (GTK_CONTAINER (window), button); and elide gtk_widget_show (window2); like // gtk_widget_show (window2); and it all works as expected... so... am I going to have to derive a widget from GtkColorSelection ??? or is this as a result of using the awesome layers???? Any clues? I was trying to port "osmo" but this has me stumped. and short of rewriting the entire "PREFERENCES" gtknotebook layout... I am out of ideas. Hence the simple to test "THIS DONT WORK" example I have made here... |
|
|
|
|
|
#2 |
|
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Tır
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
|
can be compiled like
gcc test.c -o test `pkg-config --cflags --libs gtk+-2.0 ` |
|
|
|
|
|
#3 |
|
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Tır
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
|
I'll test it in a Xephyr...
EDIT: ANNNNNNNNNOYING.... of course it works perfectly in a xephyr. Sigh... |
|
|
|
|
|
#4 |
|
Evangelist
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 405
Karma: 2330752
Join Date: May 2012
Device: kt
|
Try setting new window on dialog layer. Then it should open in front of main window.
Code:
gtk_window_set_title (GTK_WINDOW (window2), "L:D_N:application_ID:twobob.osmo_PC:N"); |
|
|
|
|
|
#5 |
|
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Tır
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
|
err.. okay.
will do! Thanks - trying this right now! |
|
|
|
|
|
#6 |
|
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Tır
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
|
|
|
|
|
|
|
#7 |
|
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Tır
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
|
Code:
GtkWidget* create_simple_window (GtkWidget *thewindow)
{
GtkWidget *window;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(thewindow), "L:D_N:application_ID:twobob.layer2");
.... BLAH
}
actually shows nothing at all? not even the window... sigh. |
|
|
|
|
|
#8 | |
|
Evangelist
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 405
Karma: 2330752
Join Date: May 2012
Device: kt
|
Quote:
But I meant window here. Is it a typo? |
|
|
|
|
|
|
#9 |
|
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Tır
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
|
hmm. checking.
EDIT: Neither way works. This is a problem for porting apps... Sigh. this effectively means we can't invoke any dialogs on secondary level windows. Huge hit on the "likely apps to work" list... Last edited by twobob; 09-20-2013 at 04:15 PM. |
|
|
|
|
|
#10 |
|
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Tır
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
|
edit... hmm or does it?
Code:
/* create a new window */
window2 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window2), "L:D_N:application_ID:twobob.osmo_PC:N");
gtk_window_set_default_size (GTK_WINDOW (window2), 800, 600);
gtk_window_set_position (GTK_WINDOW (window2), GTK_WIN_POS_CENTER_ON_PARENT);
Have to look at that function again and completely rethink the port of osmo then... if it works... This could be very helpful... Thanks baf. will dig harder. |
|
|
|
|
|
#11 |
|
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Tır
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
|
okay. got it.
Foolishly the method was being called and seemingly setting gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (appGUI->main_window)); does something odd when dealing with a dialog layer window. simply removing this (duh?) and using the D layer (as you so wisely suggested) has indeed got me back the pop overs when using the D layer for them... YAY. Time to go hack. Superstar baf. as ever. |
|
|
|
![]() |
| Tags |
| gtk, gtkcolorbutton, gtkcolorselection, kindle, twobob |
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Incorrect conversion | nilla | Conversion | 1 | 06-16-2013 12:59 PM |
| Incorrect date on device | fyberoptyx | Calibre | 1 | 10-26-2012 11:11 PM |
| incorrect import of html | vangop | Calibre | 5 | 10-05-2012 11:55 AM |
| Incorrect Format | somkk | Conversion | 6 | 07-07-2012 02:42 AM |
| Incorrect Date on kindle 3 | yogibare143 | Amazon Kindle | 5 | 12-05-2010 06:43 PM |