Re: GTK window positioning [SOLVED]
- From: David Buchan <pdbuchan yahoo com>
- To: gtk-list list <gtk-list gnome org>, gtk-app-devel-list list <gtk-app-devel-list gnome org>
- Subject: Re: GTK window positioning [SOLVED]
- Date: Wed, 19 Sep 2012 13:37:30 -0700 (PDT)
Oh ho!
Break through.
I noticed that if, elsewhere in my program I ask it to open a second window, it opens it into a different
location.
This got me thinking that, as usual, I'm not letting GTK main iteration do what it needs to do.
So, adding this between the two gtk_widget_show_all() instances:
// Check for pending GTK click events.
while (gtk_events_pending ()) {
gtk_main_iteration ();
}
allows the window manager time to come up with a new location, and it now opens the windows in different
locations.
Dave
________________________________
From: David Buchan <pdbuchan yahoo com>
To: gtk-list list <gtk-list gnome org>
Sent: Tuesday, September 18, 2012 9:51 PM
Subject: GTK window positioning
It just occurred to me that maybe I should be sending to the gtk-list mailing list instead (more active).
Pls see below...
----- Forwarded Message -----
From: David Buchan <pdbuchan yahoo com>
To: gtk-app-devel-list list <gtk-app-devel-list gnome org>
Sent: Tuesday, September 18, 2012 9:05 PM
Subject: GTK window positioning
Hi,
I've made a program that creates two new windows when demanded:
GtkWidget *window1, *scrolled_win1, *textview1;
GtkTextBuffer *buffer1;
GtkWidget *window2, *scrolled_win2, *textview2;
GtkTextBuffer *buffer2;
PangoFontDescription *textview_font1;
PangoFontDescription *textview_font2;
// Create new window to display unfragmented packet.
window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_resizable (GTK_WINDOW (window1), TRUE);
gtk_window_set_position (GTK_WINDOW (window1), GTK_WIN_POS_NONE);
gtk_window_set_title (GTK_WINDOW
(window1), title);
gtk_window_set_default_size (GTK_WINDOW (window1), 1000, 200);
gtk_container_set_border_width (GTK_CONTAINER (window1), 1);
// Create a textview object to display unfragmented packet.
textview1 = gtk_text_view_new ();
buffer1 = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview1));
gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (textview1), TRUE);
textview_font1 = pango_font_description_from_string ("Courier 10 Pitch 12");
gtk_widget_modify_font (textview1, textview_font1);
// Create new window to display fragmented packet.
window2 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_resizable (GTK_WINDOW (window2), TRUE);
gtk_window_set_position (GTK_WINDOW (window2), GTK_WIN_POS_NONE);
gtk_window_set_title (GTK_WINDOW (window2), title);
gtk_window_set_default_size (GTK_WINDOW (window2), 1000,
200);
gtk_container_set_border_width (GTK_CONTAINER (window2), 1);
// Create a textview object to display fragmented packet.
textview2 = gtk_text_view_new ();
buffer2 = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview2));
gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (textview2), TRUE);
textview_font2 = pango_font_description_from_string ("Courier 10 Pitch 12");
gtk_widget_modify_font (textview2, textview_font2);
I then do some stuff and then display the buffers within textviews within scrollbars within windows:
scrolled_win1 = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (scrolled_win1), textview1);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW
(scrolled_win1),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_container_add (GTK_CONTAINER (window1), scrolled_win1);
gtk_widget_show_all (window1);
scrolled_win2 = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (scrolled_win2), textview2);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win2),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
gtk_container_add (GTK_CONTAINER (window2), scrolled_win2);
gtk_widget_show_all
(window2);
I find that the two windows are always placed right on top of each other. I can drag the top one off the one
underneath, but I'd like the window manager to choose placements that are separate.
Suggestions? Have I bungled something?
Thanks,
Dave
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]