From 03f5e140ea695ee49369265ec14efa2f15f68a2c Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 2 Aug 2010 10:47:42 -0600 Subject: [PATCH] try to connect gtk dialog with parent --- collects/mred/private/wx/gtk/dialog.rkt | 7 ++++++- collects/mred/private/wx/gtk/procs.rkt | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/collects/mred/private/wx/gtk/dialog.rkt b/collects/mred/private/wx/gtk/dialog.rkt index 9d3e4ee80f..56ba1e5038 100644 --- a/collects/mred/private/wx/gtk/dialog.rkt +++ b/collects/mred/private/wx/gtk/dialog.rkt @@ -13,6 +13,7 @@ (define GTK_WIN_POS_CENTER_ON_PARENT 4) (define-gtk gtk_window_set_position (_fun _GtkWidget _int -> _void)) +(define-gtk gtk_window_set_transient_for (_fun _GtkWidget _GtkWidget -> _void)) (defclass dialog% frame% (inherit get-gtk @@ -22,6 +23,10 @@ (define close-sema #f) + (let ([p (get-parent)]) + (when p + (gtk_window_set_transient_for (get-gtk) (send p get-gtk)))) + (define/override (direct-show on?) (unless on? (when close-sema @@ -30,7 +35,7 @@ (super direct-show on?)) (define/override (center dir wrt) - (if #f ; (eq? dir 'both) + (if (eq? dir 'both) (gtk_window_set_position (get-gtk) (if (get-parent) GTK_WIN_POS_CENTER_ON_PARENT diff --git a/collects/mred/private/wx/gtk/procs.rkt b/collects/mred/private/wx/gtk/procs.rkt index 7183f9ad3a..0c37c0c2dc 100644 --- a/collects/mred/private/wx/gtk/procs.rkt +++ b/collects/mred/private/wx/gtk/procs.rkt @@ -91,7 +91,12 @@ (define (get-control-font-size) 10) ;; FIXME (define-unimplemented cancel-quit) (define-unimplemented fill-private-color) -(define (flush-display) (void)) + +(define _GdkDisplay (_cpointer 'GdkDisplay)) +(define-gdk gdk_display_flush (_fun _GdkDisplay -> _void)) +(define-gdk gdk_display_get_default (_fun -> _GdkDisplay)) +(define (flush-display) (gdk_display_flush (gdk_display_get_default))) + (define-unimplemented write-resource) (define-unimplemented get-resource)