All pastes #720039 Raw Edit

GTK+ dialog transience across pr

public c v1 · immutable
#720039 ·published 2007-09-29 22:03 UTC
rendered paste body
#include <stdlib.h>#include <gtk/gtk.h>#if defined(GDK_WINDOWING_X11)	#include <gdk/gdkx.h>	#define GDK_NATIVE_WINDOW(wnd) ((guint)GDK_WINDOW_XID((wnd)))#elif defined(GDK_WINDOWING_WIN32)	#include <gdk/gdkwin32.h>	#define GDK_NATIVE_WINDOW(wnd) ((guint)GDK_WINDOW_HWND((wnd)))#else	#define GDK_NATIVE_WINDOW(wnd) ((guint)(wnd))#endif /* kind of windowing system */static voiddlg_show(GtkWidget *dlg, GdkWindow *parent){	if (dlg->window) {		if (parent) {			gdk_window_set_transient_for(dlg->window, parent);			g_print("dlg_show: Setting transient\n");		} else {			g_print("dlg_show: window ID is %d\n", GDK_NATIVE_WINDOW(dlg->window));		}	}}intmain(int argc, char **argv){	GtkWidget *dlg = NULL;	GdkWindow *parent = NULL;	gtk_init(&argc, &argv);	dlg = gtk_dialog_new_with_buttons(argc > 1 ? "The Top" : "The Bottom", NULL, 0, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL);	if (argc > 1)		parent = gdk_window_foreign_new(atoi(argv[1]));	g_signal_connect(G_OBJECT(dlg), "show", (GCallback)dlg_show, parent);	gtk_dialog_run(GTK_DIALOG(dlg));	gtk_widget_destroy(dlg);	return 0;}